Add NanoClaw to aimx agents setup#200
Merged
Merged
Conversation
NanoClaw is the eighth supported agent. It is a Claude-Agent-SDK-based container-isolated personal AI agent that is forked per-user from qwibitai/nanoclaw, so the integration target is the fork directory (default ~/nanoclaw, override via $NANOCLAW_HOME) rather than a global $HOME config dir. NanoClaw exposes no `mcp add` CLI and reads MCP servers from <fork>/.mcp.json, so the installer reads-merges-renames that file in place under mcpServers.aimx — preserving any other servers — instead of asking the user to hand-edit JSON5. This is the one supported agent where aimx mutates the agent's own MCP config; every other agent either has a registration CLI or expects a pasted snippet, and that line is documented next to the merge helper. NanoClaw is a long-running daemon listening on messaging channels, so on_receive hook recipes don't fit. The bundled SKILL.md.header documents the scheduled-job pull model instead: NanoClaw polls aimx via MCP on its own cadence and acts on unread mail. Operators who need sub-second-latency reactions can wire a different agent (Claude Code, Codex, Hermes) as the on_receive hook and let NanoClaw consume the resulting state on its next tick. The fork-directory existence precheck runs before write_files so a host without a NanoClaw clone can never end up with a stub ~/nanoclaw/ that a follow-up `git clone … nanoclaw` would conflict with; the error message names the override env var so the user can fix the misconfig in one step.
Surfaces NanoClaw alongside the other seven in the headline paragraph and the agent-install table, with a one-line callout that NanoClaw uses a scheduled-job pull model rather than on_receive hooks (so the hook-recipes pointer doesn't mislead readers).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
aimx agents setupagent. NanoClaw is a Claude-Agent-SDK-based container-isolated personal AI agent forked per-user fromqwibitai/nanoclaw, so the integration target is the fork directory (default~/nanoclaw, override via$NANOCLAW_HOME) instead of a global$HOMEconfig dir.mcpServers.aimxentry into<fork>/.mcp.jsonvia temp-file + atomic rename, preserving any other servers. NanoClaw exposes nomcp addCLI and the file is JSON5-flavoured, so this is the one supported agent where aimx mutates the agent's primary config —--printis a dry-run,--forceoverwrites an existingaimxentry, and the trade-off is documented next to the helper and inbook/agent-integration.md.SKILL.md.header. NanoClaw is a long-running daemon, soon_receivehook recipes don't fit; the recommendation is to add a NanoClaw scheduled job that pollsemail_liston a cadence, with a one-line escape hatch for operators who need sub-second latency (wire a different agent as the hook).write_filesso a host without a NanoClaw clone can never end up with a stub~/nanoclaw/that a follow-upgit clonewould conflict with; error names$NANOCLAW_HOMEso users can fix the misconfig.aimx agents remove nanoclawdeletes the skill bundle and prints a hint pointing at<fork>/.mcp.json. The.mcp.jsonitself is preserved, matching the behaviour for every other agent.Test plan
cargo build(clean)cargo test --bin aimx— 1052 unit tests pass (118agents_setup::tests::*, 14 of them new for NanoClaw)cargo test --test integration agents_— 4 integration tests pass, including the newagents_setup_list_includes_nanoclawcargo clippy -- -D warnings(clean)cargo fmt -- --check(clean)cd services/verifier && cargo clippy -- -D warnings(clean)CLAUDE.local.mdreturns zero hitsNANOCLAW_HOME=/tmp/fake-nanoclaw:--printprints proposed JSON without writing; real install lays outskills/aimx/{SKILL.md,references/*.md}and creates.mcp.json; merge into a pre-seeded.mcp.jsonpreserves asomeone-elseserver and an unrelated top-level field; fork-missing case fails fast with a message naming$NANOCLAW_HOME;aimx agents remove nanoclawdeletes the skill dir and prints the cleanup hint