learn-claude-code Public

How can we build a true AI agent? Like Claude Code.

MIT license

Open in github.dev Open in a new github.dev tab Open in codespace

Disclaimer: This is an independent educational project by shareAI Lab. It is not affiliated with, endorsed by, or sponsored by Anthropic. “Claude Code” is a trademark of Anthropic.

Learn how modern AI agents work by building one from scratch.

中文文档


A note to readers:

We created this repository out of admiration for Claude Code - what we believe to be the most capable AI coding agent in the world. Initially, we attempted to reverse-engineer its design through behavioral observation and speculation. The analysis we published was riddled with inaccuracies, unfounded guesses, and technical errors. We deeply apologize to the Claude Code team and anyone who was misled by that content.

Over the past six months, through building and iterating on real agent systems, our understanding of “what makes a true AI agent” has been fundamentally reshaped. We’d like to share these insights with you. All previous speculative content has been removed and replaced with original educational material.


Works with Kode CLI, Claude Code, Cursor, and any agent supporting the Agent Skills Spec.

demo

A progressive tutorial that demystifies AI coding agents like Kode, Claude Code, and Cursor Agent.

5 versions, ~1100 lines total, each adding one concept:

VersionLinesWhat it addsCore insight
v0~501 bash toolBash is all you need
v1~2004 core toolsModel as Agent
v2~300Todo trackingExplicit planning
v3~450SubagentsDivide and conquer
v4~550SkillsDomain expertise on-demand

Quick Start

pip install anthropic python-dotenv

# Configure your API
cp .env.example .env
# Edit .env with your API key

# Run any version
python v0_bash_agent.py  # Minimal
python v1_basic_agent.py # Core agent loop
python v2_todo_agent.py  # + Todo planning
python v3_subagent.py    # + Subagents
python v4_skills_agent.py # + Skills

Every coding agent is just this loop:

while True:
    response = model(messages, tools)
    if response.stop_reason != "tool_use":
        return response.text
    results = execute(response.tool_calls)
    messages.append(results)

That’s it. The model calls tools until done. Everything else is refinement.

File Structure

learn-claude-code/
├── v0_bash_agent.py       # ~50 lines: 1 tool, recursive subagents
├── v0_bash_agent_mini.py  # ~16 lines: extreme compression
├── v1_basic_agent.py      # ~200 lines: 4 tools, core loop
├── v2_todo_agent.py       # ~300 lines: + TodoManager
├── v3_subagent.py         # ~450 lines: + Task tool, agent registry
├── v4_skills_agent.py     # ~550 lines: + Skill tool, SkillLoader
├── skills/                # Example skills (for learning)
└── docs/                  # Detailed explanations (EN + ZH)

This repository includes a meta-skill that teaches agents how to build agents:

# Scaffold a new agent project
python skills/agent-builder/scripts/init_agent.py my-agent

# Or with specific complexity level
python skills/agent-builder/scripts/init_agent.py my-agent --level 0  # Minimal
python skills/agent-builder/scripts/init_agent.py my-agent --level 1  # 4 tools (default)

See shareAI-skills for the full collection of production-ready skills.

Key Concepts

One tool. Recursive self-calls for subagents. Proves the core is tiny.

4 tools (bash, read, write, edit). The complete agent in one function.

Todo tool makes plans explicit. Constraints enable complex tasks.

Task tool spawns isolated child agents. Context stays clean.

SKILL.md files provide domain expertise on-demand. Knowledge as a first-class citizen.

Deep Dives

Technical tutorials (docs/):

Original articles (articles/) - Chinese only, social media style:

RepositoryPurpose
KodeFull-featured open source agent CLI (production)
shareAI-skillsProduction-ready skills for AI agents
Agent Skills SpecOfficial specification

Fork and customize for your own agent projects:

Philosophy

The model is 80%. Code is 20%.

Modern agents like Kode and Claude Code work not because of clever engineering, but because the model is trained to be an agent. Our job is to give it tools and stay out of the way.

License

MIT


Model as Agent. That’s the whole secret.

@baicai003

Languages