← Academy
Set up once.
Set each tool up once and every exercise can assume it. Everything runs on your own accounts: your Claude subscription covers Claude Code, and exercises that call a model directly run on any model through your own OpenRouter key, or on a free local model.
21 guides · about 355 minutes in total · free, no sign-in needed
Essentials
Most exercises need these.
- Install Claude CodeClaude Code installed, signed in with your own Claude subscription, and answering scripted
claude -pcalls with JSON output. 15 minUsed by 164 exercises - Node.js, pnpm and TypeScriptA current Node.js LTS, pnpm and a minimal TypeScript project that runs
.tsfiles directly withnode, with tests and a type check. 15 minUsed by 38 exercises - Python with uvuv installed, Python 3.12 or newer managed by uv, and a project you can add packages to, run and test with pytest. 10 minUsed by 129 exercises
Models: OpenRouter or local
For exercises whose code calls a model directly: any model through OpenRouter, or a free local model.
- Get an OpenRouter keyA personal OpenRouter account with credits, a key with a credit limit kept in a project
.env, and exercise code that runs on any model through the Anthropic or OpenAI SDK. 15 minUsed by 40 exercises - Local models with OllamaOllama running open-weight chat and embedding models on your own machine, reachable through Anthropic- and OpenAI-compatible APIs and usable from Claude Code. 25 minUsed by 35 exercises
- OpenRouter or a local model?Choose between any model through your own OpenRouter key and a free local Ollama model, and configure exercise code so the same file runs on either. 10 minUsed by 8 exercises
- Jev, or its local stand-inA Python project that can ask System One questions three ways, offline, on your Claude subscription, or on the real Jev API once you have early access. 15 minUsed by 12 exercises
- Serve a model with vLLMAn open-weight model served by vLLM's OpenAI-compatible server, on a Modal GPU or your own NVIDIA GPU, and called from the OpenAI SDK with the same three variables as every other model setup. 30 minUsed by 2 exercises
- Run Hugging Face models on CPUA uv project with PyTorch and transformers that installs CPU-only PyTorch on Linux and Windows, uses the Apple GPU on a Mac, keeps the Hugging Face cache under control, and generates text from a small open model. 15 minUsed by 8 exercises
Tools and services
Needed by specific courses.
- MCP servers in Claude CodeAdd, test, list and remove MCP servers in Claude Code, choose the right scope, and register a stdio server you wrote with the TypeScript SDK. 15 minUsed by 3 exercises
- Durable agents with eveAn eve project running locally in its terminal UI, connected to any model through your own OpenRouter key, or to a free local Ollama model. 20 minUsed by 17 exercises
- Docker and Docker ComposeDocker running on your machine,
docker composestarting a service from a compose file, and the commands to inspect, stop and clean up containers. 20 minUsed by 7 exercises - Postgres with pgvectorA local Postgres with the pgvector extension running in Docker Compose, reachable from psql, TypeScript and Python, with a nearest-neighbour query that proves it works. 15 minUsed by 3 exercises
- RedisA local Redis running in Docker Compose with its data kept on a volume, answering
redis-cli ping, and reachable from TypeScript and Python. 10 min - Qdrant vector databaseQdrant running locally in Docker with its dashboard open, and a collection created, filled and searched from TypeScript and Python. 15 min
- Run Temporal locallyA local Temporal dev server with its Web UI, plus a hello-world worker and workflow in TypeScript or Python that you can watch run. 20 minUsed by 2 exercises
- Run GPU code on ModalA personal Modal account with a hard monthly budget, the Modal CLI authenticated, and a Python function that runs on a cloud GPU and shuts down when you're done. 15 minUsed by 3 exercises
- Trace LLM calls with OpenTelemetry and LangfuseA Langfuse project (free cloud tier or self-hosted with Docker Compose) receiving OpenTelemetry traces from Python or TypeScript, with one model call visible in the UI with its prompt, output, tokens and latency. 20 minUsed by 3 exercises
- Deploy to VercelA personal Vercel account on the free Hobby plan, the Vercel CLI logged in and linked to a project, secrets stored as Sensitive variables, and one preview deployment you can open. 15 minUsed by 4 exercises
- Run evals in GitHub ActionsA workflow in your own GitHub repository that runs your eval or test suite on pull requests and on demand, reads an OpenRouter key from a repository secret, uploads the results as an artifact and stays inside the free minutes. 20 minUsed by 4 exercises
- OCR and PDF parsing: Tesseract and DoclingTesseract installed with its English language data and callable from Python through pytesseract, and Docling converting a PDF to Markdown in a uv project, each checked with a one-command smoke test. 20 minUsed by 2 exercises