Skip to content
Skillpedia
Misc31k · #6347

self-customize

Lets your agent adapt and add new features. It's useful when you want it to learn something new or change how it works.

What it does

This tool lets you modify yourself, adding new abilities, installing programs, or changing your code. It's like giving yourself superpowers or fixing something that isn't working quite right.

When to use it

  • ✓When you ask me to add a new feature I don't have yet.
  • ✓When you want me to install a new program to help me.
  • ✓When you want to change how I work internally.

Example of what to ask your AI

“Can you add a tool to summarize long texts?”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

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

Ready-to-paste message

Use this skill to help me: https://github.com/nanocoai/nanoclaw/blob/main/container/skills/self-customize/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

I use a special process for making changes. For simple things, I do them directly. For more complex code changes or adding system-wide programs, I ask a specialized 'builder agent' to make the changes, which we can then review before applying.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add nanocoai/nanoclaw --skill self-customize

Or download just the file:

curl -L https://raw.githubusercontent.com/nanocoai/nanoclaw/main/container/skills/self-customize/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

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)

You are a builder agent. Your job is to make precise, minimal code changes to NanoClaw source files when the main agent requests it.

## Rules

- **Minimal scope.** Only change what was requested. Do not refactor surrounding code, "improve" unrelated files, or add features not asked for.
- **Diff size limits.** Reject any change that exceeds 200 new lines or 150 modified lines in a single task. If the change is larger, push back and ask for it to be split into smaller tasks.
- **Read before writing.** Always read the target file fully before editing. Understand the existing patterns.
- **Test if possible.** If there are relevant tests, run them after your change.
- **Report back.** When done, use send_to_agent to tell the requesting agent: (a) what files you changed, (b) a summary of the changes, (c) any follow-up needed (rebuild, tests, migrations).
- **No silent failures.** If you can't complete the task, explain why — don't produce partial work without flagging it.

## Safety

- Never edit files outside the requested scope
- Never commit or push anything
- Never modify secrets, credentials, or .env files
- If a change would break existing tests, stop and report

Diff Size Limits — Why

A 50-line focused change is reviewable. A 500-line sweep is not. Hard limits force the agent to decompose work into reviewable chunks, which:

  • Makes human approval meaningful (you can actually read 150 lines)
  • Catches runaway edits early (if the first task hits the limit, the scope was wrong)
  • Forces clear acceptance criteria per task

The limits are per builder task, not per session. A 500-line feature is fine as 4 sequential builder tasks of ~125 lines each, each with its own scope.

Example: Adding a New MCP Tool to Yourself

User: "Can you add a tool for reading RSS feeds?"

  1. Check mcp.so for an existing RSS MCP server
  2. If one exists → add_mcp_server({ name: "rss", command: "npx", args: ["some-rss-mcp"] }) → admin approves → container restarts with the new server → done
  3. If nothing suitable exists → delegate to a builder agent:
    • create_agent({ name: "RSS Tool Builder", instructions: "<builder prompt from above>" })
    • send_to_agent({ agentGroupId, text: "Add an MCP tool 'read_rss' to container/agent-runner/src/mcp-tools/. It should fetch an RSS URL and return the latest N items. Register it in mcp-tools/index.ts. Target: <200 new lines." })

…

FAQ

What is a 'builder agent'?

It's an AI agent that specializes in making code changes. It receives precise instructions on what to alter and does it in a separate environment so we can review it before it's applied.

Do I need to approve all changes?

Changes that affect the system or install new programs usually need administrator approval. Simple changes to my instructions or memory do not.

What happens if a change is too big?

If a change is too complex, the 'builder agent' will break it down into smaller, more manageable parts. Each part will be simple enough to review and approve.

Details

Original description by the author

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.

repo: nanocoai/nanoclaw

Popularity

GitHub stars
31k
Ranking position
#6347
License
MIT
Updated
10/15/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills