Seventeen chapters turn one model loop into a harness
The first lesson is the useful part stripped bare: send messages to a model, inspect the response for tool calls, execute a handler, append the result, and repeat until the model returns text. The next 16 chapters keep that loop recognizable while adding tool dispatch, permissions, hooks, planning, subagents, skills, context compaction, memory, task dependencies, background commands, schedules, teams, MCP, an integrated harness, saved workflows, and an independent goal evaluator.
This progression makes architecture visible. A reader can compare the chapter before and after task persistence or permission checks instead of discovering those ideas inside a large agent framework. The current material lives in root folders s01 through s17, each with runnable Python and lesson documentation. A legacy 12-lesson track remains under docs/ and agents/; the README warns that old and current chapter numbers do not always correspond.
The 411-file course passed every measured step
We cloned commit f9e8b28 into a fresh Python 3.12 Debian container with 3 CPUs and 8 GB of RAM. The repository had 411 files, roughly 34,367 source lines, and occupied 4.3 MB. Installing 48 packages took 24 seconds and used 56 MB. The build passed in 9 seconds. Two CI workflow files and a tests directory were present, while the scan found no Dockerfile.
Individual lessons repeat enough surrounding code to remain self-contained, although issue 349 argues that later chapters make new material harder to spot because earlier code is copied forward. That repetition is a genuine teaching tradeoff.
What happened when we ran it
Our available tests passed in 31 seconds after the 24-second install and 9-second build. The supplied measurement does not state a test count, so there is no honest number to add beyond the successful result. Pip-audit found 0 known vulnerabilities among the installed Python dependencies. The sandbox had no secrets, which means it checked repository mechanics rather than making paid model calls or judging agent task quality.
That boundary matters. A passing unit suite cannot show whether a model picks the right tool, avoids a dangerous shell command, preserves the right context during compaction, or closes a long goal correctly. Those behaviors vary with the model, prompt, task, filesystem, and permission policy. Use the chapters to understand mechanisms, then write scenario tests around the actual actions your harness may take.
Bash makes the loop clear and raises the safety stakes
The course's opening idea is that one loop plus Bash can form a coding agent. Bash gives a model a wide action space: read a repository, run tests, edit through commands, inspect Git, and invoke other tools. It can also delete data, expose credentials, install software, or contact external systems if the surrounding process allows it. Chapter 3 introduces permission rules early, which is the correct place for that subject.
A production harness needs enforcement below the prompt. Limit filesystem roots, separate reads from writes, require approval for destructive or external actions, cap process time and output, scrub secrets, and record what ran. The examples are concise enough that some of these policies remain exercises for the reader. That is acceptable in a 0-to-1 course, but copying the Bash handler into a service without those boundaries would copy capability faster than control.
Memory and team examples expose real coordination bugs
Later lessons cover selection, extraction, and consolidation of memory, followed by file-backed tasks, subagents, background commands, scheduled work, and agent teams. These are the mechanisms that make a long task resumable, but they also introduce ordering and wake-up problems. Issue 517 reports that truncation in recent_user_text can drop the newest short user turn after older messages fill the character limit.
Issue 455 describes a teammate staying idle after receiving a plan-approval response because that protocol message does not wake its loop. Issue 474 raises a similar timing concern: inbox consumption depends too much on the model choosing to check or on the main loop ending. These reports are useful teaching material themselves. Coordination is not solved by adding a mailbox; the runtime must define when messages are delivered, persisted, acknowledged, and allowed to resume work.
MCP joins external tools to the same permission problem
Chapter 14 connects MCP tools into the harness's existing tool pool. This is the right mental model: MCP changes discovery and transport, while the harness still owns permission and result handling. A remote server can expose useful data or actions, but its tool schema does not make every call safe. The client should decide which servers are trusted, which tools are visible, and which arguments need approval.
The integrated chapter then reconnects course mechanisms into one runtime. Chapter 16 moves fixed orchestration into saved workflows with resumable journals, and chapter 17 gives an independent evaluator authority over whether a goal may stop. Those examples help distinguish flexible model decisions from deterministic runtime duties. They do not prove the evaluator is correct; they show where a stop policy can live and how control returns when a goal fails or exceeds limits.
English leads, with complete Chinese and Japanese tracks
The default README and each current chapter are available in English, with Chinese and Japanese translations linked alongside them. That gives the project a wider teaching audience without forcing English readers through a translated index. GitHub showed 75,391 stars, 27 combined issues and pull requests, and a last push on August 26, 2026. The repository had no GitHub release object, so health should be judged from the current push and issue activity rather than a missing tag.
Learn Claude Code is best read as an annotated construction exercise. Our 64 seconds across install, build, and tests makes starting cheap, and the current 17-part path reaches much farther than a toy agent loop. The result is still intentionally educational. Keep the small examples for understanding, then borrow production controls from the platform where the finished harness will actually run.

