{"adoption": {"forks": 534, "observed_at": "2026-08-28T04:07:04.126955+00:00", "stars": 2607}, "canonical_url": "https://ross.abutalabs.com/products/claude-code-from-scratch", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Build your own Claude Code from scratch.  🔍 Claude Code 开源了 50 万行代码，读不动？用 ~5000 行 TypeScript / Python 从零复现核心架构，11 章分步教程带你理解 coding agent 精髓", "domain": ["large-language-models", "tutorials", "developer-tools", "education"], "enriched": true, "function": ["agent-framework", "llm-inference", "developer-tools", "cli", "mcp", "prompt-engineering"], "health_score": 93, "homepage": "https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["Windy3f3f3f3f/claude-code-from-scratch"], "name": "Windy3f3f3f3f/claude-code-from-scratch", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2026-07-09T09:34:10+00:00", "repo": "Windy3f3f3f3f/claude-code-from-scratch", "stars": 2607, "tags": ["claude-code", "coding-agent", "build-from-scratch", "step-by-step-tutorial", "agent-loop", "context-compression", "multi-agent", "hands-on", "ai-agents", "nodejs"], "topics": ["ai", "ai-agent", "anthropic", "build-from-scratch", "claude", "claude-code", "coding-agent", "llm", "tutorial", "typescript"], "urls": [], "use_cases": ["understand how claude code works internally", "learn to build a coding agent from scratch", "study agent loop and tool execution patterns", "learn context compression for llm agents", "build a terminal ai coding assistant", "understand mcp integration in agents", "learn multi-agent orchestration patterns"], "what_it_is": "A step-by-step tutorial project that rebuilds the core architecture of Claude Code in about 5000 lines of TypeScript and Python across 13 chapters. It covers the agent loop, tool system, context compression, memory recall, skills, multi-agent orchestration, and MCP integration, with runnable code for every chapter.", "when_to_avoid": ["you need a production-ready coding agent for daily use", "you expect an exact replica of Claude Code's internal implementation", "you need guaranteed compatibility or support from Anthropic"], "when_to_choose": ["you want to understand coding agent architecture without reading hundreds of thousands of lines", "you prefer learning by writing code step by step", "you want runnable examples that work without an API key", "you want both TypeScript and Python reference implementations"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/claude-code-from-scratch", "repo": "Windy3f3f3f3f/claude-code-from-scratch", "role": "main", "score": 59}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.126955+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:20:56.486318+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "976154212e7c14833cc102119b2c1f24f719880cda88d7b2a8f45142bd2bacd1", "fetched_at": "2026-08-28T04:07:04.126955+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Windy3f3f3f3f/claude-code-from-scratch"}, {"content_hash": "1e683a6bac678354c0369f98603e54e939b3b5cf3e2b1c5d32d2fa8e2ccc386d", "fetched_at": "2026-08-29T10:03:49.112514+00:00", "kind": "homepage", "missing": false, "url": "https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.126955+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:20:56.486318+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "976154212e7c14833cc102119b2c1f24f719880cda88d7b2a8f45142bd2bacd1", "fetched_at": "2026-08-28T04:07:04.126955+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Windy3f3f3f3f/claude-code-from-scratch"}, {"content_hash": "1e683a6bac678354c0369f98603e54e939b3b5cf3e2b1c5d32d2fa8e2ccc386d", "fetched_at": "2026-08-29T10:03:49.112514+00:00", "kind": "homepage", "missing": false, "url": "https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:20:56.486318+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "976154212e7c14833cc102119b2c1f24f719880cda88d7b2a8f45142bd2bacd1", "fetched_at": "2026-08-28T04:07:04.126955+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Windy3f3f3f3f/claude-code-from-scratch"}, {"content_hash": "1e683a6bac678354c0369f98603e54e939b3b5cf3e2b1c5d32d2fa8e2ccc386d", "fetched_at": "2026-08-29T10:03:49.112514+00:00", "kind": "homepage", "missing": false, "url": "https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.126955+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.126955+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.126955+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:20:56.486318+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "976154212e7c14833cc102119b2c1f24f719880cda88d7b2a8f45142bd2bacd1", "fetched_at": "2026-08-28T04:07:04.126955+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Windy3f3f3f3f/claude-code-from-scratch"}, {"content_hash": "1e683a6bac678354c0369f98603e54e939b3b5cf3e2b1c5d32d2fa8e2ccc386d", "fetched_at": "2026-08-29T10:03:49.112514+00:00", "kind": "homepage", "missing": false, "url": "https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.126955+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.126955+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:20:56.486318+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "976154212e7c14833cc102119b2c1f24f719880cda88d7b2a8f45142bd2bacd1", "fetched_at": "2026-08-28T04:07:04.126955+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Windy3f3f3f3f/claude-code-from-scratch"}, {"content_hash": "1e683a6bac678354c0369f98603e54e939b3b5cf3e2b1c5d32d2fa8e2ccc386d", "fetched_at": "2026-08-29T10:03:49.112514+00:00", "kind": "homepage", "missing": false, "url": "https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.126955+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.126955+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.126955+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:20:56.486318+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "976154212e7c14833cc102119b2c1f24f719880cda88d7b2a8f45142bd2bacd1", "fetched_at": "2026-08-28T04:07:04.126955+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Windy3f3f3f3f/claude-code-from-scratch"}, {"content_hash": "1e683a6bac678354c0369f98603e54e939b3b5cf3e2b1c5d32d2fa8e2ccc386d", "fetched_at": "2026-08-29T10:03:49.112514+00:00", "kind": "homepage", "missing": false, "url": "https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.126955+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.126955+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:20:56.486318+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "976154212e7c14833cc102119b2c1f24f719880cda88d7b2a8f45142bd2bacd1", "fetched_at": "2026-08-28T04:07:04.126955+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Windy3f3f3f3f/claude-code-from-scratch"}, {"content_hash": "1e683a6bac678354c0369f98603e54e939b3b5cf3e2b1c5d32d2fa8e2ccc386d", "fetched_at": "2026-08-29T10:03:49.112514+00:00", "kind": "homepage", "missing": false, "url": "https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:20:56.486318+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "976154212e7c14833cc102119b2c1f24f719880cda88d7b2a8f45142bd2bacd1", "fetched_at": "2026-08-28T04:07:04.126955+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Windy3f3f3f3f/claude-code-from-scratch"}, {"content_hash": "1e683a6bac678354c0369f98603e54e939b3b5cf3e2b1c5d32d2fa8e2ccc386d", "fetched_at": "2026-08-29T10:03:49.112514+00:00", "kind": "homepage", "missing": false, "url": "https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:20:56.486318+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "976154212e7c14833cc102119b2c1f24f719880cda88d7b2a8f45142bd2bacd1", "fetched_at": "2026-08-28T04:07:04.126955+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Windy3f3f3f3f/claude-code-from-scratch"}, {"content_hash": "1e683a6bac678354c0369f98603e54e939b3b5cf3e2b1c5d32d2fa8e2ccc386d", "fetched_at": "2026-08-29T10:03:49.112514+00:00", "kind": "homepage", "missing": false, "url": "https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:20:56.486318+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "976154212e7c14833cc102119b2c1f24f719880cda88d7b2a8f45142bd2bacd1", "fetched_at": "2026-08-28T04:07:04.126955+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Windy3f3f3f3f/claude-code-from-scratch"}, {"content_hash": "1e683a6bac678354c0369f98603e54e939b3b5cf3e2b1c5d32d2fa8e2ccc386d", "fetched_at": "2026-08-29T10:03:49.112514+00:00", "kind": "homepage", "missing": false, "url": "https://windy3f3f3f3f.github.io/claude-code-from-scratch/#/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 91, "longevity": 11, "rhythm": 45}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 155, "days_push": 55, "days_rel": 155, "gap_med": null, "n_releases_24m": 1}, "score": 59, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}