把自然语言描述转为结构化 JSON,并由 mcp-diagram-generator MCP 服务生成 Draw.io、Mermaid 或 Excalidraw 图表文件。
编程
TinkerClaw Outlook
试用Read and search Outlook, inspect attachments, and create or edit drafts without any send endpoint. Uses one short-lived Microsoft Graph access token supplied on stdin for one run; it never stores credentials. Bulk mailbox export is opt-in.
它能做什么
**Your AI agent won't email the CEO at 3am.**
技能文档
Outlook Hack
Your AI agent won't email the CEO at 3am.
Not because there's a setting. Not because there's a policy. Because the code physically cannot send emails. We removed that capability the way you'd remove a chainsaw from a toddler — completely and without negotiation.
What It Does
- 📧 Read, search, and bulk-fetch emails across all folders
- 📎 Index all attachments (name, type, size) per message
- 📊 Generate digest summaries with top senders, unread counts, full body text
- ✏️ Create email drafts (lands in Drafts folder — never sends)
- 📅 Access calendar events, 👥 Browse contacts
Quick Start
1. Token Extraction (one-time, ~30 seconds)
Extract from the Teams tab, NOT Outlook. Classic Outlook no longer exists in most orgs, and new Outlook uses PoP tokens that can't be extracted. The Teams tab provides an MSAL refresh token (90-day, auto-rotating) that powers both this skill and the teams-hack skill.
Open Microsoft Teams (teams.cloud.microsoft) in Chrome with the OpenClaw browser relay attached. Then run this in-browser evaluation:
(() => {
const keys = Object.keys(localStorage).filter(
(k) => k.includes("refreshtoken") || k.includes("RefreshToken"),
);
const parsed = JSON.parse(localStorage.getItem(keys[0]));
const accountKeys = Object.keys(localStorage).filter((k) => {
try {
return JSON.parse(localStorage.getItem(k)).tenantId;
} catch {
return false;
}
});
let tenantId = null;
for (const k of accountKeys) {
try {
tenantId = JSON.parse(localStorage.getItem(k)).tenantId;
break;
} catch {}
}
return { secret: parsed.secret, tenantId };
})();
Save the token via the teams CLI (NOT the outlook-mail-fetch script):
teams token store --refresh-token "" --tenant-id ""
2. Verify Access
node {baseDir}/scripts/outlook-mail-fetch.mjs --test
3. Bulk Fetch
# Last 6 months (default)
node {baseDir}/scripts/outlook-mail-fetch.mjs --fetch-all
# Custom range
node {baseDir}/scripts/outlook-mail-fetch.mjs --fetch-all --months 12
Output: ~/.openclaw/workspace/data/outlook-emails/
raw-emails.jsonl— full email data (subject, from, to, body text, preview)attachments-index.jsonl— every attachment per messageemail-summary.md— readable digest with stats and per-email summaries
Critical: Teams is the Token Source
| Source | Token Type | Extractable? | Lifetime |
|---|---|---|---|
Teams (teams.cloud.microsoft) | MSAL refresh token | ✅ Yes | 90 days, auto-rotates |
New Outlook (outlook.cloud.microsoft) | PoP token (Proof-of-Possession) | ❌ No | Crypto-bound to browser |
Classic Outlook (outlook.office.com) | Bearer access token | ⚠️ Deprecated/gone | Most orgs migrated |
Always extract from the Teams tab. New Outlook uses Proof-of-Possession tokens that cannot be extracted or replayed. Classic Outlook is deprecated and no longer available in most orgs.
How It Works (Technical)
- Share your Microsoft Teams tab with OpenClaw via the Browser Relay
- The agent reads
localStorageto extract the MSAL refresh token - Token is stored and exchanged for a Graph API access token via
teams token store - Both this skill and
teams-hackshare~/.openclaw/credentials/outlook-msal.json(0600) - The
outlook-mail-fetch.mjsscript uses the Graph API access token for mail operations - Refresh token lasts 90 days and auto-rotates on each use
The skill is NOT scraping the page. It speaks Outlook's own REST API, authenticated through your existing browser session.
Token Lifetime & Refresh
- Refresh token: 90 days, auto-rotates on each use (shared with
teams-hack) - Access token: ~1 hour, automatically refreshed by the scripts
- Any cron job using either skill keeps the refresh token alive
- When expired: re-extract from Teams tab (one browser relay session)
Architecture Notes
- Zero external dependencies — pure Node.js (v18+), no npm packages
- Send-blocked — the script has no send/reply/forward functions. They don't exist.
- Rate-limited — fetches 50 emails per page with automatic pagination
- Body text cleaned — HTML stripped, whitespace normalized, truncated to 3000 chars per email
The Full Stack
Pair with whatsapp-ultimate for messaging and jarvis-voice for voice.
相关技能
通过托管 OAuth 访问 Microsoft Graph Excel 接口,读写 OneDrive 中的工作簿、工作表、区域、表格与图表。
以 AI 机器人身份加入视频会议,提供语音、虚拟形象与屏幕共享四种模式。
按用户明确指令,在得到大脑(Get笔记)中保存、搜索并管理笔记与知识库。
从 AdMapix API 拉取广告创意、应用、榜单和收入预估等数据,原样返回结构化 JSON。
在本地磁盘以分类纯 Markdown 文件保存需要长期留存的事实,与智能体内置记忆并存。
globalcaos 的更多技能
浏览全部技能为 OpenClaw 智能体加上 JARVIS 风格的英式嗓音与冷面幽默,一条命令同步输出语音和紫色聊天气泡。
OpenClaw 原生 WhatsApp 通道:22 项消息与群组操作,叠加 Protocol v2 多智能体协同。
一个本地面板,统一追踪 Anthropic、Gemini、OpenAI、Manus 四家提供商的 token 用量与预算告警。
Stop sending 'format this JSON' to Opus. Stop sending 'cron job' to GPT. Billing-aware routing guide for choosing among the models already configured in your OpenClaw setup when assigning an agent, sub-agent or cron task — flat-rate first, metered only when justified, budget pressure respected. Not for picking models outside your configuration, and not a runtime proxy.
Your agent says 'done' — but did it check? Superpowers turns any OpenClaw agent into a disciplined engineer. Verification iron law (evidence before claims), three-agent code review (build → verify spec → verify quality), systematic debugging (4-phase root cause, three-strike rule), brainstorming gates (design before code), and anti-over-engineering rules. Use when: (1) coding tasks of any complexity, (2) debugging failures, (3) about to claim work is complete, (4) spawning sub-agents, (5) planning features, (6) reviewing code. Inspired by top coding agent methodologies, adapted for OpenClaw multi-agent architecture.
12 humor patterns for AI agents based on embedding space bisociation theory. Operational reference for generating contextually appropriate humor during conve...