[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-882":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":14,"forks30d":14,"starsTrendScore":18,"compositeScore":19,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":9,"pushedAt":9,"updatedAt":24,"readmeContent":25,"aiSummary":26,"trendingCount":14,"starSnapshotCount":14,"syncStatus":27,"lastSyncTime":28,"discoverSource":29},882,"easy-agent","ConardLi\u002Feasy-agent","ConardLi","Fully recreating Claude Code from scratch, so anyone can learn how it works.",null,"TypeScript",774,101,15,0,19,34,135,57,10.03,false,"main",true,[],"2026-06-12 02:00:20","# Easy Agent\n\nAn open-source, terminal-native project to fully recreate the Claude Code experience from the ground up.\n\nEasy Agent is a long-horizon engineering project focused on rebuilding a complete local agentic coding system in TypeScript and Node.js. The goal is not to publish isolated demos, but to incrementally construct a production-style coding agent with a clean architecture, strong safety boundaries, multi-turn orchestration, local tool execution, and the extensibility required for a full Claude Code-class developer experience.\n\nThis repository is the open-source implementation track of that effort. Full documentation will be added over time. For now, this README focuses on the project itself: what it aims to become, how it is structured, and where implementation currently stands.\n\n> Chinese version: see [README.zh-CN.md](.\u002FREADME.zh-CN.md)\n\n## Vision\n\nEasy Agent aims to become a serious open-source recreation of a modern local coding agent system.\n\nCore goals:\n\n- Fully recreate the Claude Code-style workflow in an open-source codebase\n- Keep the architecture layered, explicit, and extensible\n- Prioritize real engineering systems over toy examples\n- Evolve incrementally toward a complete local Agent CLI\n- Preserve a stable path toward persistence, compaction, MCP, skills, sandboxing, sub-agents, multi-agent collaboration, and multi-provider support\n\n## Project Status\n\n**Current stage:** foundational implementation in active development\n\nThe project already has meaningful groundwork across the CLI, streaming communication, tool execution, terminal UI, and session orchestration layers. At the same time, many advanced systems in the full recreation plan are still under active development.\n\nEasy Agent should currently be understood as a serious open-source rebuild in progress rather than a finished end-user product.\n\n## Architecture\n\nEasy Agent is being built around a five-layer architecture:\n\n```text\n+---------------------------------------------------+\n| 1. Interaction Layer                              |\n|    Terminal UI, input handling, rendering         |\n+---------------------------------------------------+\n| 2. Orchestration Layer                            |\n|    Multi-turn session flow, usage, commands       |\n+---------------------------------------------------+\n| 3. Core Agentic Loop                              |\n|    Reason -> tool call -> observe -> continue     |\n+---------------------------------------------------+\n| 4. Tooling Layer                                  |\n|    File, shell, search, and local actions         |\n+---------------------------------------------------+\n| 5. Model Communication Layer                      |\n|    Streaming API communication with LLMs          |\n+---------------------------------------------------+\n```\n\nThis separation makes the system easier to evolve:\n\n- the **communication layer** handles model I\u002FO\n- the **tool layer** exposes actionable capabilities\n- the **agentic loop** drives single-turn autonomous execution\n- the **orchestration layer** manages multi-turn state and control flow\n- the **interaction layer** turns the runtime into a usable terminal product\n\n## Repository Layout\n\n```text\neasy-agent\u002F\n├── src\u002F\n│   ├── entrypoint\u002F      # CLI bootstrap\n│   ├── ui\u002F              # React\u002FInk terminal interface\n│   ├── core\u002F            # agentic loop and query orchestration\n│   ├── tools\u002F           # local tools and tool registry\n│   ├── services\u002Fapi\u002F    # model client and streaming wrapper\n│   ├── permissions\u002F     # permission and safety controls\n│   ├── context\u002F         # system prompt and context management\n│   ├── session\u002F         # session persistence and history\n│   ├── types\u002F           # shared domain types\n│   └── utils\u002F           # env, config, logging, helpers\n├── package.json\n├── tsconfig.json\n├── README.md\n└── README.zh-CN.md\n```\n\n## Roadmap and Progress\n\nThe project follows a 30-phase roadmap designed to recreate the full Claude Code-style system progressively.\n\n| Phase | Area | Core Code | Status |\n|---|---|---|---:|\n| 0 | Project scaffold | `planned in step series` | ✅ Done |\n| 1 | LLM communication layer | [`step\u002Fstep1.js`](.\u002Fstep\u002Fstep1.js) | ✅ Done |\n| 2 | React\u002FInk terminal UI | [`step\u002Fstep2.js`](.\u002Fstep\u002Fstep2.js) | ✅ Done |\n| 3 | Tool interface and first tool | [`step\u002Fstep3.js`](.\u002Fstep\u002Fstep3.js) | ✅ Done |\n| 4 | Core agentic loop | [`step\u002Fstep4.js`](.\u002Fstep\u002Fstep4.js) | ✅ Done |\n| 5 | Complete core toolset | [`step\u002Fstep5.js`](.\u002Fstep\u002Fstep5.js) | ✅ Done |\n| 6 | System prompt and context engineering | [`step\u002Fstep6.js`](.\u002Fstep\u002Fstep6.js) | ✅ Done |\n| 7 | Permission control system | [`step\u002Fstep7.js`](.\u002Fstep\u002Fstep7.js) | ✅ Done |\n| 8 | QueryEngine multi-turn orchestration | [`step\u002Fstep8.js`](.\u002Fstep\u002Fstep8.js) | ✅ Done |\n| 9 | Session persistence and restore | [`step\u002Fstep9.js`](.\u002Fstep\u002Fstep9.js) | ✅ Done |\n| 10 | Project memory system | [`step\u002Fstep10.js`](.\u002Fstep\u002Fstep10.js) | ✅ Done |\n| 11 | Context compaction | [`step\u002Fstep11.js`](.\u002Fstep\u002Fstep11.js) | ✅ Done |\n| 12 | Fine-grained token budget management | [`step\u002Fstep12.js`](.\u002Fstep\u002Fstep12.js) | ✅ Done |\n| 13 | Plan mode | [`step\u002Fstep13.js`](.\u002Fstep\u002Fstep13.js) | ✅ Done |\n| 14 | TodoWrite session task tracking | [`step\u002Fstep14.js`](.\u002Fstep\u002Fstep14.js) | ✅ Done |\n| 15 | Task management system (V2) | [`step\u002Fstep15.js`](.\u002Fstep\u002Fstep15.js) | ✅ Done |\n| 16 | MCP protocol support | [`step\u002Fstep16.js`](.\u002Fstep\u002Fstep16.js) | ✅ Done |\n| 17 | Skills system | [`step\u002Fstep17.js`](.\u002Fstep\u002Fstep17.js) | ✅ Done |\n| 18 | Sandbox | [`step\u002Fstep18.js`](.\u002Fstep\u002Fstep18.js) | ✅ Done |\n| 19 | Sub-agents | `planned` | ⏳ Not started |\n| 20 | Custom agent system | `planned` | ⏳ Not started |\n| 21 | Multi-agent collaboration | `planned` | ⏳ Not started |\n| 22 | Hooks lifecycle system | `planned` | ⏳ Not started |\n| 23 | Terminal UI upgrades | `planned in step series` | 🚧 Partial |\n| 24 | Configuration system improvements | `planned in step series` | 🚧 Partial |\n| 25 | File history and rollback | `planned` | ⏳ Not started |\n| 26 | Error handling and resilience | `planned in step series` | 🚧 Partial |\n| 27 | Pipe mode \u002F non-interactive execution | `planned` | ⏳ Not started |\n| 28 | Auto mode | `planned in step series` | 🚧 Partial |\n| 29 | Multi-provider support | `planned in step series` | ⏳ Not started |\n| 30 | Packaging, publishing, and documentation | `planned in step series` | 🚧 Partial |\n\nThe [`easy-agent\u002Fstep\u002F`](.\u002Fstep\u002F) directory contains tutorial-friendly milestone code, so each completed chapter is directly learnable and reproducible from a focused single file.\n\n## What Easy Agent Is — and Is Not\n\n**Easy Agent is:**\n- an open-source recreation project\n- a systems-engineering effort\n- a long-term implementation of a local coding agent\n- a public codebase evolving toward a full Claude Code-class CLI\n\n**Easy Agent is not:**\n- a one-file demo\n- a prompt-only wrapper around an API\n- a finished product today\n- a public mirror of any private course material\n\n## Getting Started\n\n### Requirements\n\n- Node.js\n- npm\n- Anthropic-compatible model access\n\n### Environment Variables\n\nEasy Agent currently supports the following environment variables:\n\n- `ANTHROPIC_MODEL` — default model name\n- `ANTHROPIC_BASE_URL` — custom API base URL\n- `ANTHROPIC_AUTH_TOKEN` — API authentication token\n\n### Install\n\n```bash\nnpm install\n```\n\n### Development\n\n```bash\nnpm run dev\n```\n\n### Build\n\n```bash\nnpm run build\nnpm start\n```\n\n### Example CLI Options\n\n```bash\nagent --help\nagent --model claude-sonnet-4-20250514\nagent --plan\nagent --auto\nagent --dump-system-prompt\n```\n\n## Near-Term Priorities\n\nThe next major milestones are:\n\n1. a fuller plan-mode workflow\n2. task management system\n3. extensibility primitives beyond MCP and skills\n4. configuration improvements beyond the current sandbox and permission model\n5. sub-agent and multi-agent collaboration\n6. multi-provider architecture\n\n## Contribution Policy\n\nEasy Agent is **not accepting external contributions at this stage**.\n\nThe project is still in active reconstruction, and the implementation, structure, and development conventions are expected to change frequently. External contributions will be opened after the project reaches a more stable and maintainable state.\n\nUntil then, you are welcome to follow the project and reference the public roadmap, but pull requests and outside code contributions are intentionally postponed for now.\n\n## License\n\nMIT\n","Easy Agent 是一个旨在从零开始完全重现 Claude Code 体验的开源项目。该项目使用 TypeScript 和 Node.js 构建，目标是创建一个具有清晰架构、强安全边界、多轮对话协调、本地工具执行以及高度可扩展性的本地编码代理系统。其核心功能包括终端用户界面、会话流程管理、核心代理循环、工具层及模型通信层。Easy Agent 适合需要深入理解并开发类似 Claude Code 的本地编码助手的开发者和研究者使用，在教育、研究和个人项目中都有潜在的应用价值。",2,"2026-06-11 02:39:58","CREATED_QUERY"]