Write Like Me Bootstrap
jxnl/personal-monorepo-template
Bootstrap a durable "write like me" skill from the user's own Slack and email writing.
Interact with Outlook email — read inbox, send emails, search messages, reply/forward, manage folders, download attachments.
$ npx skills add sigcli/sigcli --skill outlook -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install sigcli/sigcli outlook --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/sigcli/sigcli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/outlook .claude/skills/outlook && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "outlook" agent skill from https://github.com/sigcli/sigcli/tree/main/skills/outlook into .claude/skills/outlook/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "outlook", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/sigcli/sigcli/tree/main/skills/outlookType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add sigcli/sigcli --skill outlook -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install sigcli/sigcli outlook --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sigcli/sigcli.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/outlook .agents/skills/outlook && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "outlook" agent skill from https://github.com/sigcli/sigcli/tree/main/skills/outlook into .agents/skills/outlook/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "outlook", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add sigcli/sigcli --skill outlook -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install sigcli/sigcli outlook --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sigcli/sigcli.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/outlook .cursor/skills/outlook && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "outlook" agent skill from https://github.com/sigcli/sigcli/tree/main/skills/outlook into .cursor/skills/outlook/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "outlook", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/sigcli/sigcli.git --path skills/outlook--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add sigcli/sigcli --skill outlook -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install sigcli/sigcli outlook --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sigcli/sigcli.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/outlook .gemini/skills/outlook && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "outlook" agent skill from https://github.com/sigcli/sigcli/tree/main/skills/outlook into .gemini/skills/outlook/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "outlook", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install sigcli/sigcli outlookInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add sigcli/sigcli --skill outlook -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/sigcli/sigcli.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/outlook .github/skills/outlook && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "outlook" agent skill from https://github.com/sigcli/sigcli/tree/main/skills/outlook into .github/skills/outlook/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "outlook", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add sigcli/sigcli --skill outlook -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install sigcli/sigcli outlook --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sigcli/sigcli.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/outlook .opencode/skills/outlook && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "outlook" agent skill from https://github.com/sigcli/sigcli/tree/main/skills/outlook into .opencode/skills/outlook/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "outlook", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
outlookInteract with Outlook email — read inbox, send emails, search messages, reply/forward, manage folders, download attachments.
Outlook is an agent skill from sigcli/sigcli. Interact with Outlook email — read inbox, send emails, search messages, reply/forward, manage folders, download attachments. Use this skill whenever the user mentions email, Outlook, inbox, mail, send email, check email, unread messages, email search, attachments, reply to email, forward email, 邮件, 收件箱, or wants to read, send, search, reply to, forward, or manage emails.
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 21 other files, including scripts and reference files (for example `references/provider-config.yaml`, `scripts/outlook_attachments.py` and `scripts/outlook_folders.py`).
It sits in Productivity & Automation, covering Email management and Email writing. It works with Microsoft Outlook. The repository describes itself as: The authentication CLI & Proxy for AI agents. Give agents access, not your credentials. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 9ba8b35. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 9 files in scripts/ (Python, from the files we listed), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
SIG_MS_GRAPH_ACCESS_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Outlook loads about 2.6k tokens when it runs, and up to ~2.7k if it reads all its reference files. Until then it costs about 95 tokens; SKILL.md has 738 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from sigcli/sigcli at commit 9ba8b35, republished under its MIT licence (© sigcli). 738 words, ~2,557 tokens.
.claude/skills/outlook/SKILL.md (or your agent's skills folder). This skill also uses 18 other files; get the full folder from GitHub.Read, search, and manage emails via Microsoft Graph API.
The Graph API token lacks Mail.Send scope (your organization's Azure AD policy), so sending is done via draft creation:
outlook_send.py creates a draft in Drafts folder — user clicks Send in Outlookoutlook_reply.py creates a reply/forward draft — user clicks Send in OutlookwebLink opens directly in Outlook Web for quick sendingYou MUST complete this setup before running any script. Do NOT skip this step.
sig status ms-graph 2>&1Check the JSON output fields configured and valid:
configured: false → run Provider Setup below. Do NOT proceed without completing it.valid: false (but configured: true) → run sig login ms-graph, then re-check.valid: true → detect proxy (see below), then execute the user's request.<SKILL_DIR>/references/provider-config.yaml~/.sig/config.yaml under providers:networkProxy: <url> under the provider in config.yamlsig login ms-graph (with --network-proxy <url> if proxy was specified)sig status ms-graph again — must show valid: true before proceedinggrep -A15 "^\s*ms-graph:" ~/.sig/config.yaml | grep networkProxy | awk '{print $2}'If this outputs a URL, prefix ALL python3 commands with HTTPS_PROXY=<url> HTTP_PROXY=<url>.
If using socks5, convert to socks5h for python (e.g. socks5://... → socks5h://...).
If empty, no proxy needed.
All scripts require setup to be completed first (see above).
All scripts are in this skill's scripts/ directory. Run via Bash tool.
| Script | Purpose | Token |
|---|---|---|
outlook_folders.py | List mail folders | Graph |
outlook_messages.py | List messages from a folder | Graph |
outlook_read.py | Read full message by ID | Graph |
outlook_search.py | Search emails with KQL | Graph |
outlook_send.py | Send a new email | Graph |
outlook_reply.py | Reply/ReplyAll/Forward | Graph |
outlook_manage.py | Mark read/unread, move, delete, flag | Graph |
outlook_attachments.py | List/download attachments | Graph |
--graph-token TOKEN Graph API Bearer token (required)
--include-children Also list child folders (flag)--graph-token TOKEN Graph API Bearer token (required)
--folder FOLDER Folder name or ID (default: Inbox)
--limit N Max messages (default: 20, max: 50)
--since ISO_DATE Only messages after this date
--until ISO_DATE Only messages before this date
--unread-only Only show unread messages (flag)Well-known folder names: Inbox, SentItems, Drafts, DeletedItems, Archive, JunkEmail.
--graph-token TOKEN Graph API Bearer token (required)
--message-id ID Message ID (required)
--format FORMAT "text" (default) or "html"--graph-token TOKEN Graph API Bearer token (required)
--query TEXT KQL search query (required)
--folder FOLDER Restrict to folder (optional)
--limit N Max results (default: 20, max: 50)--graph-token TOKEN Graph API Bearer token (required)
--to ADDRESSES Comma-separated recipient emails (required)
--subject TEXT Email subject (required)
--body TEXT Email body content (required)
--cc ADDRESSES Comma-separated CC addresses
--bcc ADDRESSES Comma-separated BCC addresses
--body-type TYPE "text" (default) or "html"
--importance LEVEL "low", "normal" (default), or "high"
--no-save-to-sent Do not save to Sent Items--graph-token TOKEN Graph API Bearer token (required)
--message-id ID Original message ID (required)
--action ACTION "reply", "replyAll", or "forward"
--body TEXT Reply/forward body content (required)
--to ADDRESSES Recipient addresses (required for forward)--graph-token TOKEN Graph API Bearer token (required)
--message-id ID Message ID (required)
--action ACTION "read", "unread", "move", "delete", "flag", "unflag"
--folder FOLDER Destination folder (required for move)--graph-token TOKEN Graph API Bearer token (required)
--message-id ID Message ID (required)
--download ATTACHMENT_ID Download a specific attachment (optional)
--output-dir DIR Directory for downloaded file (default: /tmp)Always show the user the draft (recipients, subject, body preview) and get explicit confirmation before calling outlook_send.py, outlook_reply.py, or outlook_manage.py --action delete.
Use KQL (Keyword Query Language) with outlook_search.py:
"quarterly report" # Subject, body, or attachment name
from:jane.doe@example.com # From a specific sender
to:john@example.com # Sent to someone
subject:"weekly standup" # In subject line
hasattachment:true # Has attachments
received>=2026-04-01 # Received after date
from:jane subject:report # Combined filtersNote: $orderby is not supported with $search — results are returned by relevance.
Folder names — Use well-known names (Inbox, SentItems, Drafts, DeletedItems, Archive, JunkEmail) or folder IDs from outlook_folders.py.
Message IDs — Long opaque strings (e.g., AAMkAD...). Get from outlook_messages.py or outlook_search.py, then use with outlook_read.py, outlook_reply.py, outlook_manage.py, outlook_attachments.py.
Conversation threading — Each message has a conversationId. To see a full email thread: read one message, note its conversationId, then search/filter for other messages in that conversation.
HTML bodies — outlook_read.py converts HTML to plain text by default. Use --format html to get the raw HTML.
Time parameters — Accept both YYYY-MM-DD and full ISO 8601 (2026-04-13T09:00:00Z).
| Error | Cause | Fix |
|---|---|---|
| 401 Unauthorized | Token expired | Auto-run sig login (no user prompt needed), retry |
| 403 Forbidden | Insufficient permissions | Check Graph API permissions (Mail.Read, Mail.Send) |
| 404 Not found | Invalid message/folder ID | Verify ID from a list or search |
| 429 Too Many Requests | Rate limited | Wait and retry |
MISSING_ARGS | Required arguments missing | Check script --help |
sig run ms-graph -- bash -c 'python3 scripts/outlook_messages.py --graph-token "$SIG_MS_GRAPH_ACCESS_TOKEN" --unread-only --limit 10'sig run ms-graph -- bash -c 'python3 scripts/outlook_messages.py --graph-token "$SIG_MS_GRAPH_ACCESS_TOKEN" --limit 5'sig run ms-graph -- bash -c 'python3 scripts/outlook_read.py --graph-token "$SIG_MS_GRAPH_ACCESS_TOKEN" --message-id "$MSG_ID"'sig run ms-graph -- bash -c 'python3 scripts/outlook_search.py --graph-token "$SIG_MS_GRAPH_ACCESS_TOKEN" --query "from:jane.doe@example.com subject:report"'sig run ms-graph -- bash -c 'python3 scripts/outlook_send.py --graph-token "$SIG_MS_GRAPH_ACCESS_TOKEN" --to "jane.doe@example.com" --subject "Meeting follow-up" --body "Hi Jane, ..."'sig run ms-graph -- bash -c 'python3 scripts/outlook_read.py --graph-token "$SIG_MS_GRAPH_ACCESS_TOKEN" --message-id "$MSG_ID"'sig run ms-graph -- bash -c 'python3 scripts/outlook_reply.py --graph-token "$SIG_MS_GRAPH_ACCESS_TOKEN" --message-id "$MSG_ID" --action reply --body "Thanks, sounds good!"'sig run ms-graph -- bash -c 'python3 scripts/outlook_reply.py --graph-token "$SIG_MS_GRAPH_ACCESS_TOKEN" --message-id "$MSG_ID" --action forward --body "FYI" --to "colleague@example.com"'sig run ms-graph -- bash -c 'python3 scripts/outlook_attachments.py --graph-token "$SIG_MS_GRAPH_ACCESS_TOKEN" --message-id "$MSG_ID"'sig run ms-graph -- bash -c 'python3 scripts/outlook_attachments.py --graph-token "$SIG_MS_GRAPH_ACCESS_TOKEN" --message-id "$MSG_ID" --download "$ATTACHMENT_ID" --output-dir ~/Downloads'sig run ms-graph -- bash -c 'python3 scripts/outlook_folders.py --graph-token "$SIG_MS_GRAPH_ACCESS_TOKEN" --include-children'© sigcli, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 18 other files (scripts, references) in skills/outlook of sigcli/sigcli.
Open the folder on GitHubat commit 9ba8b35
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in sigcli/sigcli, which our catalogue first saw on October 7, 2026.
Outlook next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Outlook this skillsigcli/sigcli | 293 | 1 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Write Like Me Bootstrapjxnl/personal-monorepo-template | 562 | — | ~1.1k | Automated safety check: Pass | None | |
| Email Draftingmgonto/executive-assistant-skills | 118 | — | ~2.8k | Automated safety check: Pass | None | |
| Oc Statusanthropics/claude-for-legal | 9.6k | 2 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| Gmail Reply via gwsgoogleworkspace/cli | 31k | — | ~655 | Automated safety check: Pass | Apache-2.0 | |
| Executive AssistantTheCraigHewitt/hermes-chief-of-staff | 104 | — | ~1k | Automated safety check: Pass | MIT |
jxnl/personal-monorepo-template
Bootstrap a durable "write like me" skill from the user's own Slack and email writing.
mgonto/executive-assistant-skills
Draft email replies for Gonto's Gmail accounts (m@gon.to, gonto@hypergrowthpartners.com).
anthropics/claude-for-legal
Generate weekly status-request email drafts to outside counsel across the active portfolio — markdown per matter, plus Gmail drafts when the MCP is available.
googleworkspace/cli
Replies to a Gmail message from the gws CLI with automatic threading, plus CC, BCC, extra recipients, attachments, HTML bodies and draft or dry-run modes.
TheCraigHewitt/hermes-chief-of-staff
Triage inbox, draft emails, manage calendar, schedule meetings, handle routine communications.
yc-software/qm
Build (or refresh) a voice profile of how the user writes email, from their own sent Gmail.
sigcli/sigcli
Interact with Bilibili (B站) — browse trending videos, view video details, read comments, search videos and users, view user profiles, like, coin, and favorite videos.
sigcli/sigcli
Interact with Hacker News (news.ycombinator.com) — browse top, new, and best stories, read item details and comment threads, look up user profiles, and search posts via Algolia.
sigcli/sigcli
Interact with LinkedIn — view your profile, browse other profiles, read the feed, search jobs/posts/people, get job details, create posts, like/unlike posts, comment, send connection requests, and…
sigcli/sigcli
Interact with Reddit — browse subreddits, read posts and comments, search content, view user profiles, post comments, vote, save posts, subscribe to subreddits.
sigcli/sigcli
Interact with Slack — read channels, search messages, check unreads, send messages, manage reactions, and look up users.
sigcli/sigcli
Interact with V2EX (v2ex.com) — browse hot and latest topics, read topic details and replies, search posts, create topics, reply to discussions, thank posts, favorite topics/nodes, follow members…
Works with
Interact with Outlook email — read inbox, send emails, search messages, reply/forward, manage folders, download attachments. Outlook is an agent skill from sigcli/sigcli. Interact with Outlook email — read inbox, send emails, search messages, reply/forward, manage folders, download attachments.
Outlook fits situations like: the user mentions email; unread messages.
Run `npx skills add sigcli/sigcli --skill outlook -a claude-code`. Or copy the skill folder (skills/outlook in sigcli/sigcli) into .claude/skills/outlook in your project. Claude Code loads it when a task matches its description.
Run `npx skills add sigcli/sigcli --skill outlook -a codex`. Or copy the skill folder (skills/outlook in sigcli/sigcli) into .agents/skills/outlook in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add sigcli/sigcli --skill outlook -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/outlook, .gemini/skills/outlook, .github/skills/outlook and .opencode/skills/outlook in your project.
Going by SKILL.md and its folder, Outlook needs Python for the scripts in its folder and credentials named SIG_MS_GRAPH_ACCESS_TOKEN. Our summary lists: Python 3; A credential in SIG_MS_GRAPH_ACCESS_TOKEN.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Outlook is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 181 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Outlook: Write Like Me Bootstrap (jxnl/personal-monorepo-template, 562 stars), Email Drafting (mgonto/executive-assistant-skills, 118 stars), Oc Status (anthropics/claude-for-legal, 9.6k stars) and Gmail Reply via gws (googleworkspace/cli, 31k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
sigcli (a GitHub organization) maintains it in sigcli/sigcli, which has 293 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on September 28, 2026.
Source: sigcli/sigcli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.