Instagram Skill
supreme-gg-gg/instagram-cli
How to use Instagram CLI to interact with Instagram from the command line on behalf of a user.
Connects NanoClaw to DeltaChat, which carries end-to-end encrypted messages over ordinary email, using a native adapter and no Chat SDK bridge.
$ npx skills add nanocoai/nanoclaw --skill add-deltachat -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nanocoai/nanoclaw add-deltachat --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/nanocoai/nanoclaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/add-deltachat .claude/skills/add-deltachat && 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 "add-deltachat" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-deltachat into .claude/skills/add-deltachat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-deltachat", 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/nanocoai/nanoclaw/tree/main/.claude/skills/add-deltachatType 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 nanocoai/nanoclaw --skill add-deltachat -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nanocoai/nanoclaw add-deltachat --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/add-deltachat .agents/skills/add-deltachat && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "add-deltachat" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-deltachat into .agents/skills/add-deltachat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-deltachat", 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 nanocoai/nanoclaw --skill add-deltachat -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nanocoai/nanoclaw add-deltachat --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/add-deltachat .cursor/skills/add-deltachat && 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 "add-deltachat" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-deltachat into .cursor/skills/add-deltachat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-deltachat", 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/nanocoai/nanoclaw.git --path .claude/skills/add-deltachat--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 nanocoai/nanoclaw --skill add-deltachat -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nanocoai/nanoclaw add-deltachat --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/add-deltachat .gemini/skills/add-deltachat && 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 "add-deltachat" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-deltachat into .gemini/skills/add-deltachat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-deltachat", 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 nanocoai/nanoclaw add-deltachatInstalls 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 nanocoai/nanoclaw --skill add-deltachat -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/add-deltachat .github/skills/add-deltachat && 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 "add-deltachat" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-deltachat into .github/skills/add-deltachat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-deltachat", 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 nanocoai/nanoclaw --skill add-deltachat -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install nanocoai/nanoclaw add-deltachat --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/add-deltachat .opencode/skills/add-deltachat && 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 "add-deltachat" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-deltachat into .opencode/skills/add-deltachat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-deltachat", 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.
add-deltachatConnects NanoClaw to DeltaChat, which carries end-to-end encrypted messages over ordinary email, using a native adapter and no Chat SDK bridge.
DeltaChat messages travel by email with Autocrypt and OpenPGP encryption, and this skill links that channel to NanoClaw through the `@deltachat/stdio-rpc-server` JSON-RPC subprocess. The adapter is plain Node.js. Installation copies the adapter and a registration test from the `channels` branch, appends a self-registration import to `src/channels/index.ts`, installs the pinned package and builds the project.
The one automated test confirms the channel registry contains `deltachat`, and it also fails if the import line drifts or the package is missing. Real delivery is checked by hand afterward. A dedicated email account is strongly recommended, because it collects encrypted messages and keys, and the provider should be checked against the DeltaChat provider list. IMAP defaults to SSL/TLS on port 993 and SMTP to STARTTLS on port 587, with credentials such as `DC_EMAIL` and `DC_PASSWORD` kept in `.env`.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit af699e7. 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.
Shell commands in SKILL.md call:
pnpmnodeFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
i.delta.chatAlso links to:
providers.delta.chatFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
DC_PASSWORDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
DeltaChat Channel for NanoClaw loads about 2.7k tokens when it runs. Until then it costs about 42 tokens; SKILL.md has 1,158 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 noted patterns worth knowing about, such as sudo or a known installer.
S (port 587). Both are configurable via `.env` — see Credentials below.Add to `.env`:d on every startup, so changing them in `.env` and restarting takes effect without wiping the account.read from the process environment (not `.env`). To override them, add `Environment=` lines to the systemd service unitST`, `DC_SMTP_PORT`) must be present in `.env`.or `DC_SMTP_PORT`/`DC_SMTP_SECURITY` in `.env`P_SECURITY=1` and `DC_SMTP_PORT=465` in `.env`, then restart.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); files beside SKILL.md are not scanned.
The full file from nanocoai/nanoclaw at commit af699e7, republished under its MIT licence (© nanocoai). 1,158 words, ~2,711 tokens.
.claude/skills/add-deltachat/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.The adapter drives the @deltachat/stdio-rpc-server JSON-RPC subprocess directly — pure Node.js against the DeltaChat core library. Messages are delivered over email with Autocrypt/OpenPGP encryption.
Fetch the channels branch from the configured remote that carries it, then
overwrite the skill-owned files with the canonical registry copies:
src/channels/deltachat.ts
src/channels/deltachat-registration.test.tsAppend to src/channels/index.ts (skip if already present):
import './deltachat.js';@deltachat/stdio-rpc-server@2.49.0pnpm run buildpnpm exec vitest run src/channels/deltachat-registration.test.tsBoth must be clean before proceeding. deltachat-registration.test.ts is the one integration test: it imports the real channel barrel and asserts the registry contains deltachat. It goes red if the import './deltachat.js'; line is deleted or drifts, if the barrel fails to evaluate (so the channel genuinely would not register), or if @deltachat/stdio-rpc-server isn't installed (the import throws) — so it also implicitly verifies the dependency from step 4. Importing is safe: deltachat instantiates the rpc client only in setup() (at host startup), never at import.
End-to-end message delivery against a real email account is verified manually once the service is running — see Wiring and Troubleshooting.
A dedicated email account is strongly recommended — it will accumulate DeltaChat-formatted messages and store encryption keys. Not all providers work well with DeltaChat; check https://providers.delta.chat/ before picking one.
Default security modes: IMAP uses SSL/TLS (port 993), SMTP uses STARTTLS (port 587). Both are configurable via .env — see Credentials below.
To find the correct hostnames for a domain:
node -e "require('dns').resolveMx('example.com', (e,r) => console.log(r))"Most providers publish their IMAP/SMTP hostnames in their help docs under "manual setup" or "IMAP access."
Add to .env:
DC_EMAIL=bot@example.com
DC_PASSWORD=your-app-password
DC_IMAP_HOST=imap.example.com
DC_IMAP_PORT=993
DC_IMAP_SECURITY=1 # 1=SSL/TLS (default), 2=STARTTLS, 3=plain
DC_SMTP_HOST=smtp.example.com
DC_SMTP_PORT=587
DC_SMTP_SECURITY=2 # 2=STARTTLS (default), 1=SSL/TLS, 3=plainSecurity settings are applied on every startup, so changing them in .env and restarting takes effect without wiping the account.
The following are read from the process environment (not .env). To override them, add Environment= lines to the systemd service unit or your launchd plist:
| Variable | Default | Description |
|---|---|---|
DC_ACCOUNT_DIR | dc-account | Directory for DeltaChat account data (IMAP state, keys, blobs) |
DC_DISPLAY_NAME | NanoClaw | Bot display name shown in DeltaChat |
DC_AVATAR_PATH | (none) | Absolute path to avatar image; set at startup only |
The /set-avatar command (send an image with that caption) is the easiest way to set the avatar at runtime without modifying the service file. Only users with owner or global admin role can use it.
Run from your NanoClaw project root:
source setup/lib/install-slug.sh
# Linux
systemctl --user restart $(systemd_unit)
# macOS
launchctl kickstart -k gui/$(id -u)/$(launchd_label)On first start the adapter configures the email account (IMAP/SMTP credentials, calls configure()). Subsequent starts skip straight to startIo(). Account data is stored in dc-account/ in the project root (or your DC_ACCOUNT_DIR).
DeltaChat contacts cannot be added by email alone — to start a chat, the user must open the bot's invite link in their DeltaChat app or scan its QR code. This triggers the SecureJoin handshake.
After the service starts, the adapter logs the invite URL and writes a QR SVG:
grep "invite link" logs/nanoclaw.log | tail -1
# url field contains the https://i.delta.chat/... invite link
# also written to dc-account/invite-qr.svg (or $DC_ACCOUNT_DIR/invite-qr.svg)The invite URL is stable (tied to the bot's email and encryption keys) so it stays valid across restarts.
Two options for the user to connect:
https://i.delta.chat/... URL and open it on the device running DeltaChat. The app recognises it and shows a "Start chat" prompt.dc-account/invite-qr.svg in a browser or image viewer, display it on screen, and scan it from the DeltaChat app using the QR-scan button on the new-chat screen.After accepting, DeltaChat exchanges keys and creates the chat automatically.
Once the first message arrives the router auto-creates a messaging_groups row. Look up the chat ID:
pnpm exec tsx scripts/q.ts data/v2.db \
"SELECT platform_id, name FROM messaging_groups WHERE channel_type='deltachat' AND is_group=0 ORDER BY created_at DESC LIMIT 5"Then run /init-first-agent — it creates the agent group, grants the user owner access, and wires the messaging group in one step:
pnpm exec tsx scripts/init-first-agent.ts \
--channel deltachat \
--user-id deltachat:user@example.com \
--platform-id <platform_id from above> \
--display-name "Your Name"Add the bot email to a DeltaChat group. When any member sends a message, the router creates a messaging_groups row with is_group = 1. Run /manage-channels to wire it to an agent group, or wire it directly with ncl — the host service must be running (ncl connects to it over a Unix socket):
# Engage mode/pattern default to the DeltaChat adapter's declared channel
# defaults — for DeltaChat groups that's a name pattern (the platform has no
# mention metadata), so the agent responds when addressed by name.
ncl wirings create --messaging-group-id <mg-id> --agent-group-id <ag-id>If you're in the middle of /setup, return to the setup flow now.
Otherwise, run /init-first-agent to create an agent and wire it to your DeltaChat DM (see Wiring above), or /manage-channels to wire this channel to an existing agent group.
deltachat"12") — the DeltaChat core's internal chat identifierdeltachat:{email} — the contact's email addressmessaging_groups as shown aboveshared session mode already gives each messaging group its own session)dc-account/invite-qr.svg; see Wiring for the bootstrap flow/set-avatar — send an image with this caption to change the bot's DeltaChat avatar (admin/owner only)maybeNetwork() called every 10 minutes to recover from prolonged idleNot supported: DeltaChat reactions, message editing/deletion, read receipts.
isConnected() returns true when the internal connectivity value is ≥ 3000:
| Range | Meaning |
|---|---|
| 1000–1999 | Not connected |
| 2000–2999 | Connecting |
| 3000–3999 | Working (IMAP fetching) |
| ≥ 4000 | Fully connected (IMAP IDLE) |
grep "Channel credentials missing" logs/nanoclaw.log | grep deltachatAll six required vars (DC_EMAIL, DC_PASSWORD, DC_IMAP_HOST, DC_IMAP_PORT, DC_SMTP_HOST, DC_SMTP_PORT) must be present in .env.
grep "DeltaChat" logs/nanoclaw.log | tail -20Common causes:
DC_IMAP_PORT/DC_IMAP_SECURITY or DC_SMTP_PORT/DC_SMTP_SECURITY in .envSet DC_SMTP_SECURITY=1 and DC_SMTP_PORT=465 in .env, then restart.
grep "Channel adapter started.*deltachat" logs/nanoclaw.loggrep "DeltaChat: IO started" logs/nanoclaw.log/init-first-agent to create their user record and wire the chatpnpm exec tsx scripts/q.ts data/v2.db "SELECT mg.platform_id, mga.agent_group_id FROM messaging_groups mg JOIN messaging_group_agents mga ON mg.id = mga.messaging_group_id WHERE mg.channel_type='deltachat'"rm -f dc-account/accounts.lock
systemctl --user restart "$(. setup/lib/install-slug.sh && systemd_unit)"The account is already configured — IO restarts automatically on service start. If the RPC subprocess is stuck, restart the service. Check for errors:
grep "DeltaChat" logs/nanoclaw.error.log | tail -20The messaging group exists but may not be wired to an agent group. Run:
pnpm exec tsx scripts/q.ts data/v2.db "SELECT id, platform_id, name FROM messaging_groups WHERE channel_type='deltachat'"If the group has no entry in messaging_group_agents, wire it with /manage-channels.
© nanocoai, 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 1 other file in .claude/skills/add-deltachat of nanocoai/nanoclaw.
Open the folder on GitHubat commit af699e7
DeltaChat Channel for NanoClaw 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 |
|---|---|---|---|---|---|---|
| DeltaChat Channel for NanoClaw this skillnanocoai/nanoclaw | 31k | — | ~2.7k | Automated safety check: Notes | MIT | |
| Instagram Skillsupreme-gg-gg/instagram-cli | 2.2k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Openloomi Connectorsmelandlabs/openloomi | 1k | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Traul Message Searchdandaka/traul | 112 | — | ~3.9k | Automated safety check: Notes | AGPL-3.0 | |
| Li InboxJakeschincariol/linkedin-agent-skill | 1.7k | — | ~723 | Automated safety check: Pass | MIT | |
| Ak Dev New Messaging Integrationyaalalabs/agent-kernel | 192 | — | ~4.6k | Automated safety check: Pass | Apache-2.0 |
supreme-gg-gg/instagram-cli
How to use Instagram CLI to interact with Instagram from the command line on behalf of a user.
melandlabs/openloomi
openloomi Connectors tools - manage the native 7 messaging integrations and pair with the composio skill for the 1000+ apps OAuth layer (Slack, Discord, X, Gmail, Outlook, Google…
dandaka/traul
Drives the traul CLI to sync, search and monitor messages from Slack, Telegram, Discord, Linear, Gmail, WhatsApp, Claude Code sessions and Markdown files.
Jakeschincariol/linkedin-agent-skill
Triage the LinkedIn inbox - sort connection requests and DMs into leads, recruiters, peers and spam, and draft the replies worth sending.
yaalalabs/agent-kernel
Step-by-step guide for adding a new messaging platform integration to Agent Kernel.
ihuzaifashoukat/x-use
Read X direct messages, triage inbox and request folders, send contextual reviewed messages, and inspect notifications with x-use.
nanocoai/nanoclaw
Installs or refreshes Iron Proxy and its Iron Control web console for NanoClaw, with a local Docker setup, database, credentials and a human approval bridge.
nanocoai/nanoclaw
Installs or refreshes OneCLI as the gateway provider for NanoClaw, copying the adapter files, registering the provider and running the setup script.
nanocoai/nanoclaw
Drives a web browser from the shell with the agent-browser CLI: open pages, read an element snapshot, click and fill by reference, grab text and screenshots.
nanocoai/nanoclaw
Installs the `dial` CLI and a credential in NanoClaw agent containers so chosen agents can send SMS, place AI voice calls and receive verification codes.
nanocoai/nanoclaw
Guides a conversational migration from an OpenClaw install to NanoClaw v2, carrying over identity, channel credentials, scheduled tasks and workspace files.
nanocoai/nanoclaw
Wires up an additional phone number onto an already-installed Dial channel, so one NanoClaw install answers SMS and AI voice calls on more than one line.
Works with
Categories
Connects NanoClaw to DeltaChat, which carries end-to-end encrypted messages over ordinary email, using a native adapter and no Chat SDK bridge. DeltaChat messages travel by email with Autocrypt and OpenPGP encryption, and this skill links that channel to NanoClaw through the `@deltachat/stdio-rpc-server` JSON-RPC subprocess.js.
DeltaChat Channel for NanoClaw fits situations like: talking to a NanoClaw agent through end-to-end encrypted DeltaChat messages; giving the agent its own email-backed chat identity; checking that the DeltaChat adapter is registered after an upgrade.
Run `npx skills add nanocoai/nanoclaw --skill add-deltachat -a claude-code`. Or copy the skill folder (.claude/skills/add-deltachat in nanocoai/nanoclaw) into .claude/skills/add-deltachat in your project. Claude Code loads it when a task matches its description.
Run `npx skills add nanocoai/nanoclaw --skill add-deltachat -a codex`. Or copy the skill folder (.claude/skills/add-deltachat in nanocoai/nanoclaw) into .agents/skills/add-deltachat 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 nanocoai/nanoclaw --skill add-deltachat -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-deltachat, .gemini/skills/add-deltachat, .github/skills/add-deltachat and .opencode/skills/add-deltachat in your project.
Going by SKILL.md and its folder, DeltaChat Channel for NanoClaw needs the command-line tools its instructions call (pnpm and node) and credentials named DC_PASSWORD. Our summary lists: A NanoClaw installation with pnpm; A dedicated email account with IMAP and SMTP access.
SKILL.md names 2 domains. In commands or code: i.delta.chat; the agent is likely to contact it when it follows the instructions. As links in the text: providers.delta.chat. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
DeltaChat Channel for NanoClaw 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.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with DeltaChat Channel for NanoClaw: Instagram Skill (supreme-gg-gg/instagram-cli, 2.2k stars), Openloomi Connectors (melandlabs/openloomi, 1k stars), Traul Message Search (dandaka/traul, 112 stars) and Li Inbox (Jakeschincariol/linkedin-agent-skill, 1.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
nanocoai (a GitHub organization) maintains it in nanocoai/nanoclaw, which has 30,906 GitHub stars. The repository holds 59 skills in this directory. The repository was last updated on October 9, 2026.
Source: nanocoai/nanoclaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.