# Self Customize

Customize your own agent, add capabilities, install packages, add MCP servers, edit...

- Repository: https://github.com/nanocoai/nanoclaw (31069 stars)
- Category: AI and agents
- License: MIT
- Last updated: 2026-10-30
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add nanocoai/nanoclaw --skill self-customize -g -a claude-code -y`
Codex: `npx skills add nanocoai/nanoclaw --skill self-customize -g -a codex -y`
Cursor: `npx skills add nanocoai/nanoclaw --skill self-customize -g -a cursor -y`
Gemini CLI: `npx skills add nanocoai/nanoclaw --skill self-customize -g -a gemini-cli -y`

## Description

Customize your own agent, add capabilities, install packages, add MCP servers, edit code or CLAUDE.md. Use when the user asks you to add a feature, install a tool, or modify how you work. For non-trivial code changes, delegate to a builder agent via create_agent.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Self-Customization

You can modify your own environment. Different kinds of changes have different workflows.

## Decision Tree

**What needs to change?**

- **Memory or standing instructions** → Edit `memory/` or `instructions.prepend.md` directly, no approval needed. The workspace is persisted on the host. The composed provider document (`CLAUDE.md` or `AGENTS.md`) is regenerated every spawn and must not be edited.
- **System package (apt) or global npm package** → `install_packages`. Requires admin approval. On approval, image rebuild + container restart happen automatically.
- **MCP server** → `add_mcp_server`. Requires admin approval. On approval, container restarts with the new server wired up (no rebuild, bun runs TS directly).
- **Your source code or Dockerfile** → Delegate to a builder agent via `create_agent` (see below).
- **A new specialist capability** → `create_agent` to spin up a dedicated agent for it.

## Workflow: Code Changes via Builder Agent

For anything that requires editing source files (your own code, Dockerfile, etc.), **do not edit directly**, delegate to a builder agent. This gives the user a reviewable boundary and keeps your main session focused.

1. Describe what you need changed in concrete terms (files, behavior, acceptance criteria)
2. Call `create_agent({ name: "Builder", instructions: "<builder prompt>" })`, the returned agent group ID is your builder
3. Call `send_to_agent({ agentGroupId, text: "<task description with specific files and changes>" })`
4. The builder works in its own container, makes the changes, and reports back
5. You review the builder's summary and confirm with the user. Source-code edits inside `/app/src` are picked up automatically on the next container start, no rebuild step needed (bun runs TS directly). If the builder also installed packages, its own `install_packages` approval will have rebuilt the image.

### Builder Agent Instructions (use as CLAUDE.md when creating)

The rest: https://github.com/nanocoai/nanoclaw/blob/HEAD/container/skills/self-customize/SKILL.md
