add-cursor
Skill31k starsChanged 9 days agoMITView on GitHub
Use Cursor (local Agent SDK) as a full agent provider — planning, tool orchestration, MCP tools, session resume — alongside or instead of Claude. Cursor-account sign-in or API key, held by the credential gateway. Per-group via `ncl groups config update --provider cursor`. Distinct from using Cursor as a cloud agent (those run on Cursor VMs and are not this provider).
- Reads credentials
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 155
After install, ask the operator before flipping it:
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Cursor agent provider
Shortcut:
pnpm exec tsx setup/index.ts --step provider-auth cursorperforms this whole install (payload files, barrels, SDK pin, image rebuild) plus auth in one command. The steps below are the same operations, for agent-driven or manual application.
NanoClaw selects each group's agent backend from container_configs.provider (default claude). This skill installs the Cursor provider: copy the payload from this skill's payload/, append one import to each of the five provider and contract barrels, pin @cursor/sdk in the agent-runner tree, rebuild, then run the auth walk-through.
The provider runs @cursor/sdk in-process inside the container (Agent.create / resume / send): native streaming, MCP tools, a local agent store (the continuation is a Cursor agentId). It integrates through the provider contracts only — a data-only host contract declares the composed AGENTS.md, the per-group .cursor-shared state volume at ~/.cursor, the two Cursor-native skill directories and the Cursor model domains; the runtime contract declares the execution stance, model mapping, memory hooks, MCP mapping, and archives each exchange into conversations/ through core's shared exchange archive.
Credentials stay in the credential gateway selected by NANOCLAW_GATEWAY_PROVIDER. The container only ever sees the placeholder CURSOR_API_KEY=cursor_placeholder_nanoclaw, which the SDK sends as a bearer header. Setup stores the key for two exact routes: api2.cursor.sh/auth/exchange_user_api_key, where the SDK swaps it for a short-lived runtime token, and api.cursor.com/v1/models, for model discovery. The runtime token stays in the SDK's memory and rides the same gateway proxy on the agent's Connect RPCs to api2.cursor.sh, which the gateway leaves untouched because the key is scoped to the exchange path. The payload ships cursor.gateway-proxy.test.ts, which proves every request of a real SDK run transits the proxy carrying nothing but the placeholder. Never put a key in chat.
The mechanical steps under Install carry nc: directive fences: an agent reads the prose and applies them, and a parser can apply them deterministically from the same document. Every directive is idempotent, so the whole skill is safe to re-run; anything a parser can't apply falls back to the prose beside it.
Install
Pre-flight
Install and refresh require host contract version 1, credential-connection seam version 2 or later (path-scoped credentials), and core's shared exchange archive (container/agent-runner/src/provider-contracts/exchange-archive.ts). The compatibility predicate below guards every later step, so an unsupported core receives no partial payload or dependency changes. If it prints no, stop and tell the operator to run /update-nanoclaw first.
node -e "const fs=require('fs'); const r=(f)=>fs.existsSync(f)?fs.readFileSync(f,'utf8'):''; if(/PROVIDER_HOST_CONTRACT_SEAM_VERSION = 1/.test(r('src/provider-contracts/registry.ts')) && /PROVIDER_CREDENTIAL_CONNECTION_SEAM_VERSION = ([2-9]|[1-9][0-9])/.test(r('setup/gateways/credential-store.ts')) && /export function archiveProviderExchange/.test(r('container/agent-runner/src/provider-contracts/exchange-archive.ts'))) console.log('yes'); else console.log('no')"1. Copy the payload
Copy only the files listed below from this skill's payload/ to the matching paths at the project root. These are skill-owned files; overwrite them together when refreshing the skill. The host files are the data-only host contract, the env adapter and their guards; the container files are the provider runtime (turn loop, event mapping, hooks.json writer), the runtime contract, the memory hook adapter, the host-side login helper, and their guards — including the conformance test the verifier requires and the gateway-proxy proof; the setup file is the picker entry and auth walk-through.
payload/src/providers/cursor.ts -> src/providers/cursor.ts
payload/src/providers/cursor-registration.test.ts -> src/providers/cursor-registration.test.ts
payload/src/providers/cursor-host-contribution.test.ts -> src/providers/cursor-host-contribution.test.ts
payload/src/provider-contracts/cursor.ts -> src/provider-contracts/cursor.ts
payload/container/agent-runner/src/providers/cursor.ts -> container/agent-runner/src/providers/cursor.ts
payload/container/agent-runner/src/providers/cursor-auth.ts -> container/agent-runner/src/providers/cursor-auth.ts
payload/container/agent-runner/src/providers/cursor-hook.ts -> container/agent-runner/src/providers/cursor-hook.ts
payload/container/agent-runner/src/providers/cursor-gateway-probe.ts -> container/agent-runner/src/providers/cursor-gateway-probe.ts
payload/container/agent-runner/src/providers/cursor-registration.test.ts -> container/agent-runner/src/providers/cursor-registration.test.ts
payload/container/agent-runner/src/providers/cursor.factory.test.ts -> container/agent-runner/src/providers/cursor.factory.test.ts
payload/container/agent-runner/src/providers/cursor-auth.test.ts -> container/agent-runner/src/providers/cursor-auth.test.ts
payload/container/agent-runner/src/providers/cursor-hook.test.ts -> container/agent-runner/src/providers/cursor-hook.test.ts
payload/container/agent-runner/src/providers/cursor.poll-loop.test.ts -> container/agent-runner/src/providers/cursor.poll-loop.test.ts
payload/container/agent-runner/src/providers/cursor.conformance.test.ts -> container/agent-runner/src/providers/cursor.conformance.test.ts
payload/container/agent-runner/src/providers/cursor.gateway-proxy.test.ts -> container/agent-runner/src/providers/cursor.gateway-proxy.test.ts
payload/container/agent-runner/src/provider-contracts/cursor.ts -> container/agent-runner/src/provider-contracts/cursor.ts
payload/setup/providers/cursor.ts -> setup/providers/cursor.ts
payload/setup/providers/cursor.test.ts -> setup/providers/cursor.test.ts
payload/setup/providers/cursor-registration.test.ts -> setup/providers/cursor-registration.test.ts2. Wire the barrels
Append import './cursor.js'; once to each of the five setup, provider, and contract barrels below. Keep all existing imports. Each barrel-registration test imports its real barrel and asserts cursor is registered.
import './cursor.js';import './cursor.js';import './cursor.js';import './cursor.js';import './cursor.js';3. Agent-runner dependency
The container talks to Cursor through @cursor/sdk, not a CLI binary. Pin the exact version in the agent-runner tree (Bun, not the host pnpm workspace — @cursor/sdk must not enter the host lockfile). Do not add a Cursor CLI to container/cli-tools.json.
@cursor/sdk@1.0.284. Build and test
pnpm run buildcd container/agent-runner && bun run typecheckpnpm exec vitest run src/providers/cursor-registration.test.ts src/providers/cursor-host-contribution.test.ts setup/providerscd container/agent-runner && bun test --isolate src/providers/cursor*.test.tspnpm exec tsx scripts/provider-contract-verifier.ts --required-declared cursorThe verifier runs the host and runtime contract suites (registration, conformance, the gateway-proxy proof) and checks the host and runtime contract inventories agree. It goes red if a barrel line is missing, a barrel fails to evaluate, the payload is broken, or @cursor/sdk is not installed.
Build the local image. The SDK dependency requires a full local build.
./container/build.sh buildAuthenticate
pnpm exec tsx setup/index.ts --step provider-auth cursorThe same walk-through fresh installs get from the setup picker: sign in with a Cursor account (browser or URL), or enter a Cursor API key into the local masked prompt. Account sign-in runs the host-side helper (bun container/agent-runner/src/providers/cursor-auth.ts), which uses Cursor.auth.login({ store: null }) to mint an expiring NanoClaw key into a mode-0600 handoff file; setup hands it to the credential gateway and deletes the file. The key is never printed, placed in process arguments, or sent through chat. The flow stores the key for those two routes, short-circuits only when the gateway already holds both, and finishes with the install check.
OAuth-minted keys default to 90 days; dashboard and service-account keys last until revoked. Prefer a dashboard or service-account key for unattended installs. To replace an expired or revoked key, remove both entries (Cursor for api2.cursor.sh/auth/exchange_user_api_key, Cursor models for api.cursor.com/v1/models) with your gateway's own tools, then re-run the provider-auth command.
Use it
After installing on a running NanoClaw host, restart the host service first so it loads the Cursor registration (Linux: systemctl --user restart nanoclaw-v2-<install-slug>.service; macOS: its launchd restart). A host that still runs the old build spawns Cursor groups without the Cursor state volume, so continuations would not survive a container restart.
Then, per group:
ncl groups config update --id <group-id> --provider cursor
ncl groups restart --id <group-id>Switching is an operator action — run it from the host. Every provider uses the
same memory/ tree, so memory carries across automatically. Run
/migrate-memory only when upgrading a group that still has legacy .seed.md,
CLAUDE.local.md, or unindexed imported memory. See
docs/provider-migration.md.
--model selects the Cursor model (default composer-2.5). Cursor exposes no reasoning-effort or speed knob the container can map, so --effort is ignored and --speed is not accepted for cursor groups.
Default new groups to cursor (optional)
New groups are created on the instance default (DEFAULT_AGENT_PROVIDER in .env, or claude when unset). Installing this skill wires cursor in but does NOT change that default — "installed" is not "authenticated", so the default stays claude until you opt in explicitly.
After install, ask the operator before flipping it:
"Cursor is installed. Default new agent groups to cursor? Existing groups keep their current provider."
On yes — set it, then restart the host service as in Use it above so it takes effect:
pnpm exec tsx setup/index.ts --step set-env -- --key DEFAULT_AGENT_PROVIDER --value cursorThis affects only groups created afterward. Per-group ncl groups config update --provider still overrides the default in either direction.
Troubleshooting
- Container dies at boot, channel silent:
grep 'Container exited non-zero' logs/nanoclaw.error.log— thestderrTailcarries the reason (e.g.Unknown provider: cursor. Registered: claudemeans the barrels aren't wired in the running build). - 401 after months of working: an OAuth-minted user key expired (default 90 days). Remove both Cursor entries from the gateway and re-run
pnpm exec tsx setup/index.ts --step provider-auth cursor. Prefer a dashboard or service-account key for unattended installs. - Auth errors mid-conversation: the gateway entry is missing or stale — same rotation as above.
@cursor/sdkmissing inside the container: the image predates the pin — re-run./container/build.sh build.- Traffic and the gateway: under Bun the SDK's key exchange, model discovery, and Connect RPCs (HTTP/1.1) all honor
HTTPS_PROXYand the gateway CA, and the provider pins HTTP/1.1. The one path that cannot be proxied is an HTTP/2 Connect transport (node:http2ignoresHTTPS_PROXY), which the SDK selects only when Cursor's server-sidehttp2Configforces HTTP/2 over the client pin. While a proxy is configured the provider refuses that path client-side: the run fails withCursor SDK attempted an HTTP/2 connection to <authority> that would bypass the configured proxy; refusinginstead of the agent's runtime token (never the stored key) leaving the container directly. Seeing that error means Cursor is forcing HTTP/2 — check Cursor's status and retry later; do not remove the proxy. The operator-side layer is core'sNANOCLAW_EGRESS_LOCKDOWN=true: the container runs on an internal Docker network whose only hop is the gateway, so any bypass attempt fails at the network as well.
To remove the provider, follow REMOVE.md.
Trending
Surging: 1 new project took it in the last 4 weeks, none the 4 weeks before.thin data
Who's talking about nanocoai/nanoclaw
- Arjay McCandless“Building Nanoclaw, Agent Security | Gavriel Cohen”YouTube · Aug 28, 2026 · 6.4k views
- NanoClaw“Introducing NanoCo: a professional assistant for every employee”YouTube · May 25, 2026 · 352 views
- The Enterprise AI Show“Building AI Agents That Support Enterprise Teams”YouTube · Sep 16, 2026 · 122 views
- RepoShots“Agentes de IA seguros e isolados em containers com nanoclaw — Claude Code e Gemini #AI #Shorts”YouTube · May 17, 2026 · 115 views
- AITechZco Pulse“The 3,900-Line AI Agent That Claims to Match a Giant”YouTube · Sep 5, 2026 · 40 views
The biggest 5 of 62 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 62
Talked about on GitHub, YouTube, Bluesky and the web (62 times).
On GitHub · 50
- May 29, 2026guide.md and skill.md not written under MNEMON_DATA_DIR — lost on container restart — mnemon-dev/mnemon2 reactions · 1 comment
- Sep 2, 2026copilot-talon-improv — socfortress/CoPilot1 reaction · 5 comments
- Oct 29, 2026fix(telegram): wrap actions with more than 8 buttons into rows of 8 — vercel/chat0 reactions · 1 comment
- Oct 29, 2026Telegram polling: idle getUpdates has no client-side deadline and hangs on a black-holed connection — vercel/chat0 reactions
- Oct 21, 2026docs(gchat): Workspace add-on and webhook verification keys (nanoclaw #4132, #4100) — glifocat/nanoclaw-docs0 reactions · 1 comment
45 more on GitHub
- Oct 16, 2026docs: add NanoClaw to client showcase — agentskills/agentskills0 reactions
- Oct 14, 2026Reposition README: a personable assistant with real memory — bbinoy/ted-personal-assistant0 reactions
- Oct 14, 2026agent-skills.github.nanocoai.nanoclaw: 2.4.0 → 2026.10.0 — sudosubin/agents.nix0 reactions
- Oct 13, 2026M19 stage 4: control-plane simplification decisions (containerized supervisor, embedded store, Hermes pin) — letya999/hermes-hub0 reactions · 2 comments
- Oct 12, 2026Add NanoClaw harness detection — auron-labs/harness-detect0 reactions
- Oct 11, 2026[App Request] NanoClaw — getumbrel/umbrel-apps0 reactions
- Oct 11, 2026Refresh latest contributions and organize profile projects — ogarciarevett/ogarciarevett0 reactions
- Oct 11, 2026docs(promotion): Step 9 — move the pin from v2.4.0 to v2026.10.0 — prathish-ks/isthmus0 reactions
- Oct 10, 2026chore(updates): weekly scan 2026-W41 — tiberiuarva/enterpriseaitools0 reactions · 1 comment
- Oct 9, 2026🦞 OpenClaw Ecosystem Digest 2026-10-10 — stevenko2002/agents-radar0 reactions
- Oct 4, 2026docs(env): CLAUDE_CODE_AUTO_COMPACT_WINDOW can be set on the host after v2.4.0 — glifocat/nanoclaw-docs0 reactions · 1 comment
- Oct 4, 2026docs(upgrading): setup commits its own files; never stash installed skill files — glifocat/nanoclaw-docs0 reactions · 1 comment
- Oct 4, 2026docs(upgrading): validation refreshes the selected gateway on gateway-skill changes — glifocat/nanoclaw-docs0 reactions · 1 comment
- Oct 3, 2026agent-skills.github.nanocoai.nanoclaw: 2.3.0 → 2.4.0 — sudosubin/agents.nix0 reactions
- Oct 2, 2026fix(e2e): accept NanoClaw setup's own commits after the tested commit — nanocoai/nanoclaw-oss-dev-toolssays it tested it0 reactions
- Oct 1, 2026Dependency advisories still open on v0.52.0 (grpc, x/crypto, otel log, go-archive) — paradigmxyz/iron-proxy0 reactions
- Sep 30, 2026[Candidate] nanocoai/nanoclaw - large collection (63 SKILL.md files) — ProSkillsMD/proskills0 reactions · 1 comment
- Sep 30, 2026agent-skills.github.nanocoai.nanoclaw: init at 2.3.0 — sudosubin/agents.nix0 reactions
- Sep 27, 2026[Plugin]: NanoClaw — omacom/omarchy-plugin-marketplace0 reactions · 11 comments
- Sep 27, 2026docs(promotion): G4 — move the pin from v2.3.0 to v2.4.0 — prathish-ks/isthmus0 reactions
- Sep 13, 2026feat(e2e): supervise provider authentication in the public wizard — nanocoai/nanoclaw-oss-dev-tools0 reactions
- Sep 2, 2026Suggest: nanocoai/nanoclaw — haggaishachar/awesomemap0 reactions · 1 comment
- Aug 31, 2026candidate: add-wechat — BigPengSays/awesome-creator-skills0 reactions
- Aug 30, 2026candidate: add-wechat — BigPengSays/awesome-creator-skills0 reactions
- Aug 29, 2026candidate: add-wechat — BigPengSays/awesome-creator-skills0 reactions
- Aug 27, 2026docs: define ChatGPT messaging agent architecture — imMamdouhaboammar/whatsapp-ai-supervisor0 reactions · 3 comments
- Aug 25, 2026harvest: world watch — SaneSanders/noemium0 reactions
- Aug 24, 2026Upstream update detected: plan a sandbox refresh (2026-08-24) — DawoudIO/nanoclaw-community-agents0 reactions
- Aug 23, 2026Upstream: chat SDK dependency bump 4.29.0 -> 4.38.1 — nanocoai/nanoclaw#3460 / #3461 — DawoudIO/nanoclaw-community-agents0 reactions
- Aug 23, 2026Upstream: send_message double-delivery with mid-turn message blocks — nanocoai/nanoclaw#3462 — DawoudIO/nanoclaw-community-agents0 reactions
- Aug 23, 2026Upstream: messages_in UNIQUE-constraint crash on retry — nanocoai/nanoclaw#3457 — DawoudIO/nanoclaw-community-agents0 reactions
- Aug 23, 2026Upstream: Discord approval button custom_id corruption — nanocoai/nanoclaw#3185 / #3458 — DawoudIO/nanoclaw-community-agents0 reactions
- Aug 23, 2026Upstream: claim-stuck watchdog kills busy (not stuck) turns — nanocoai/nanoclaw#3455 — DawoudIO/nanoclaw-community-agents0 reactions
- Aug 23, 2026Track: upstream nanoclaw fixes opened 2026-08-22/23 — DawoudIO/nanoclaw-community-agents0 reactions
- Aug 19, 2026fix(pairing): accept spaced approval codes — NousResearch/hermes-agent0 reactions · 1 comment
- Aug 13, 2026Add NanoClaw to compatible clients — agentplugins/agent-plugins-site0 reactions · 2 comments
- Aug 2, 2026chore(sync): update upstream pins for nanoclaw-aio — JSONbored/nanoclaw-aio0 reactions · 1 comment
- Jul 24, 2026🦞 OpenClaw 生态日报 2026-07-24 — zx0828/big_model_radar0 reactions
- Jul 20, 2026🦞 OpenClaw 生态日报 2026-07-20 — 96loveslife/big_model_radar0 reactions
- Jul 19, 2026Add NanoClaw installation instructions to README — Kehillat-Eretz-Hemdah/keh-agent-plugins0 reactions
- Jul 17, 2026[Argus] CVE-2026-56402: NanoClaw 2.1.17 미만 버전 - 검증되지 않은 승인 응답 핸들러를 통한 권한 상승 — LEEKIYOON-SEC/Argus-DEV0 reactions
- Jul 14, 2026🦞 OpenClaw 生态日报 2026-07-14 — 96loveslife/big_model_radar0 reactions
- Jul 13, 2026fix(slack): 실제 호출 후 스레드 히스토리를 조회하라 — lbox-kr/aimclaw0 reactions
- Jul 1, 2026🦞 OpenClaw 生态日报 2026-07-01 — 96loveslife/big_model_radar0 reactions
- Jun 25, 2026🦞 OpenClaw 生态日报 2026-06-25 — 96loveslife/big_model_radar0 reactions
On YouTube · 5
- Aug 28, 2026Building Nanoclaw, Agent Security | Gavriel Cohen — Arjay McCandless6.4k views · 6 comments
- May 25, 2026Introducing NanoCo: a professional assistant for every employee — NanoClaw352 views
- Sep 16, 2026Building AI Agents That Support Enterprise Teams — The Enterprise AI Show122 views
- May 17, 2026Agentes de IA seguros e isolados em containers com nanoclaw — Claude Code e Gemini #AI #Shorts — RepoShots115 views · 1 comment
- Sep 5, 2026The 3,900-Line AI Agent That Claims to Match a Giant — AITechZco Pulse40 views
On Bluesky · 4
- Jun 2, 2026📦 nanocoai / nanoclaw ⭐ 29,631 (+44) 🗒 TypeScript A lightweight alternative to OpenClaw that runs in containers for security. Connects to… — @github-trending-js.bsky.social2 likes and reposts
- Aug 30, 2026🚀 GitHub Intelligence Drop nanoclaw (TypeScript • 🟢) ⭐ 30.6K → https://github.com/nanocoai/nanoclaw heroui (TypeScript • 🟢) ⭐ 30.5K →… — @githubfeed.bsky.social1 likes and repost
- May 20, 2026📦 nanocoai / nanoclaw ⭐ 28,995 (+59) 🗒 TypeScript A lightweight alternative to OpenClaw that runs in containers for security. Connects to… — @github-trending-js.bsky.social1 likes and repost
- Aug 11, 2026My big gripe with a lot of those agent apps is that they basically just promote “go ask AI to configure x”. Like, if NanoClaw install… — @soulfire.jarexibackblaze.xyz0 likes and reposts · 3 replies
On the web · 3
- Oct 19, 2026nanoclaw/.gitignore at main - nanocoai — google.com
- Apr 23, 2026retracted · Issue #1948 · nanocoai/nanoclaw — google.com
- Feb 8, 2026nanocoai/nanoclaw | Tech signals — hdatf.com
Other versions1 project uses a version of this.
Word for word · 1
- qwibitai/nanoclaw★ 31k100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository55 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- container/CLAUDE.mdCLAUDE.md
- add-anydocSkill
- add-atomic-chat-toolSkill
- add-clidashSkill
- add-codexSkill
- add-dashboardSkill
- add-deltachatSkill
- add-dial-numberSkill
- add-dialSkill
- add-dial-toolSkill
- add-discordSkill
- add-emacsSkill
- add-gchatSkill
- add-githubSkill
- add-imessageSkill
- add-iron-proxySkill
- add-karpathy-llm-wikiSkill
- add-linearSkill
- add-macos-statusbarSkill
- add-matrixSkill
- add-mattermostSkill
- add-mnemonSkill
- add-ollama-providerSkill
- add-ollama-toolSkill
- add-onecliSkill
- add-opencodeSkill
- add-resendSkill
- add-rtkSkill
- add-signalSkill
- add-slackSkill
- add-tavily-toolSkill
- add-teamsSkill
- add-telegramSkill
- add-vercelSkill
- add-webexSkill
- add-wechatSkill
- add-whatsapp-cloudSkill
- add-whatsappSkill
- customizeSkill
- debugSkill
- init-first-agentSkill
- learnSkill
- manage-channelsSkill
- manage-mountsSkill
- migrate-from-openclawSkill
- migrate-from-v1Skill
- migrate-memorySkill
- migrate-nanoclawSkill
- migrate-slack-agentsSkill
- setupSkill
- slack-a2a-roomsSkill
- slack-agent-flowSkill
- update-nanoclawSkill
- update-skillsSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

