Build a Coding Agent
Learn the core foundations of AI coding assistants from scratch: model basics, API key security, why use OpenRouter as a universal model router, tool schemas, and the autonomous ReAct loop.
Python · TypeScript
Blobs, trees and commits. Discover that Git is a content-addressed object store, and little else.
Build it in your language
The tester treats your program as a black box: any language works. These are just the most convenient ones for this project.
Git has a reputation for being complicated, but its data model fits on a whiteboard: four object types, a hash and a graph. Everything confusing lives in the interface, not underneath.
In this challenge you implement what's underneath. You'll create objects, write them compressed into .git/objects, build trees from the working directory, make commits and walk the history. Best of all: real Git will be able to read your repository.
12 stages across 4 phases. Every stage comes with its guide and its tests: you move on when they pass.
init, writing zlib-compressed blobs and reading them back by hash.
Represent directories, write the working tree and read it back.
Commits with parents, refs, HEAD, and a log that walks the graph.
Checking out a commit and rebuilding the working directory.
Learn the core foundations of AI coding assistants from scratch: model basics, API key security, why use OpenRouter as a universal model router, tool schemas, and the autonomous ReAct loop.
Python · TypeScript
Read stdin, filter by pattern and honour exit codes. The gateway to Unix tooling.
Go · Python · Zig
Bencode, trackers and the peer-to-peer protocol. Download a real file by talking to real peers.
Go · Python · Java