DeepSeek-TUI — новый ИИ-агент для кода в терминале. Дешёвая альтернатива Claude Code: настройка через OpenRouter и первый проект
Поставил, подключил через OpenRouter, попросил собрать Pomodoro-таймер с фронтом на React и бэком на ASP.NET Core. За 3 минуты и 10 центов получил рабочее приложение. Делюсь подробностями.
Зачем я это всё затеял
За последний год терминальные ИИ-агенты стали отдельным жанром: Claude Code от Anthropic, Aider, Cursor CLI. Все умеют читать репо, править файлы, гонять команды и собирать целые приложения по одному запросу. Только за это удовольствие нужно платить — Claude Code на подписке стоит $20–200 в месяц, а если работать через API на Sonnet 4.6, токены уходят со скоростью $3 за миллион входа и $15 за миллион выхода.
На этом фоне я наткнулся на DeepSeek-TUI — open-source проект на Rust, который работает с моделями DeepSeek V4 и стоит, скажем мягко, в разы дешевле. Решил поставить, прогнать через OpenRouter (потому что у меня уже был там ключ) и сразу же дать ему реальную задачу. Что вышло — ниже.
Что такое DeepSeek-TUI коротко
Это терминальный агент, написанный на Rust и распространяемый как готовый бинарь через npm, Cargo или Homebrew. Авторы — независимая команда (с самой DeepSeek Inc. они не аффилированы и об этом честно пишут в README).
Ключевые штуки, которые мне приглянулись:
• Three modes — Plan, Agent, YOLO. Plan только читает и предлагает, Agent работает с подтверждениями перед каждой записью на диск, YOLO — для совсем доверенных проектов без вопросов.
• Контекст 1 миллион токенов по умолчанию на обеих моделях.
• Side-git снапшоты. Агент пишет pre/post-turn снимки в свой собственный git-репозиторий, не трогая ваш .git. Команда /restore откатит любую правку.
• Streaming reasoning-блоков — видно, как модель думает в реальном времени.
• Auto-mode сам выбирает модель и уровень reasoning под каждую задачу — но через OpenRouter, как мы увидим, эта штука не работает.
Установка на Windows
Я пишу про Windows, потому что это чаще всего ломается на ровном месте. На macOS/Linux всё в целом проще.
1. Node.js и нормальный терминал
Сначала ставим Node.js LTS с nodejs.org. После установки в новом окне PowerShell проверяем:
2. Установка самого агента
npm-пакет — это просто загрузчик готового Rust-бинаря с GitHub Releases. Если антивирус ругается на свежий .exe (бывает) — добавляйте папку %APPDATA%\npm в исключения.
Подключение через OpenRouter
Я не хотел заводить отдельный аккаунт на DeepSeek — у меня уже был ключ OpenRouter с балансом. Сразу скажу: это путь с граблями. Если вам нужно стабильнее — заводите ключ напрямую на platform.deepseek.com. Через OR работает, но с оговорками.
Создаём ключ
На openrouter.ai → Sign in → раздел Keys → Create Key. Закидываем хотя бы $5 на баланс. Ключ будет вида sk-or-v1-... — копируем, он показывается один раз.
Пишем конфиг
Открываем (создаём) файл конфигурации:
notepad $env:USERPROFILE\.deepseek\config.toml
Я первым делом, как нормальный человек, написал так:
И получил ошибку:
Оказалось, DeepSeek-TUI ждёт настройки на верхнем уровне TOML, а не во вложенной секции.
Рабочий конфиг такой:
Важная деталь — имя модели deepseek/deepseek-v4-flash со слешем. Без слеша, как пишут в документации DeepSeek-TUI, OpenRouter отдаст 404, потому что он ждёт формат provider/model.
Проверка
Первый запуск
Создаём папку под тест и стартуем:
Внимание: через OpenRouter не используйте флаг --model auto. Внутренний routing-вызов агента хардкодит имя модели без префикса deepseek/, и OpenRouter его не понимает. Только фиксированные модели.
Задача — Pomodoro-таймер с фронтом и бэком
Чтобы не давать модели игрушечную задачу типа «сделай hello world», я попросил собрать полноценный mini-стек: SPA на React/Vite и REST API на ASP.NET Core. Это типичный паттерн для маленьких .NET-проектов и сразу проверяет, умеет ли агент работать с двумя разными экосистемами одновременно, похожее использовал в тестировании локальной Qween модели.
Промт
Сделай Pomodoro-таймер. Фронтенд — Vite + React. Бэкенд — ASP.NET Core Web API.
Никаких уточнений по дизайну, структуре проекта, БД — ничего. Я хотел увидеть, что агент придумает сам.
Что произошло за 3 минуты
Агент (DeepSeek V4 Flash, через OpenRouter) сделал следующее, без моего участия кроме нажатия y на подтверждениях:
• Создал структуру каталогов — отдельные папки для frontend и backend.
• Сгенерировал бэкенд на .NET 10 — актуальная LTS-версия, вышедшая в ноябре 2025-го. С C# 14 по умолчанию. Не из старых шаблонов, что приятно удивило.
• Поднял Vite + React на фронте с обращением к API через fetch.
• Прописал CORS на бэке — что важно, обычно про это забывают и потом полчаса дебагают «почему не работает».
• Написал README с инструкциями по запуску — отдельно для фронта, отдельно для бэка.
Запуск
Стартанул бэкенд через dotnet run, фронтенд через npm install && npm run dev — всё запустилось с первого раза. Без ручных правок, без доустановки библиотек, без подгонки версий.
Таймер выглядит симпатично — минималистичный интерфейс, стандартные 25/5 минут, можно стартовать и сбрасывать. Бэкенд отдаёт состояние сессии через REST.
Сколько это стоило
0.10 доллара. Десять центов за то, чтобы агент с нуля собрал full-stack приложение из двух проектов на разных стеках, написал README и довёл до состояния «запускается с первой команды».
Чтобы был масштаб — сравним с альтернативами для той же задачи:
DeepSeek V4 Flash Input (0.14$ 1M) Output (0.28$ 1M) - ~$0.10 (факт)
Claude Sonnet Input 4.6 (3$ 1M) Output (15$ 1M) ~$2-4 (оценка)
Claude Opus 4.7 Input (5$ 1M) Output (25$ 1M) ~$5-10 (оценка)
Цены Claude — оценочные, исходя из размера сгенерированного проекта. Реальный счёт зависит от того, сколько раз агент перечитывал контекст и какой prefix-cache hit-rate у него получался.
Получается разница примерно в 20–40 раз. Я даже заглянул на openrouter.ai/activity, чтобы убедиться, что счётчик в TUI не обманывает — там ровно 10 центов и есть.
Где DeepSeek-TUI выигрывает, а где нет
Где он реально хорош
• Цена. Тут даже комментировать нечего — порядок дешевле всего, что есть на рынке коммерческих агентов.
• Бойлерплейт-задачи. Стандартные стеки, типовые проекты, шаблонные интеграции — Flash справляется за копейки и не хуже Sonnet.
• Свежесть стека. .NET 10, актуальные версии React и Vite — модель явно тренировали на свежих данных, а не на тех, что были год назад.
• Side-git защита. Если агент что-то напортит, /restore откатит без боли в основном репозитории.
Где минусы
• OpenRouter — путь с граблями. Auto-mode не работает, формат кэш-скидку DeepSeek через OR не получите. Для серьёзной работы лучше прямой ключ на DeepSeek.
• Качество на сложных задачах. Я не делал на этой статье серьёзный архитектурный рефакторинг — там, скорее всего, Sonnet/Opus покажут себя лучше. Flash — модель быстрого ответа, не модель глубокого размышления.
• Документация местами хаотичная. В корне репозитория лежат рабочие заметки авторов вроде TAKEOVER_PROMPT.md и V086_BRIEF.md — для нового пользователя это шум.
• Стабильность ещё устаканивается. v0.8.16 — это уже 16-й патч ветки 0.8 за пару месяцев. Софт живой, чинится быстро, но взрывы случаются.
Итог
DeepSeek-TUI не убийца Claude Code и не претендует на это. Это другой класс инструмента — open-source CLI, ориентированный на цену и доступность. Полноценное full-stack приложение за 10 центов — это не маркетинг, это реальный кейс, который можно повторить.
Если у вас сценарий с большим количеством бойлерплейта, прототипов, стартеров для проектов — DeepSeek-TUI даст эффективность на порядок выше. Если работаете с зрелой кодовой базой и важен максимальный уровень качества рефакторинга — оставайтесь на Claude Code, разница в счёте там оправдана.
Я для себя решил так: DeepSeek-TUI остаётся в аптечке для прототипов, генерации тестов, объяснений архитектуры и любого «черновика». Для production-кода в основном репозитории — пока что Claude Code. Но при таком темпе развития DeepSeek-моделей, возможно, через полгода это решение придётся пересмотреть.
Если будете тестировать сами — поделитесь в комментариях, на каких задачах Flash у вас сработал лучше или хуже. Особенно интересно сравнение с Pro-моделью на тех же сценариях.
Больше про LLM и AI — в нашем Telegram-канале (@devgeek_sh). Разбираем новые модели, делимся опытом и полезными находками.