gmail
Manage your Gmail inbox from Claude Code. List, read, triage, reply, send, and create filters.
Creates a new versioned migration for ClaudeClaw.
$ npx -y skills add earlyaidopters/claudeclaw --skill add-migration --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/add-migrationContext preview
The summary Claude sees to decide when to auto-load this skill.
Creates a new versioned migration for ClaudeClaw.
Creates a new versioned migration for ClaudeClaw.
Read `migrations/version.json`. Find the highest version key using semver order. Also read the `version` field from `package.json`.
If `migrations/version.json` has no keys yet, use the `version` field from `package.json` as the base for computing bump options.
Given the current highest version (e.g. `v1.0.1`), compute:
| Option | Result | Behaviour | |---------|----------|------------------------------------------------| | current | v1.0.1 | Append to the existing version's array (no new key) | | patch | v1.0.2 | New version key | | minor | v1.1.0 | New version key, reset patch to 0 | | major | v2.0.0 | New version key, reset minor and patch to 0 |
**Q1 — Version bump** (`header: "Version bump"`, single-select) Four options, each showing the computed result value:
**Q2 — Description** (`header: "Description"`) A short plain-English sentence describing what this migration does.
Convert the description to a slug:
Example: "Rename BOT_TOKEN to TELEGRAM_BOT_TOKEN in .env" → `rename-bot-token-to-telegram-bot-token-in-env`
Use `AskUserQuestion` (`header: "Filename"`) to present the slug as the default option alongside a free-text "Other" option for customisation.
Path: `migrations/<version>/<filename>.ts`
Create the directory if it does not exist.
export const description = '<the description the user provided>';
export async function run(): Promise<void> {
// TODO: implement migration
}If a new version was created (patch / minor / major), update the `version` field in `package.json` to match (without the `v` prefix, e.g. `1.0.2`).
If **current** was chosen, `package.json` stays as-is.
If `CHANGELOG.md` does not exist, create it with this header:
# Changelog All notable changes to ClaudeClaw will be documented here.
For a **new version** (patch / minor / major), prepend a new section directly below the header (above any existing entries):
## [v1.0.2] - YYYY-MM-DD ### Added - <description>
For **current**, find the existing section for that version and append a bullet under the appropriate heading (`### Added` by default). If the section does not exist yet, create it using the same format above.
Use today's date in `YYYY-MM-DD` format.
Print a summary of everything created or modified:
Migration created: Version : v1.0.2 (package.json updated) File : migrations/v1.0.2/rename-bot-token.ts registry: migrations/version.json updated changelog: CHANGELOG.md updated
Your Claude Code CLI, delivered to your phone via Telegram. ClaudeClaw is not a chatbot wrapper. It spawns the actual claude CLI on your Mac or Linux machine and pipes the result back to your Telegram chat.
Manage your Gmail inbox from Claude Code. List, read, triage, reply, send, and create filters.
Manage your Google Calendar from Claude Code. Create events with Meet links, send invites, check availability.
Manage Slack from Claude Code. List conversations, read messages, send replies, search for channels and DMs.
Show current times across Mark's key locations. Use when Mark says "timezone", "what time is it", "team times", "check the time…
Summarize the current conversation into a TLDR note and save it to your notes folder. Use when you say "tldr", "save a summary",…