# Как я написал свой Claude Code на DeepSeek за вечер## Зачем это всёClaude Code — терминальный AI-ассистент к которому захотелось прикрутить Дипсик, но есть маленькая Проблема - он привязан к API Anthropic.Естественно захотелось запилить свой велосипед с черным CMD и командами обеспечивающие ключевые концепции: tool use, permissions, memory, compaction, subagents — но с нуля, на чистом Node.js.Результат — deepseek-agent: ~2000 строк кода, 4 зависимости (openai, fast-glob, dotenv, @modelcontextprotocol/sdk), никаких фреймворков.Казалось бы, не столько сложно запилить своего агента, но есть нюансы.И так поехалиС ходу пилим такую структуру:``index.js — точка входа, REPLsrc/agent.js — agent loopsrc/config.js — .agent/settings.jsonsrc/memory.js — AGENT.md → system promptsrc/permissions.js — alwaysAllow / neverAllow / [y/N]src/hooks.js — PreToolUse / PostToolUse событияsrc/compactor.js — автосжатие контекста через LLMsrc/mcp.js — подключение MCP-серверовsrc/thinking.js — deepseek-reasoner (--think)src/worktree.js — git worktree изоляцияsrc/output.js — JSON-режим для CIsrc/ui.js — ANSI-цветаsrc/tools/ — 9 инструментов`Ключевое решение: каждый инструмент — это объект с фиксированной структурой:`js{ name: "read_file", description: "Read the contents of a text file.", parameters: { /* JSON Schema / }, isReadOnly: true, // false = нужно разрешение async execute(args) { return "результат строкой" }}` Читать далее