You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+23-10Lines changed: 23 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,12 +3,17 @@
3
3
A Claude Code plugin for Microsoft Graph (Outlook) that is **stdlib-only, zero-dependency, and
4
4
zero-backend** by design — just `urllib` + `json`, no SDK, no server process, no install friction.
5
5
6
-
It gives an agent two capabilities, with safety built into the *structure*, not the behaviour:
6
+
It gives an agent these capabilities, with safety built into the *structure*, not the behaviour:
7
7
8
8
1.**Read Outlook mail** — list/get messages and their headers, read-only.
9
9
2.**Author native Outlook message rules** — create / list / verify / remove server-side
10
10
`messageRule`s, so deterministic mail organisation lives *in Outlook* (runs even when nothing
11
-
else is, visible and editable in Outlook's own UI, reversible by deleting one rule).
11
+
else is, visible and editable in Outlook's own UI, reversible by deleting one rule). A rule can
12
+
file to a folder **and/or assign a coloured category**.
13
+
3.**Manage master categories** — list and create-if-absent the coloured labels a rule assigns, so
14
+
they always render with a colour.
15
+
4.**Create category search folders** — virtual `mailSearchFolder` views over a category, behind a
16
+
*separate*`Mail.ReadWrite` sign-in tier. A search folder never moves or deletes mail.
12
17
13
18
## Verbs (skills)
14
19
@@ -17,13 +22,18 @@ Each skill is a thin wrapper over the stdlib kernel; the runtime catalog is the
17
22
18
23
| Skill | Scope it needs | What it does |
19
24
|---|---|---|
20
-
|`auth-login`|`Mail.Read + MailboxSettings.Read` (read, default) or `+ MailboxSettings.ReadWrite` (`--mode rules`) | Device-code sign-in; caches the token at the XDG path and refreshes it silently. **Run first.**|
25
+
|`auth-login`|`Mail.Read + MailboxSettings.Read` (read, default), `+ MailboxSettings.ReadWrite` (`--mode rules`), or `Mail.ReadWrite` (`--mode folders`) | Device-code sign-in; caches the token at the XDG path and refreshes it silently. **Run first.**|
21
26
|`mail-list`|`Mail.Read`| List recent inbox messages (concise/detailed, pagination default 25). |
22
27
|`mail-get`|`Mail.Read`| Fetch one message incl. its internet headers (e.g. `List-Unsubscribe`). |
|`rule-verify`|`Mail.Read`| Compute a candidate rule's **read-only catch-set** and record the verification gate. |
25
-
|`rule-create`|`MailboxSettings.ReadWrite`| Install a verified move-to-folder rule; refuses unverified criteria. |
30
+
|`rule-create`|`MailboxSettings.ReadWrite`| Install a verified rule that files to a folder **and/or assigns a category**; refuses unverified criteria. |
26
31
|`rule-remove`|`MailboxSettings.ReadWrite`| Delete a rule by id (the reversibility primitive). |
32
+
|`category-list`|`MailboxSettings.Read`| List the mailbox master categories (name + colour). |
33
+
|`category-ensure`|`MailboxSettings.ReadWrite`| Create a coloured category if absent (idempotent). |
description: "Ensure a named Outlook master category exists: create it with a colour if absent (POST /me/outlook/masterCategories), no-op if it already exists. Idempotent. Requires rule-authoring sign-in (/msgraph-auth-login --mode rules; MailboxSettings.ReadWrite). Use to pre-create a label with a specific colour before assigning it; rule-create already ensures any category it assigns, so calling this first is optional unless you want to choose the colour. A category's display name is immutable once created. Pass --name and an optional --color preset (default preset9)."
description: "List the mailbox's Outlook master categories (each label's name and colour), read-only, via GET /me/outlook/masterCategories. Requires read sign-in (/msgraph-auth-login; MailboxSettings.Read). Use to see which labels already exist before authoring an assign-category rule (rule-create --assign_category) or a category search folder (searchfolder-create --category). Pairs with category-ensure, which create-if-absent a named category. concise (default) shows name + colour; detailed returns full JSON."
4
+
argument-hint: "[--format concise|detailed]"
5
+
user-invocable: true
6
+
disable-model-invocation: false
7
+
annotations:
8
+
readOnlyHint: true
9
+
destructiveHint: false
10
+
idempotentHint: true
11
+
openWorldHint: true
12
+
---
13
+
14
+
## What this does
15
+
16
+
Lists the mailbox master category list (`GET /me/outlook/masterCategories`) — the named, coloured
17
+
labels Outlook uses. Read-only; needs only `MailboxSettings.Read` (the default read sign-in). Use it
18
+
to discover existing labels before you assign one in a rule or filter on one in a search folder.
Copy file name to clipboardExpand all lines: plugin/skills/rule-create/SKILL.md
+16-5Lines changed: 16 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
name: "rule-create"
3
-
description: "Install a native Outlook message rule that FILES matching mail to a folder (move-to-folder only — never delete). Requires rule-authoring sign-in (run /msgraph-auth-login --mode rules; MailboxSettings.ReadWrite). REFUSES unless the exact same header_contains criteria were verified first with rule-verify — verify-then-install is a hard safety gate, not a convention. Use after you have inspected headers (mail-get) and confirmed the catch-set (rule-verify). The rule appears in Outlook's own Rules UI and is fully reversible: remove it with rule-remove and any mail already filed stays put. Pass a name, the verified header_contains substrings, and an existing target folder name."
description: "Install a native Outlook message rule that FILES matching mail to a folder and/or ASSIGNS a category to it (move-to-folder and/or assign-category — never delete). Requires rule-authoring sign-in (run /msgraph-auth-login --mode rules; MailboxSettings.ReadWrite). REFUSES unless the exact same header_contains criteria were verified first with rule-verify — verify-then-install is a hard safety gate, not a convention — and refuses if you give no action at all. Any assigned category is ensured to exist (coloured) first. Use after you have inspected headers (mail-get) and confirmed the catch-set (rule-verify). The rule appears in Outlook's own Rules UI and is fully reversible: remove it with rule-remove and any mail already filed/labelled stays put. Pass a name, the verified header_contains substrings, and at least one of --move_to_folder or --assign_category."
0 commit comments