Using Ccproxy Inspector
starbaser/ccproxy
Operates the ccproxy inspector MITM system for intercepting, inspecting, and transforming LLM API traffic.
Installs OpenCode as an optional NanoClaw agent runtime, reaching OpenRouter, OpenAI, Google, DeepSeek and others through OpenCode's own configuration.
$ npx skills add nanocoai/nanoclaw --skill add-opencode -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nanocoai/nanoclaw add-opencode --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-opencode .claude/skills/add-opencode && 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-opencode" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-opencode into .claude/skills/add-opencode/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-opencode", 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-opencodeType 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-opencode -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nanocoai/nanoclaw add-opencode --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-opencode .agents/skills/add-opencode && 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-opencode" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-opencode into .agents/skills/add-opencode/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-opencode", 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-opencode -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nanocoai/nanoclaw add-opencode --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-opencode .cursor/skills/add-opencode && 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-opencode" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-opencode into .cursor/skills/add-opencode/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-opencode", 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-opencode--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-opencode -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nanocoai/nanoclaw add-opencode --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-opencode .gemini/skills/add-opencode && 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-opencode" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-opencode into .gemini/skills/add-opencode/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-opencode", 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-opencodeInstalls 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-opencode -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-opencode .github/skills/add-opencode && 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-opencode" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-opencode into .github/skills/add-opencode/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-opencode", 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-opencode -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-opencode --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-opencode .opencode/skills/add-opencode && 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-opencode" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-opencode into .opencode/skills/add-opencode/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-opencode", 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-opencodeInstalls OpenCode as an optional NanoClaw agent runtime, reaching OpenRouter, OpenAI, Google, DeepSeek and others through OpenCode's own configuration.
OpenCode can run as an optional agent provider for NanoClaw, reaching OpenRouter, OpenAI, Google, DeepSeek and others through OpenCode's config and not through the Anthropic Agent SDK. The payload ships inside the skill, so no separate provider branch is needed. Existing installs add or authenticate it with a provider-auth setup step, and `--refresh` replaces the installed payload and its pins, so local edits should be backed up first.
Backend defaults are installation-wide, while model and reasoning effort can be overridden per group. A host helper script, `scripts/opencode-host.ts`, offers `--configure`, `--update` and `--debug` modes and needs OpenCode 1.18.25 or newer with `--prompt`; the update and debug modes force a permission prompt before every edit and command. Authentication checks installed files and pins without launching a container, and a working backend and account are confirmed by sending a real request. Diagnostic context passed to OpenCode may stay in its history.
Read from SKILL.md and the folder at commit 66f0823. 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.
Ships script files (TypeScript, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
pnpmbunopencodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
OpenCode Agent Provider for NanoClaw loads about 5k tokens when it runs. Until then it costs about 67 tokens; SKILL.md has 1,770 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.
`.env`. The full setup wizard also offers this flow and selects OpenCode for`.env`, command arguments, or the container environment.Exported defaults take precedence over `.env`,om exported environment variables, then `.env`.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 66f0823, republished under its MIT licence (© nanocoai). 1,770 words, ~5,013 tokens.
.claude/skills/add-opencode/SKILL.md (or your agent's skills folder). This skill also uses 47 other files; get the full folder from GitHub.Install OpenCode as an optional NanoClaw runtime. The payload is included in this skill; it needs no separate provider branch. It uses the upstream runtime, instructions, host, and setup metadata contracts. The host contract remains at version 1; the container owns its non-secret ChatGPT placeholder file.
OpenCode is offered by the standard setup provider picker. Existing installs can
add or authenticate it with pnpm exec tsx setup/index.ts --step provider-auth opencode.
To replace an installed payload and update its pins, append --refresh; back up
local payload edits first. Ordinary re-authentication leaves installed files and
the container image alone. Backend defaults are installation-wide; model and
reasoning effort can be overridden per group through the existing container
configuration. Per-group backend/auth selection and structured channel attachment
transport are separate work.
Authentication checks the installed files, registration lines, and exact pins against this skill's declarations without launching a subprocess or container. Install and refresh run the existing provider contract verification; the build step owns image freshness. Model selection does not repeat installation checks. A working backend and account are checked separately by sending a real request.
After installing this payload, run pnpm exec tsx scripts/opencode-host.ts --configure
for host OpenCode setup, or use --update / --debug for the corresponding
operational skill. An existing OpenCode CLI can also run directly in the checkout;
it discovers .claude/skills natively. Host sign-in uses OpenCode's own settings
and is independent of the container's gateway credentials. Installed setup failures
use the existing provider failure-assist hook, including wizard authentication
and installation-check failures. Host diagnostic context is model input and may
remain in native OpenCode history; deleting its private temporary file does not
erase those records. The helper requires stable OpenCode 1.18.25 or newer with
--prompt and prefers the newest compatible installation it finds.
--debug, --update and failure help launch it with an OPENCODE_PERMISSION
override, so OpenCode asks before every edit and command even when the
operator's top-level config allows them (OpenCode itself skips the prompt for
a bare redirection with no command, such as > file). --configure keeps
OpenCode's native permissions.
Automatic help before payload
installation is optional and is not part of the runtime contract.
Install and refresh require host contract version 1 and credential-connection seam version 1. The compatibility predicate below guards every subsequent step, so an unsupported core receives no partial payload or dependency changes. Update core first if it reports a missing prerequisite.
node -e "const fs=require('fs'); const p='src/provider-contracts/registry.ts', g='setup/gateways/credential-store.ts'; if(fs.existsSync(p) && /PROVIDER_HOST_CONTRACT_SEAM_VERSION = 1/.test(fs.readFileSync(p,'utf8')) && fs.existsSync(g) && /PROVIDER_CREDENTIAL_CONNECTION_SEAM_VERSION = 1/.test(fs.readFileSync(g,'utf8'))) console.log('yes'); else console.log('no')"Copy only the files listed below from this skill's payload/ to the matching
paths at the project root. Do not copy ignored dependency directories or other
generated native-test files. These are skill-owned files; overwrite them together
when refreshing the skill. Keep the core-owned cwd-shim.ts, registries, and
contract realization files in place.
When refreshing an older installation, remove its unused
opencode-memory-plugin.ts, opencode.compaction.test.ts, and dedicated
opencode-managed-config tree from container/agent-runner/src/providers/.
Recreate affected containers after the refresh to discard their old config
symlinks. Keep other tools' settings and persisted session data.
The obsolete host Dockerfile guard must also be removed during refresh; current OpenCode installation is declared by the SDK and CLI manifests.
rm -f src/opencode-dockerfile.test.tspayload/container/agent-runner/src/provider-contracts/opencode.ts -> container/agent-runner/src/provider-contracts/opencode.ts
payload/container/agent-runner/src/providers/mcp-to-opencode.test.ts -> container/agent-runner/src/providers/mcp-to-opencode.test.ts
payload/container/agent-runner/src/providers/mcp-to-opencode.ts -> container/agent-runner/src/providers/mcp-to-opencode.ts
payload/container/agent-runner/src/providers/opencode-config.ts -> container/agent-runner/src/providers/opencode-config.ts
payload/container/agent-runner/src/providers/opencode-memory.ts -> container/agent-runner/src/providers/opencode-memory.ts
payload/container/agent-runner/src/providers/opencode-registration.test.ts -> container/agent-runner/src/providers/opencode-registration.test.ts
payload/container/agent-runner/src/providers/opencode-turn.ts -> container/agent-runner/src/providers/opencode-turn.ts
payload/container/agent-runner/src/providers/opencode.attachments.test.ts -> container/agent-runner/src/providers/opencode.attachments.test.ts
payload/container/agent-runner/src/providers/opencode.config.test.ts -> container/agent-runner/src/providers/opencode.config.test.ts
payload/container/agent-runner/src/providers/opencode.conformance.test.ts -> container/agent-runner/src/providers/opencode.conformance.test.ts
payload/container/agent-runner/src/providers/opencode.empty-resume.test.ts -> container/agent-runner/src/providers/opencode.empty-resume.test.ts
payload/container/agent-runner/src/providers/opencode.factory.test.ts -> container/agent-runner/src/providers/opencode.factory.test.ts
payload/container/agent-runner/src/providers/opencode.memory.test.ts -> container/agent-runner/src/providers/opencode.memory.test.ts
payload/container/agent-runner/src/providers/opencode.native.test.ts -> container/agent-runner/src/providers/opencode.native.test.ts
payload/container/agent-runner/src/providers/opencode.question.test.ts -> container/agent-runner/src/providers/opencode.question.test.ts
payload/container/agent-runner/src/providers/opencode.shared-runtime.test.ts -> container/agent-runner/src/providers/opencode.shared-runtime.test.ts
payload/container/agent-runner/src/providers/opencode.sse-cleanup.test.ts -> container/agent-runner/src/providers/opencode.sse-cleanup.test.ts
payload/container/agent-runner/src/providers/opencode.ts -> container/agent-runner/src/providers/opencode.ts
payload/container/agent-runner/src/providers/opencode-auth.ts -> container/agent-runner/src/providers/opencode-auth.ts
payload/container/agent-runner/src/providers/opencode-auth.test.ts -> container/agent-runner/src/providers/opencode-auth.test.ts
payload/scripts/opencode-auth-config.test.ts -> scripts/opencode-auth-config.test.ts
payload/scripts/opencode-auth.test.ts -> scripts/opencode-auth.test.ts
payload/scripts/opencode-auth.ts -> scripts/opencode-auth.ts
payload/scripts/opencode-gateway.test.ts -> scripts/opencode-gateway.test.ts
payload/scripts/opencode-host.ts -> scripts/opencode-host.ts
payload/scripts/opencode-host.test.ts -> scripts/opencode-host.test.ts
payload/scripts/opencode-model-config.ts -> scripts/opencode-model-config.ts
payload/scripts/opencode-models.test.ts -> scripts/opencode-models.test.ts
payload/scripts/opencode-models.ts -> scripts/opencode-models.ts
payload/scripts/opencode-vault.test.ts -> scripts/opencode-vault.test.ts
payload/scripts/opencode-vault.ts -> scripts/opencode-vault.ts
payload/scripts/tsconfig.opencode-auth.json -> scripts/tsconfig.opencode-auth.json
payload/setup/providers/opencode.test.ts -> setup/providers/opencode.test.ts
payload/setup/providers/opencode.ts -> setup/providers/opencode.ts
payload/src/provider-contracts/opencode.ts -> src/provider-contracts/opencode.ts
payload/src/providers/opencode-auth-stub.ts -> src/providers/opencode-auth-stub.ts
payload/src/providers/opencode-registration.test.ts -> src/providers/opencode-registration.test.ts
payload/src/providers/opencode.ts -> src/providers/opencode.tsAppend import './opencode.js'; once to each of the five setup, provider, and contract
barrels below. Keep all existing imports.
import './opencode.js';import './opencode.js';import './opencode.js';import './opencode.js';import './opencode.js';Install the SDK in the runner's Bun package and add the matching CLI manifest entry with trusted postinstall enabled. Both pins must remain exactly 1.18.25. When refreshing an existing install, replace both old pin entries; presence alone does not establish compatibility. This updates the runner package and lockfile; there is no host SDK dependency.
@opencode-ai/sdk@1.18.25{"name":"opencode-ai","version":"1.18.25","onlyBuilt":true}Run the host build, runner typecheck, host/auth tests, and all provider tests. The tests exercise real barrel registration and the provider-owned contract conformance suite. All checks must pass before rebuilding the agent image.
pnpm run buildpnpm exec tsc -p scripts/tsconfig.opencode-auth.jsoncd container/agent-runner && bun run typecheckpnpm exec vitest run src/providers/opencode-registration.test.ts scripts/opencode-auth*.test.ts scripts/opencode-gateway.test.ts scripts/opencode-host.test.ts scripts/opencode-models.test.ts scripts/opencode-vault.test.ts setup/providerscd container/agent-runner && bun test --isolate src/providers/opencode*.test.ts src/providers/mcp-to-opencode.test.tsBuild the local image with ./container/build.sh build. The new SDK dependency
requires a full local build; a CLI-only overlay cannot supply it. This switches
a published-image installation to locally built images.
./container/build.sh buildRun pnpm exec tsx setup/index.ts --step provider-auth opencode from the project
root to install a missing payload and image, then choose authentication. If the
provider is already installed, this command leaves its files and image alone;
append --refresh only when intentionally replacing its payload and pins. Choose
ChatGPT sign-in, a local OpenAI-compatible endpoint, OpenRouter, DeepSeek, or a
supported native backend. Automatic API-key configuration supports OpenAI,
OpenRouter, DeepSeek, Google, and Anthropic; other native authentication schemes
require separate integration. The command stores credentials in the configured
credential gateway selected by NANOCLAW_GATEWAY_PROVIDER and backend defaults in
.env. The full setup wizard also offers this flow and selects OpenCode for
new groups only after configuration succeeds. The standalone command leaves the
instance default unchanged.
For ChatGPT, native OpenCode sign-in runs in a temporary container directory.
OpenCode parses its own login file into the seam's chatgpt OAuth profile, hands
it to the selected gateway, and removes the temporary native file. The gateway
stores it in its own native format, and setup may wait for the gateway to confirm
the login works; the gateway's skill describes both. The container initializes fixed
nc-opencode-token-v1 placeholders before every OpenCode server start at
$XDG_DATA_HOME/opencode/auth.json; tokens and account metadata stay in the gateway.
API-key mode clears stale OAuth state. Refresh the payload and restart the host
service and affected containers when updating from the earlier read-only-bind
candidate; old containers retain their mounts until recreated.
Native model domains and the configured HTTPS model host belong to OpenCode’s
provider contract. Your gateway's skill says which endpoints it accepts and
whether a manual grant or a manual re-auth after expiry applies. Do not put a key in
.env, command arguments, or the container environment.
After installing on a running NanoClaw host, restart its actual host service
before waking any OpenCode group. This reloads the host provider registration and
backend settings. On Linux use systemctl --user restart nanoclaw-v2-<install-slug>.service
(or the installation's system service command); on macOS use its normal launchd
restart workflow. Confirm the service is running, then select and restart the
test group:
ncl groups config update --id <group-id> --provider opencode
ncl groups restart --id <group-id>Send a message and verify a reply, then send a second message to check session
continuation. The test requires a reachable backend and the correct gateway
secret grant. No provider is switched by the install steps alone. If memory
needs to move from another provider, follow /migrate-memory before switching.
OAuth refresh belongs to the credential gateway; your gateway's skill says whether re-auth after expiry is manual.
The container uses only a fixed sentinel. Do not implement token refresh in the provider or copy live credentials into a group. A saved credential is not proof that authentication still works.
If a request fails because the login expired or was revoked, run on the host:
pnpm exec tsx scripts/opencode-auth.ts --reauth
# For a browser on the host instead of device pairing:
pnpm exec tsx scripts/opencode-auth.ts --reauth --method browserThis pairs again and updates the existing gateway credential ID, preserving its grants and all backend/model defaults. If no credential exists, setup creates one and applies the gateway’s grant behavior described above. Retry the failed request.
An unavailable vault, duplicate name, or incompatible credential entry stops the operation before sign-in. Resolve the gateway/permissions or entry metadata in the selected gateway and retry; do not delete a credential to force setup to run. Failed pairing leaves the old entry intact; failed saves leave defaults unchanged. Temporary native credentials are removed after either success or failure.
API-key rotation keeps the same credential ID. Changing its exact host requires confirmation; whether the stored key can move with it is the gateway's decision, and a blank answer keeps a key only where the gateway allows. Setup never retrieves the stored key.
Run pnpm exec tsx scripts/opencode-models.ts to keep the current default or
choose another model without signing in again. This changes only
OPENCODE_MODEL; the small model, endpoint, credentials, and group overrides
stay as configured. Restart the NanoClaw host and affected groups afterward.
pnpm exec tsx scripts/opencode-models.ts --list --refresh
pnpm exec tsx scripts/opencode-models.ts --model openai/<model-id>Discovery runs the installed container's opencode models command and filters
for text and tool support, including its ChatGPT-specific filter when selected.
Only a disposable fixed sentinel is used for that filter; no credentials or host
OpenCode files are mounted for discovery. --refresh fetches the runtime's
current model catalog; it does not upgrade the CLI or SDK. Account access is checked by a real
request, not by catalog membership. Standalone host OpenCode is never consulted.
If discovery is unavailable, keep the existing model or enter an id manually.
There is no static fallback list. A custom OpenAI-compatible endpoint is queried
through its own /models endpoint; other custom endpoints use manual IDs.
The configured backend must match the model prefix; changing backends still
uses the authentication command. Exported defaults take precedence over .env,
so conflicting exported values must be cleared before changing the saved model.
This separate command avoids rerunning authentication merely to change a model, and querying the container avoids disagreement with a separately upgraded host CLI. New models needing newer runtime support require a matched CLI/SDK update and image rebuild. Model changes do not automatically change context limits or modalities; adjust any custom overrides to match the new model.
The host reads these values from exported environment variables, then .env.
Put comments on separate lines. These settings affect only OpenCode containers.
OPENCODE_PROVIDER: OpenCode backend ID, such as openai or openrouter.OPENCODE_MODEL: default full provider/model ID. The group's model wins.OPENCODE_SMALL_MODEL: optional separate model for lighter work, using the same backend prefix as OPENCODE_PROVIDER.OPENCODE_BASE_URL: backend URL, or native to use the native endpoint.
For an openai backend with a custom URL, the runtime uses Chat Completions.
An absent setting retains the historical ANTHROPIC_BASE_URL fallback for
existing installs. The auth command writes this provider-owned setting and
preserves Claude's endpoint.OPENCODE_AUTH_MODE=chatgpt: initialize the container's non-secret ChatGPT stub. Leave unset for
API-key and local endpoints; the auth command handles this when switching.OPENCODE_MODEL_CONTEXT_LIMIT: positive token count for the main model.OPENCODE_MODEL_OUTPUT_LIMIT: positive output limit, requiring a context limit.OPENCODE_MODEL_INPUT_MODALITIES: optional comma-separated main-model input
types from text,audio,image,video,pdf.OPENCODE_NATIVE_ATTACHMENT_MAX_COUNT / OPENCODE_NATIVE_ATTACHMENT_MAX_BYTES:
optional limits for already-staged structured attachments. Upstream channel
attachment transport remains text-only until that separate feature lands.Custom model limits and modalities apply only to the main model. NanoClaw supplies MCP configuration and container policy. See ARCHITECTURE.md for turn completion, memory snapshots, offline startup, cancellation, and MCP timeouts.
For reproducible native integration coverage, download the official OpenCode
1.18.25 binary and run from container/agent-runner:
OPENCODE_TEST_BINARY=/absolute/path/opencode bun test --isolate src/providers/opencode.native.test.tsThe test checks the binary version, starts a local model fixture, and exercises
native tools, automatic and overflow compaction, cold resume, child memory,
terminal errors, a 65-second MCP call, and cancellation. It writes its requests
and server logs to the temporary evidence directory printed at completion.
It takes about two minutes and requires no account credentials. The ordinary
test suite skips this check unless OPENCODE_TEST_BINARY is set.
To remove the provider, follow REMOVE.md.
© 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 47 other files in .claude/skills/add-opencode of nanocoai/nanoclaw.
Open the folder on GitHubat commit 66f0823
OpenCode Agent Provider 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 |
|---|---|---|---|---|---|---|
| OpenCode Agent Provider for NanoClaw this skillnanocoai/nanoclaw | 31k | — | ~5k | Automated safety check: Notes | MIT | |
| Using Ccproxy Inspectorstarbaser/ccproxy | 348 | — | ~2.7k | Automated safety check: Pass | Custom licence | |
| LLM Routerjamesrochabrun/skills | 215 | 1 repos | ~3.3k | Automated safety check: Pass | MIT | |
| PiDeck Usage Probe Helperayuayue/PiDeck | 1k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Using Ccproxy APIstarbaser/ccproxy | 348 | — | ~4k | Automated safety check: Pass | Custom licence | |
| Configuring Visionoxbshw/watch-skill | 452 | — | ~509 | Automated safety check: Notes | MIT |
starbaser/ccproxy
Operates the ccproxy inspector MITM system for intercepting, inspecting, and transforming LLM API traffic.
jamesrochabrun/skills
This skill should be used when users want to route LLM requests to different AI providers (OpenAI, Grok/xAI, Groq, DeepSeek, OpenRouter) using SwiftOpenAI-CLI.
ayuayue/PiDeck
Helps show a model provider's usage, balance or quota in PiDeck: checks built-in support, points to the dialog templates, or writes a custom probe entry.
starbaser/ccproxy
Guides users through ccproxy as an OpenAI-compatible and Anthropic-compatible LLM API server with SDK integration, OAuth authentication, sentinel key substitution, model routing, and troubleshooting.
oxbshw/watch-skill
The user wants to connect an LLM or vision provider, already has an API key, asks "can I use OpenAI/Anthropic/Gemini/OpenRouter", wants local Ollama, or needs different cheap and strong models.
mydisha/keirouter
Chat / code generation via KeiRouter using OpenAI /v1/chat/completions or Anthropic /v1/messages format with streaming + auto-fallback combos.
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
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 or refreshes OneCLI as the gateway provider for NanoClaw, copying the adapter files, registering the provider and running the setup script.
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.
nanocoai/nanoclaw
Adds a persistent wiki knowledge base to a NanoClaw group following Karpathy's LLM Wiki pattern, with folders, a tailored container skill and a CLAUDE.md section.
Works with
Categories
Installs OpenCode as an optional NanoClaw agent runtime, reaching OpenRouter, OpenAI, Google, DeepSeek and others through OpenCode's own configuration. OpenCode can run as an optional agent provider for NanoClaw, reaching OpenRouter, OpenAI, Google, DeepSeek and others through OpenCode's config and not through the Anthropic Agent SDK. The payload ships inside the skill, so no separate provider branch is needed.
OpenCode Agent Provider for NanoClaw fits situations like: running NanoClaw agents on models from OpenRouter, OpenAI, Google or DeepSeek; refreshing the installed OpenCode payload and its pinned versions; debugging or updating the host OpenCode setup with permission prompts on.
Run `npx skills add nanocoai/nanoclaw --skill add-opencode -a claude-code`. Or copy the skill folder (.claude/skills/add-opencode in nanocoai/nanoclaw) into .claude/skills/add-opencode in your project. Claude Code loads it when a task matches its description.
Run `npx skills add nanocoai/nanoclaw --skill add-opencode -a codex`. Or copy the skill folder (.claude/skills/add-opencode in nanocoai/nanoclaw) into .agents/skills/add-opencode 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-opencode -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-opencode, .gemini/skills/add-opencode, .github/skills/add-opencode and .opencode/skills/add-opencode in your project.
Going by SKILL.md and its folder, OpenCode Agent Provider for NanoClaw needs TypeScript for the scripts in its folder and the command-line tools its instructions call (pnpm, bun and opencode). Our summary lists: A NanoClaw installation with pnpm; OpenCode 1.18.25 or newer for the host helper; An account or API key for the chosen model backend.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
OpenCode Agent Provider 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 5k tokens (SKILL.md is roughly 20k 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 OpenCode Agent Provider for NanoClaw: Using Ccproxy Inspector (starbaser/ccproxy, 348 stars), LLM Router (jamesrochabrun/skills, 215 stars), PiDeck Usage Probe Helper (ayuayue/PiDeck, 1k stars) and Using Ccproxy API (starbaser/ccproxy, 348 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,883 GitHub stars. The repository holds 59 skills in this directory. The repository was last updated on October 6, 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.