FAQ
zorro-agent is a Claude Code plugin with 78 hand-picked skills for development work, indexed on Flowy. Install it with the command on its page. It includes apple-notes, apple-reminders, findmy. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
$ npx -y skills add braxtonROSE4/zorro-agent --agent claude-code
Repo: braxtonROSE4/zorro-agent
A self-evolving CLI agent. Most agents treat memory as an afterthought — a flat text file that grows until it's useless. Zorro was designed around a different idea: that the real value of an agent isn't what it can do on day one, but how much stronger it gets by day one hundred.
The name comes from the fictional swordsman who carved a Z after every encounter — not out of vanity, but as proof that the experience had been absorbed. This agent does something similar. Every session leaves a mark: a detected learning signal, a lesson filed into the right domain, a workflow crystallized into a reusable skill. Over time, these marks compound. The agent that helped you debug authentication last month now knows your codebase's auth patterns and applies them without being told.
Use any model — OpenRouter (200+ models), OpenAI, Anthropic, Gemini, Kimi, MiniMax, Ollama, or your own endpoint. Talk to it from the terminal, Telegram, Discord, Teams, iMessage, or 14 other platforms. Switch models with zorro model — no code changes, no lock-in.
The framework is built around a single loop:
experience → signal detection → domain knowledge → executable skills → stronger agent
↑ |
└────────────────────────────────────────────────────────────────────────┘
This isn't a metaphor — it's the actual data flow. Here's each stage:
On every turn, a lightweight regex engine scans both the user's message and the agent's response for 8 types of learning signals — corrections, insights, errors, cognitive shifts, method discoveries, anti-patterns, profile updates, and procedural candidates. Bilingual (EN/ZH). Zero API cost.
These signals accumulate in session state with confidence levels (high / medium). The agent doesn't stop to think about whether it learned something — the detection is automatic and invisible.
User: "Don't mock the database in tests — we got burned by that last quarter"
→ [correction][high] detected, queued for review
Other frameworks run a background review every N turns regardless — same cost whether the conversation had ten corrections or zero. Zorro uses three trigger paths:
| Condition | What happens |
|---|---|
| Base interval (every 10 turns) | Standard review, same as others |
| 2+ high-confidence signals accumulated | Early review — don't wait for the timer |
| User frustration detected | Immediate review — something went wrong, learn from it now |
| Nothing detected in 10 turns | Skip entirely — save the API call |
When review fires, it's not blind. The background agent receives the pre-filtered signals with types and confidence levels, so it knows exactly what to look for in the conversation.
Lessons don't go into a single file. They're partitioned by domain, each with structured entries:
~/.zorro/knowledge/
├── _general/lessons.md # Cross-domain (G1, G2, ...)
├── product/lessons.md # Product design (P1, P2, ...)
├── engineering/lessons.md # Engineering (E1, E2, ...)
└── growth/lessons.md # Growth/marketing (H1, H2, ...)
Format: code | lesson | source | scenario | keywords. When the agent encounters a new task, it searches the relevant domain first, then falls back to general knowledge. This is why a product question doesn't surface engineering lessons — the knowledge is organized the way an expert's mind is organized.
When the review agent identifies a reusable workflow — not just a fact, but a procedure — it proposes saving it as a Skill. The agent asks the user first:
"I noticed that when debugging auth flows, you always check token refresh before looking at CORS. Want me to save this as a reusable skill?"
If confirmed, the workflow becomes a YAML+Markdown skill file that loads automatically on future matching tasks. This is the moment experience becomes capability.
Alongside the evolution loop, there's a practical optimization: when any tool returns more than 8K characters, a cheap auxiliary model (~$0.001 per call) compresses the output to only what's relevant to the current task. A 50K-char grep result becomes 5K chars of pure signal. Two quality gates reject bad compressions and fall back to traditional head/tail truncation. The main model never sees noise it doesn't need.
At the end of every conversation, the agent writes a structured summary — what was asked, what signals were detected, what's unresolved. This isn't stored in the model's context (which would be expensive). It's a Markdown file in ~/.zorro/sessions/ that future sessions can search via FTS5 when context is needed.
Session 1: Blank slate — no memory, no skills, no knowledge
Session 10: Preferences captured. Knows your tools, your style, your stack.
Session 50: Domain knowledge grows. Product, engineering, growth — each with
its own lesson library, searchable by keyword.
Session 100: Skills crystallize. Recurring workflows run without instruction.
The agent handles your patterns because it learned them from you.
The agent on session 100 is not the same agent as session 1. That's the point.
Like the fictional Zorro — an unremarkable nobleman by day, precise and dangerous by night — the interface is deceptively simple. Users see a CLI prompt or a chat message. Underneath:
~/.zorro/SOUL.md to reshape the agent entirely.The user just talks. The evolution happens behind the mask.
| Capability | OpenClaw | Hermes Agent | Zorro Agent |
|---|---|---|---|
| Memory | Markdown + vector search | 2.2K flat text | Working memory + domain-partitioned knowledge |
| Learning | None (static skills) | Blind review / 10 turns | Signal-driven (8 types, zero cost) |
| Skills | Manual only | Autonomous | Autonomous + user confirmation |
| Tool output | Raw truncation | Head/tail cut | Distill (auxiliary LLM extraction) |
| Sessions | No boundaries | No boundaries | Structured summaries |
| Identity | SOUL.md | One paragraph | SOUL.md (principles + protocols + voice) |
| Sentiment | Not detected | Not detected | Rating + frustration → triggers review |
| Review cost | N/A | 1 call / 10 turns always | 0 when quiet, 1 when warranted |
| Platforms | 20+ | 17 | 19 |
| Models | Limited | 200+ | 200+ |
git clone https://github.com/braxtonROSE4/zorro-agent.git
cd zorro-agent
pip install -e ".[all]"
zorro setup # Provider + model + API key
zorro # Start
~/.zorro/
├── SOUL.md # Agent identity
├── config.yaml
├── .env
├── state.db # SQLite + FTS5
├── memories/
│ ├── MEMORY.md # Working memory (~2200 chars)
│ └── USER.md # User profile (~1375 chars)
├── knowledge/ # Domain-partitioned lessons
│ ├── _general/lessons.md
│ ├── product/lessons.md
│ ├── engineering/lessons.md
│ └── .../lessons.md
├── skills/
│ └── <name>/SKILL.md
├── sessions/ # Summaries
└── logs/
| Guide | Description |
|---|---|
| docs/imessage.md | iMessage via BlueBubbles (macOS required) |
| docs/teams.md | Microsoft Teams via Azure Bot Framework |
MIT
.dockerignore
.env.example
.envrc
.gitattributes
.github/
ISSUE_TEMPLATE/
bug_report.yml
config.yml
feature_request.yml
setup_help.yml
PULL_REQUEST_TEMPLATE.md
workflows/
deploy-site.yml
docker-publish.yml
docs-site-checks.yml
nix.yml
skills-index.yml
supply-chain-audit.yml
tests.yml
.gitignore
.gitmodules
.plans/
openai-api-server.md
streaming-support.md
acp_adapter/
__init__.py
__main__.py
auth.py
entry.py
events.py
permissions.py
server.py
session.py
tools.py
acp_registry/
agent.json
icon.svg
agent/
__init__.py
anthropic_adapter.py
auxiliary_client.py
context_compressor.py
context_engine.py
context_references.py
copilot_acp_client.py
credential_pool.py
display.py
distill.py
error_classifier.py
insights.py
knowledge_store.py
manual_compression_feedback.py
memory_manager.py
memory_provider.py
model_metadata.py
models_dev.py
prompt_builder.py
prompt_caching.py
rate_limit_tracker.py
redact.py
retry_utils.py
session_lifecycle.py
session_state.py
signal_detector.py
signal_patterns/
__init__.py
en.py
zh.py
skill_commands.py
skill_utils.py
smart_model_routing.py
subdirectory_hints.py
title_generator.py
trajectory.py
usage_pricing.py
assets/
banner.png
banner.svg
cli-config.yaml.example
cli.py
cron/
__init__.py
jobs.py
scheduler.py
Dockerfile
docs/
acp-setup.md
honcho-integration-spec.html
honcho-integration-spec.md
imessage.md
migration/
openclaw.md
plans/
2026-03-16-pricing-accuracy-architecture-design.md
skins/
example-skin.yaml
specs/
container-cli-review-fixes.md
teams.md
environments/
__init__.py
agent_loop.py
agentic_opd_env.py
patches.py
README.md
terminal_test_env/
__init__.py
default.yaml
terminal_test_env.py
tool_call_parsers/
__init__.py
deepseek_v3_1_parser.py
deepseek_v3_parser.py
glm45_parser.py
glm47_parser.py
kimi_k2_parser.py
llama_parser.py
longcat_parser.py
mistral_parser.py
qwen_parser.py
qwen3_coder_parser.py
zorro_parser.py
tool_context.py
web_research_env.py
gateway/
__init__.py
builtin_hooks/
__init__.py
boot_md.py
channel_directory.py
config.py
delivery.py
display_config.py
hooks.py
mirror.py
pairing.py
platforms/
__init__.py
ADDING_A_PLATFORM.md
api_server.py
base.py
bluebubbles.py
dingtalk.py
discord.py
email.py
feishu.py
helpers.py
homeassistant.py
matrix.py
mattermost.py
signal.py
slack.py
sms.py
teams.py
telegram_network.py
telegram.py
webhook.py
wecom_callback.py
wecom_crypto.py
wecom.py
weixin.py
whatsapp.py
restart.py
run.py
session_context.py
session.py
status.py
sticker_cache.py
stream_consumer.py
LICENSE
mcp_serve.py
model_tools.py
optional-skills/
autonomous-ai-agents/
blackbox/
SKILL.md
DESCRIPTION.md
honcho/
SKILL.md
blockchain/
base/
scripts/
base_client.py
SKILL.md
solana/
scripts/
solana_client.py
SKILL.md
communication/
DESCRIPTION.md
one-three-one-rule/
SKILL.md
creative/
blender-mcp/
SKILL.md
meme-generation/
EXAMPLES.md
scripts/
.gitignore
generate_meme.py
templates.json
SKILL.md
DESCRIPTION.md
devops/
cli/
references/
app-discovery.md
authentication.md
cli-reference.md
running-apps.md
SKILL.md
docker-management/
SKILL.md
email/
agentmail/
SKILL.md
health/
DESCRIPTION.md
neuroskill-bci/
references/
api.md
metrics.md
protocols.md
SKILL.md
mcp/
DESCRIPTION.md
fastmcp/
references/
fastmcp-cli.md
scripts/
scaffold_fastmcp.py
SKILL.md
templates/
api_wrapper.py
database_server.py
file_processor.py
migration/
DESCRIPTION.md
openclaw-migration/
scripts/
openclaw_to_hermes.py
SKILL.md
mlops/
accelerate/
references/
custom-plugins.md
megatron-integration.md
performance.md
SKILL.md
chroma/
references/
integration.md
SKILL.md
faiss/
references/
index_types.md
SKILL.md
flash-attention/
references/
benchmarks.md
transformers-integration.md
SKILL.md
hermes-atropos-environments/
references/
agentresult-fields.md
atropos-base-env.md
usage-patterns.md
SKILL.md
huggingface-tokenizers/
references/
algorithms.md
integration.md
pipeline.md
training.md
SKILL.md
instructor/
references/
examples.md
providers.md
validation.md
SKILL.md
lambda-labs/
references/
advanced-usage.md
troubleshooting.md
SKILL.md
llava/
references/
training.md
SKILL.md
nemo-curator/
references/
deduplication.md
filtering.md
SKILL.md
pinecone/
references/
deployment.md
SKILL.md
pytorch-lightning/
references/
callbacks.md
distributed.md
hyperparameter-tuning.md
SKILL.md
qdrant/
references/
advanced-usage.md
troubleshooting.md
SKILL.md
saelens/
references/
api.md
README.md
tutorials.md
SKILL.md
simpo/
references/
datasets.md
hyperparameters.md
loss-functions.md
SKILL.md
slime/
references/
api-reference.md
troubleshooting.md
SKILL.md
tensorrt-llm/
references/
multi-gpu.md
optimization.md
serving.md
SKILL.md
torchtitan/
references/
checkpoint.md
custom-models.md
float8.md
fsdp.md
SKILL.md
productivity/
canvas/
scripts/
canvas_api.py
SKILL.md
memento-flashcards/
scripts/
memento_cards.py
youtube_quiz.py
SKILL.md
siyuan/
SKILL.md
telephony/
scripts/
telephony.py
SKILL.md
research/
bioinformatics/
SKILL.md
domain-intel/
scripts/
domain_intel.py
SKILL.md
duckduckgo-search/
scripts/
duckduckgo.sh
SKILL.md
gitnexus-explorer/
scripts/
proxy.mjs
SKILL.md
parallel-cli/
SKILL.md
qmd/
SKILL.md
scrapling/
SKILL.md
security/
1password/
references/
cli-examples.md
get-started.md
SKILL.md
DESCRIPTION.md
oss-forensics/
references/
evidence-types.md
github-archive-guide.md
investigation-templates.md
recovery-techniques.md
scripts/
evidence-store.py
SKILL.md
templates/
forensic-report.md
malicious-package-report.md
sherlock/
SKILL.md
plugins/
__init__.py
... 774 more© 2026 Flowy · Free and open source
Built for Claude Code · Not affiliated with Anthropic