Contro1 CLI
Install and use the contro1 CLI to register AI agents, create approval requests, push AI inventory, retrieve evidence and traces, and test workflows before using the SDK or API.
Framework guides
Route NanoClaw admin approvals, credential use, package installs, MCP server changes and new agents, to Contro1 for a human decision, role routing and audit evidence, resolved through NanoClaw's own approval handler.
Updated Sep 15, 2026
NanoClaw already stops before an agent uses a credential or changes itself. The Contro1 channel makes Contro1 the approver: the right reviewer decides, the decision is bound to the exact action, and every outcome is recorded.
Copy this skill link into your code agent to add NanoClaw and Contro1 to your system.
NanoClaw is a lightweight, open-source personal AI assistant that runs every agent in an isolated container and answers on WhatsApp, Telegram, Slack, Discord and other channels. Raw credentials stay outside the containers: agents reach APIs through the OneCLI gateway, which injects credentials on the host.
Some operations are held for an admin. When an agent needs a credential that requires approval, wants to install packages, add an MCP server or create another agent, NanoClaw does not run it. It sends an approval card to one admin's DM and applies the change only when that admin clicks Approve.
The connector is a NanoClaw channel named contro1. You make its identity, contro1:approvals, the admin of the agent groups you want to govern. NanoClaw then routes their approval cards to it the same way it would to a person on Slack.
When a card arrives, the channel reads the approval row through NanoClaw's admin CLI, opens a Contro1 approval request, and polls for the decision. When a reviewer decides, the channel clicks the matching button back into NanoClaw. NanoClaw's own approval handler applies or declines the change and notifies the agent.
The decision never passes through the agent. The agent can only ask NanoClaw for an operation; the host holds the card, the approval row and the credential vault. The contro1 channel runs in the host process, and the Contro1 Agent Credential is read from the host .env with NanoClaw's own reader, which does not load values into the process environment. NanoClaw builds container environments explicitly, so the credential never reaches a container.
NanoClaw's safeguards stay in force underneath. A card can only be resolved by the approver it was routed to, so a click from anywhere else is ignored. Each approval resolves once. An approved self-modification re-enters NanoClaw's guard and is checked against current state before it applies.
Each Contro1 request carries a sha256 binding over the facts NanoClaw recorded for the approval: the approval id, action, payload, agent group, session and title. Nothing an agent wrote about itself is part of it. Before clicking Approve, the channel re-reads the approval and recomputes the hash.
Register an agent for the NanoClaw host, for example NanoClaw - home server, and create an Agent Credential for it under Settings > Agent credentials. The secret is shown once.
Run these steps in your NanoClaw checkout, or give the skill to the coding agent that maintains it. The contro1 CLI must be installed on the host.
NanoClaw, not the connector, chooses the approver for every card, and the two approval types use different rules. Plan your roles with both in mind.
| Approval | Who NanoClaw routes it to |
|---|---|
| Credential use (OneCLI) | The first reachable of: the agent group's admins, global admins, owners. With contro1:approvals as the group admin, these reach Contro1. |
| Self-modification (install_packages, add_mcp_server, create_agent) | First an admin or owner on the same platform the request came from, then the same order as above. A human owner on the platform the agent was asked on receives the card instead of Contro1. |
Ask an agent to install a package, for example: install the npm package left-pad. A request titled NanoClaw: Install packages appears in the Contro1 queue with the package list as machine-observed facts. Approve it: on the channel's next poll NanoClaw applies the change, rebuilding the agent image where packages require it, and tells the agent. Reject a second one, and the agent is told it was declined.
Every outcome is written as an audit record linked to its Contro1 request, so reviews and incident timelines show what was asked, who decided and what NanoClaw did.
No. It is a channel adapter, the extension point NanoClaw uses for Slack, Telegram and every other messaging platform. Installing it copies two files into src/channels and adds one import line. Removing it is the reverse.
Nothing is approved. The channel only clicks Approve after it has read an explicit approval from Contro1 and re-checked the binding. While Contro1 cannot be reached, approvals stay pending in NanoClaw and expire under NanoClaw's own rules.
No. The credential lives in the host .env, is read without being loaded into the process environment, and is passed only to the contro1 CLI child process. NanoClaw composes each container's environment explicitly, so it is never included.
The channel keeps no state of its own. On startup it lists the open approvals routed to it and resumes them. Contro1 requests use a deterministic id, nanoclaw:<action>:<approval_id>, so resuming never creates a duplicate request.
Not by this connector. NanoClaw handles those with separate flows, not admin approval rows. If such a card reaches the Contro1 approver it is recorded as nanoclaw.approval.not_governed and left for NanoClaw to expire.
NanoClaw v2.3.0 and the contro1 CLI 0.2.0 or later, which adds the runtime commands the channel uses.
Install and use the contro1 CLI to register AI agents, create approval requests, push AI inventory, retrieve evidence and traces, and test workflows before using the SDK or API.
Learn how to create, inspect, and cancel Contro1 requests for approvals, clarifications, and escalations.
Use Contro1 audit records to log actions that agents are authorized to run autonomously, and correlation_id to connect requests and logs into one case timeline.
Give your OpenClaw personal AI assistant a real, unbypassable guardrail: signed human approval for sensitive actions, a durable audit of everything it does autonomously, and one review queue across many assistants.