Nanocode: Training Claude-like coding agents with JAX on TPUs

Nanocode is a library that demonstrates how to train your own Claude Code model end-to-end using Constitutional AI, following Anthropic's approach. Written entirely in JAX and optimized for TPUs, it adapts infrastructure from Karpathy's nanochat project.
Training Setup and Costs
The nanocode-d24 model (1.3B parameters) can be reproduced in approximately 9 hours on a TPU v6e-8 at a cost of $200. The smaller nanocode-d20 model (477M parameters) trains in about 1.5 hours for $34. The project recommends using Google's TRC program for free access to pre-emptible TPUs for a month, or Google Cloud's $300 credits for new accounts.
Technical Implementation
The training process includes:
- Writing a SOUL.md file to define model alignment
- Defining an agentic interface for world interaction
- Generating synthetic data
- Using preference optimization to align the model with SOUL
Tokenization and Pre-training Differences
While the pre-training and tokenizer training process is similar to nanochat, nanocode includes additional coding data from The Stack-V2 at a 1:5 ratio in both pre-training and tokenizer mixtures. This results in stronger coding performance but reduces general text tokenization efficiency.
Tokenizer comparison shows nanocode achieves -50.9% better tokenization for code compared to nanochat, while nanochat performs better on Korean text (+7.9% for nanocode on news, -27.6% on Korean).
Commands and Setup
export NANOCODE_BASE_DIR="$HOME/.cache/nanocode"
export MODEL_TAG=d24
python -m data.pretrain -d fineweb-edu -n 300
python -m data.pretrain -d the-stack-v2-dedup -n 60
python -m scripts.tok_train --max-chars=2000000000
python -m scripts.tok_eval
The models are trained with a param:data ratio of 8, following nanochat's scaling law analysis. While optimized for TPUs, nanocode should also work on NVIDIA GPUs out of the box.
📖 Read the full source: HN AI Agents
👀 See Also

CC-Ledger: Track Claude Code Costs Per Session and Per PR with Local SQLite
CC-Ledger is a Rust binary that hooks into Claude Code, logging each turn to local SQLite. Catch runaway sessions live and see per-PR cost without an API key. Includes macOS menu bar, web dashboard, and CLI views.

Open source PR review agent PrixAI detects all 10/10 planted bugs at 6x lower cost than CodeRabbit
A Reddit user built PrixAI, an open source PR review agent that uses local/cheap inference models to match CodeRabbit's features at 6x less cost, detecting all 10 intentionally planted issues in a test PR.

Automated Claude Code Pipeline Cuts Token Usage from 78k to 15k Per Feature
An open-source pipeline for Claude Code automates 12 phases including pre-check analysis of existing code, reducing token usage from ~78k to ~15k per feature. It offers three profiles (yolo, standard, paranoid) and replaces confidence scores with grep-based validation.

MuninnDB adds Dream Engine for LLM memory consolidation with vault isolation
MuninnDB, a Go-based cognitive memory database, now includes a Dream Engine that performs LLM-driven memory consolidation between sessions using deduplication thresholds and semantic review. The system features vault trust tiers for data isolation and runs locally with Ollama.