ZeroClaw
This quickstart sets ZeroClaw up as a personal agent that runs third-party API calls through Swytchcode.
ZeroClaw grants MCP servers and skills to each agent through bundles, so Swytchcode doesn’t change its config for you: swy init prints exactly what to add.
Step 1: Install the Swytchcode CLI
npm install -g swytchcodecurl -fsSL https://cli.swytchcode.com/install.sh | shirm https://cli.swytchcode.com/install.ps1 | iexStep 2: Create the agent’s project
swy init --operator --editor=zeroclaw --project ~/agent-swyswy loginThis creates the project in sandbox mode, adds the baseline approval policy, and writes the Swytchcode skill to ~/agent-swy/agent-skill/swytchcode-operator/SKILL.md (with always: true, so it stays in the agent’s prompt).
Step 3: Add the skill to a bundle
mkdir -p ~/.zeroclaw/shared/skills/swytchcodecp -R ~/agent-swy/agent-skill/swytchcode-operator ~/.zeroclaw/shared/skills/swytchcode/If you set ZEROCLAW_CONFIG_DIR, use that folder instead of ~/.zeroclaw; init prints the right paths.
Step 4: Add the MCP server
Add the block init printed to ~/.zeroclaw/config.toml. It looks like this:
[[mcp.servers]]name = "swytchcode"command = "swytchcode"args = ["mcp", "serve", "--profile", "operator", "--project", "/home/you/agent-swy"]
[mcp_bundles.swytchcode]servers = ["swytchcode"]
[skill_bundles.swytchcode]This only defines the server and bundles. No agent gets them until you grant them.
Step 5: Grant it to your agent and restrict it
Give your agent the bundles and a risk profile:
[agents.assistant]mcp_bundles = ["swytchcode"] # add to the existing listskill_bundles = ["swytchcode"] # add to the existing listrisk_profile = "personal"Then set up the risk profile. Setting a key replaces ZeroClaw’s whole default list for it, so start from the defaults (zeroclaw config get risk_profiles.<name>.<key>) and add to them:
[risk_profiles.personal]# ZeroClaw's defaults, plus the project and ~/.swytchcodeforbidden_paths = ["/etc", "/root", "/home", "~/.ssh", "~/.aws", "~/.config", "...", "/home/you/agent-swy", "~/.swytchcode"]# no shells or interpreters; the default list has python, python3, node, git, npm and pipallowed_commands = ["ls", "cat", "grep", "head", "tail", "wc", "date"]# ZeroClaw's defaults, plus the 11 Swytchcode tools (init prints them)auto_approve = ["file_read", "memory_recall", "...", "swytchcode__swytchcode_list", "swytchcode__swytchcode_exec", "..."]forbidden_pathsandallowed_commandskeep the agent away frompolicies.jsonand your credentials. A command that runs code (python3 -c,node -e) can read any path, so leave those out.- Without the Swytchcode tools in
auto_approve, ZeroClaw asks “[Y]es / [N]o / [A]lways” in the chat before each one. Swytchcode already holds every call that changes something for your approval.swytchcode__*doesn’t work; list each name. - Leave
workspace_onlyon (the default).
Then restart the agent’s session.
Step 6: Set the approval channel and check
Set the workspace’s approval channel in app.swytchcode.com (Telegram or Slack, in a private chat with the Swytchcode bot). Then:
swy doctor --agent zeroclaw --project ~/agent-swyIt checks the server, the grant, the skill and the risk profile settings above. It asks ZeroClaw for the values in effect, defaults included.
Step 7: Chat with it
From ZeroClaw’s chat, ask for something that needs a third-party app:
Send an invoice for $200 to Acme through Stripe.ZeroClaw fetches and enables the Stripe method, sends you a connect link, and the invoice waits for your approval. See What a conversation looks like.