init-onecli
Skill1 starsChanged 40 days agoMITView on GitHub
Install and initialize OneCLI Agent Vault. Migrates existing .env credentials to the vault. Use after /update-nanoclaw brings in OneCLI as a breaking change, or for first-time OneCLI setup.
- Pipes a download into a shell
- Reads credentials
3 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- prathish-ks/isthmusword for word, first seen Oct 12, 2026
- TomGranot/groupguardword for word, first seen Sep 3, 2026
- microsoft/amplifier-app-nanoclawedited, first seen Jun 12, 2026
Other versions3 projects use a version of this.
Word for word · 2
- TomGranot/groupguard★ 3100% same
- prathish-ks/isthmus★ 2100% same
Edited · 1
- microsoft/amplifier-app-nanoclaw★ 598% same
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 repository54 other files it gives its agents.
- container/AGENTS.mdAGENTS.md
- container/CLAUDE.mdCLAUDE.md
- add-atomic-chat-toolSkill
- add-codexSkill
- add-dashboardSkill
- add-deltachatSkill
- add-discordSkill
- add-emacsSkill
- add-gcal-toolSkill
- add-gchatSkill
- add-githubSkill
- add-gmail-toolSkill
- add-imessageSkill
- add-karpathy-llm-wikiSkill
- add-linearSkill
- add-macos-statusbarSkill
- add-matrixSkill
- add-mnemonSkill
- add-ollama-providerSkill
- add-ollama-toolSkill
- add-opencodeSkill
- add-piSkill
- add-resendSkill
- add-rtkSkill
- add-signalSkill
- add-slackSkill
- add-teamsSkill
- add-telegramSkill
- add-vercelSkill
- add-webexSkill
- add-wechatSkill
- add-whatsapp-cloudSkill
- add-whatsappSkill
- archive-tripSkill
- customizeSkill
- debugSkill
- get-qodo-rulesSkill
- init-first-agentSkill
- learnSkill
- manage-channelsSkill
- manage-mountsSkill
- migrate-from-openclawSkill
- migrate-from-v1Skill
- migrate-memorySkill
- migrate-nanoclawSkill
- nano-pvt-hubSkill
- new-knowledge-graph-tutorSkill
- new-tripSkill
- qodo-pr-resolverSkill
- reflectSkill
- setupSkill
- update-nanoclawSkill
- update-skillsSkill
- use-native-credential-proxySkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
28 rules. About 0 are common, 16 are distinctive, and 12 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈16
Distinctive · estimate
This author's own choices. Worth a look.
12
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 10
Principle: When something is broken or missing, fix it.
- Distinctive: line 20
If the command succeeds, OneCLI is installed, check for an Anthropic secret:
- Distinctive: line 26
If an Anthropic secret exists, tell the user OneCLI is already configured and working.
- Distinctive: line 31
If they choose to keep, skip to Phase 5 (Verify).
- Distinctive: line 45
If they cancel, stop.
- Very specific: line 53
If @onecli-sh/sdk is NOT in package.json, the codebase hasn't been updated to use OneCLI yet.
- Very specific: line 66
If the command is not found, the CLI was likely installed to ~/.local/bin/.
- Very specific: line 101
If it never becomes healthy, check the gateway containers.
- Very specific: line 113
Read the .env file and look for these credential variables:
- Very specific: line 143
After successful migration, remove the credential lines from .env.
- Distinctive: line 145
Verify the secret was registered:
- Very specific: line 154
After handling Anthropic credentials (whether migrated or freshly registered), scan .env again for remaining credential variables that …
- Very specific: line 156
Important: Only migrate credentials that containers use via outbound HTTPS.
- Distinctive: line 165
If any of these are found with non-empty values, present them to the user:
- Distinctive: line 178
If there are credential variables not in the table above that look container-facing (i.e.
- Very specific: line 180
After migration, remove the migrated lines from .env using the Edit tool.
- Distinctive: line 182
Verify all secrets were registered:
- Distinctive: line 189
No migration needed. Proceed to register credentials fresh.
- Distinctive: line 191
Check if OneCLI already has an Anthropic secret:
- Distinctive: line 196
If an Anthropic secret already exists, skip to Phase 4.
- Distinctive: line 225
Ask them to let you know when done.
- Very specific: line 229
After user confirms: verify with onecli secrets list that an Anthropic secret exists.
- Very specific: line 237
If build fails, diagnose and fix.
- Distinctive: line 241
Run from your NanoClaw project root:
- Distinctive: line 249
Check logs for successful OneCLI integration:
- Distinctive: line 257
If the service is running and a channel is configured, tell the user to send a test message to verify the agent responds.
- Very specific: line 287
If an agent uses git or gh, add to data/v2-sessions/<agent-group-id>/.claude-shared/settings.json:
- Very specific: line 304
Container gets no credentials: Verify ONECLI_URL is set in .env and the gateway has an Anthropic secret (onecli secrets list).
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 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
Initialize OneCLI Agent Vault
This skill installs OneCLI, configures the Agent Vault gateway, and migrates any existing .env credentials into it. Run this after /update-nanoclaw introduces OneCLI as a breaking change, or any time OneCLI needs to be set up from scratch.
Principle: When something is broken or missing, fix it. Don't tell the user to go fix it themselves unless it genuinely requires their manual action (e.g. pasting a token).
Phase 1: Pre-flight
Check if OneCLI is already working
onecli version 2>/dev/nullIf the command succeeds, OneCLI is installed, check for an Anthropic secret:
onecli secrets listIf an Anthropic secret exists, tell the user OneCLI is already configured and working. Use AskUserQuestion:
- Keep current setup — description: "OneCLI is installed and has credentials configured. Nothing to do."
- Reconfigure — description: "Start fresh — reinstall OneCLI and re-register credentials."
If they choose to keep, skip to Phase 5 (Verify). If they choose to reconfigure, continue.
Check for native credential proxy
grep "credential-proxy" src/index.ts 2>/dev/nullIf startCredentialProxy is imported, the native credential proxy skill is active. Tell the user: "You're currently using the native credential proxy (.env-based). This skill will switch you to OneCLI's Agent Vault, which adds per-agent policies and rate limits. Your .env credentials will be migrated to the vault."
Use AskUserQuestion:
- Continue — description: "Switch to OneCLI Agent Vault."
- Cancel — description: "Keep the native credential proxy."
If they cancel, stop.
Check the codebase expects OneCLI
grep "@onecli-sh/sdk" package.jsonIf @onecli-sh/sdk is NOT in package.json, the codebase hasn't been updated to use OneCLI yet. Tell the user to run /update-nanoclaw first to get the OneCLI integration, then retry /init-onecli. Stop here.
Phase 2: Install OneCLI
Install the gateway and CLI
curl -fsSL onecli.sh/install | sh
curl -fsSL onecli.sh/cli/install | shVerify: onecli version
If the command is not found, the CLI was likely installed to ~/.local/bin/. Add it to PATH:
export PATH="$HOME/.local/bin:$PATH"
grep -q '.local/bin' ~/.bashrc 2>/dev/null || echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
grep -q '.local/bin' ~/.zshrc 2>/dev/null || echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrcRe-verify with onecli version.
Configure the CLI
Point the CLI at the local OneCLI instance, the ONECLI_URL was output from the install script above:
onecli config set api-host ${ONECLI_URL}Set ONECLI_URL in .env
grep -q 'ONECLI_URL' .env 2>/dev/null || echo 'ONECLI_URL=${ONECLI_URL}' >> .envWait for gateway readiness
The gateway may take a moment to start after installation. Poll for up to 15 seconds:
for i in $(seq 1 15); do
curl -sf ${ONECLI_URL}/health && break
sleep 1
doneIf it never becomes healthy, check the gateway containers. The gateway is a Docker Compose stack (project onecli, compose file at ~/.onecli/docker-compose.yml). Inspect it through Docker rather than the host process list:
docker ps -a --filter "label=com.docker.compose.project=onecli" --format '{{.Names}}\t{{.Status}}'Both services have restart: unless-stopped, so they come back automatically once the Docker daemon is up. If Docker isn't running, start it (open -a Docker on macOS) and they'll restart on their own. To bring the stack up manually: docker compose -f ~/.onecli/docker-compose.yml up -d. If that fails, show the error and stop — the user needs to debug their OneCLI installation.
Phase 3: Migrate existing credentials
Scan .env for credentials to migrate
Read the .env file and look for these credential variables:
| .env variable | OneCLI secret type | Host pattern |
ANTHROPIC_API_KEY | anthropic | api.anthropic.com |
CLAUDE_CODE_OAUTH_TOKEN | anthropic | api.anthropic.com |
ANTHROPIC_AUTH_TOKEN | anthropic | api.anthropic.com |
Read .env:
cat .envParse the file for any of the credential variables listed above.
If credentials found in .env
For each credential found, migrate it to OneCLI:
Anthropic API key (ANTHROPIC_API_KEY=sk-ant-...):
onecli secrets create --name Anthropic --type anthropic --value <key> --host-pattern api.anthropic.comClaude OAuth token (CLAUDE_CODE_OAUTH_TOKEN=... or ANTHROPIC_AUTH_TOKEN=...):
onecli secrets create --name Anthropic --type anthropic --value <token> --host-pattern api.anthropic.comAfter successful migration, remove the credential lines from .env. Use the Edit tool to remove only the credential variable lines (ANTHROPIC_API_KEY, CLAUDE_CODE_OAUTH_TOKEN, ANTHROPIC_AUTH_TOKEN). Keep all other .env entries intact (e.g. ONECLI_URL, TELEGRAM_BOT_TOKEN, channel tokens).
Verify the secret was registered:
onecli secrets listTell the user: "Migrated your Anthropic credentials from .env to the OneCLI Agent Vault. The raw keys have been removed from .env — they're now managed by OneCLI and will be injected at request time without entering containers."
Offer to migrate other container-facing credentials
After handling Anthropic credentials (whether migrated or freshly registered), scan .env again for remaining credential variables that containers use for outbound API calls.
Important: Only migrate credentials that containers use via outbound HTTPS. Channel tokens (TELEGRAM_BOT_TOKEN, SLACK_BOT_TOKEN, SLACK_APP_TOKEN, DISCORD_BOT_TOKEN) are used by the NanoClaw host process to connect to messaging platforms — they must stay in .env.
Known container-facing credentials:
| .env variable | Secret name | Host pattern |
OPENAI_API_KEY | OpenAI | api.openai.com |
PARALLEL_API_KEY | Parallel | api.parallel.ai |
If any of these are found with non-empty values, present them to the user:
AskUserQuestion (multiSelect): "These credentials are used by container agents for outbound API calls. Moving them to the vault means agents never see the raw keys, and you can apply rate limits and policies."
- One option per credential found (e.g., "OPENAI_API_KEY" — description: "Used by voice transcription and other OpenAI integrations inside containers")
- Skip — keep them in .env — description: "Leave these in .env for now. You can move them later."
For each credential the user selects:
onecli secrets create --name <SecretName> --type api_key --value <value> --host-pattern <host>If there are credential variables not in the table above that look container-facing (i.e. not a channel token), ask the user: "Is <VARIABLE_NAME> used by agents inside containers? If so, what API host does it authenticate against? (e.g., api.example.com)" — then migrate accordingly.
After migration, remove the migrated lines from .env using the Edit tool. Keep channel tokens and any credentials the user chose not to migrate.
Verify all secrets were registered:
onecli secrets listIf no credentials found in .env
No migration needed. Proceed to register credentials fresh.
Check if OneCLI already has an Anthropic secret:
onecli secrets listIf an Anthropic secret already exists, skip to Phase 4.
Otherwise, register credentials using the same flow as /setup:
AskUserQuestion: Do you want to use your Claude subscription (Pro/Max) or an Anthropic API key?
- Claude subscription (Pro/Max) — description: "Uses your existing Claude Pro or Max subscription. You'll run
claude setup-tokenin another terminal to get your token." - Anthropic API key — description: "Pay-per-use API key from console.anthropic.com."
Subscription path
Tell the user to run claude setup-token in another terminal and copy the token it outputs. Do NOT collect the token in chat.
Once they have the token, AskUserQuestion with two options:
- Dashboard — description: "Best if you have a browser on this machine. Open ${ONECLI_URL} and add the secret in the UI. Use type 'anthropic' and paste your token as the value."
- CLI — description: "Best for remote/headless servers. Run:
onecli secrets create --name Anthropic --type anthropic --value YOUR_TOKEN --host-pattern api.anthropic.com"
API key path
Tell the user to get an API key from https://console.anthropic.com/settings/keys if they don't have one.
AskUserQuestion with two options:
- Dashboard — description: "Best if you have a browser on this machine. Open ${ONECLI_URL} and add the secret in the UI."
- CLI — description: "Best for remote/headless servers. Run:
onecli secrets create --name Anthropic --type anthropic --value YOUR_KEY --host-pattern api.anthropic.com"
After either path
Ask them to let you know when done.
If the user's response happens to contain a token or key (starts with sk-ant- or looks like a token): handle it gracefully — run the onecli secrets create command with that value on their behalf.
After user confirms: verify with onecli secrets list that an Anthropic secret exists. If not, ask again.
Phase 4: Build and restart
pnpm run buildIf build fails, diagnose and fix. Common issue: @onecli-sh/sdk not installed — run pnpm install first.
Restart the service.
Run from your NanoClaw project root:
- macOS (launchd):
launchctl kickstart -k gui/$(id -u)/"$(. setup/lib/install-slug.sh && launchd_label)" - Linux (systemd):
systemctl --user restart "$(. setup/lib/install-slug.sh && systemd_unit)" - WSL/manual: stop and re-run
bash start-nanoclaw.sh
Phase 5: Verify
Check logs for successful OneCLI integration:
tail -30 logs/nanoclaw.log | grep -i "onecli\|gateway"Expected: OneCLI gateway config applied messages when containers start.
If the service is running and a channel is configured, tell the user to send a test message to verify the agent responds.
Tell the user:
- OneCLI Agent Vault is now managing credentials
- Agents never see raw API keys — credentials are injected at the gateway level
- To manage secrets:
onecli secrets list, or open ${ONECLI_URL} - To add rate limits or policies:
onecli rules create --help
Granting secrets to agents (safe merge)
set-secrets replaces the agent's entire secret list — it never appends. Always read the current list first and merge before calling it. This pattern is canonical across all skills that assign secrets:
AGENT_ID=$(onecli agents list | jq -r '.data[] | select(.identifier=="<agentGroupId>") | .id')
CURRENT=$(onecli agents secrets --id "$AGENT_ID" | jq -r '[.data[]] | join(",")')
MERGED=$(printf '%s' "$CURRENT,<new-secret-id>" | tr ',' '\n' | sort -u | paste -sd ',' -)
onecli agents set-secrets --id "$AGENT_ID" --secret-ids "$MERGED"
onecli agents secrets --id "$AGENT_ID"<agentGroupId>— theagentGroupIdfield ingroups/<folder>/container.json<new-secret-id>— theidfromonecli secrets list- Multiple new secrets: append them comma-separated before the
printfstep
git over HTTPS
OneCLI's proxy injects credentials proactively — injections_applied=1 appears in docker logs onecli even when git sends no auth header. However, OneCLI sets SSL_CERT_FILE for Node/Python/Deno but not GIT_SSL_CAINFO. Without it, git rejects the OneCLI MITM certificate.
Auth format matters: GitHub's git smart HTTP protocol (github.com) requires Basic auth, not Bearer. GitHub's REST API (api.github.com) accepts Bearer. These must be configured as separate secrets with different formats — see /add-github for the full setup.
If an agent uses git or gh, add to data/v2-sessions/<agent-group-id>/.claude-shared/settings.json:
"GIT_SSL_CAINFO": "/tmp/onecli-combined-ca.pem",
"GIT_TERMINAL_PROMPT": "0",
"GIT_CONFIG_COUNT": "1",
"GIT_CONFIG_KEY_0": "credential.helper",
"GIT_CONFIG_VALUE_0": "",
"GH_TOKEN": "ghp_onecli_proxy_replaces_this"Debugging injection: docker logs onecli 2>&1 | grep "github.com" shows every request with injections_applied=N and the HTTP status. If injections_applied=1 but status is still 401, the injected credential value is wrong or uses the wrong auth format for that endpoint.
Troubleshooting
"OneCLI gateway not reachable" in logs: The gateway isn't running. Check with curl -sf ${ONECLI_URL}/health. The most common cause is that Docker itself is down (the gateway is a Compose stack) — start Docker (open -a Docker on macOS) and the containers restart automatically. To bring them up manually: docker compose -f ~/.onecli/docker-compose.yml up -d.
Container gets no credentials: Verify ONECLI_URL is set in .env and the gateway has an Anthropic secret (onecli secrets list).
Old .env credentials still present: This skill should have removed them. Double-check .env for ANTHROPIC_API_KEY, CLAUDE_CODE_OAUTH_TOKEN, or ANTHROPIC_AUTH_TOKEN and remove them manually if still present.
Port 10254 already in use: Another OneCLI instance may be running. Check with lsof -i :10254 and kill the old process, or configure a different port.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

