DeepSeek-TUI — новый ИИ-агент для кода в терминале. Дешёвая альтернатива Claude Code: настройка через OpenRouter и первый проект

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 проверяем:

node --version npm --version npm --version

2. Установка самого агента

npm install -g deepseek-tui deepseek --version

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

Я первым делом, как нормальный человек, написал так:

[provider.deepseek] api_key = "sk-or-v1-..." base_url = "https://openrouter.ai/api/v1" model = "deepseek/deepseek-v4-flash"

И получил ошибку:

error: failed to parse config caused by: TOML parse error at line 1, column 1 | [provider.deepseek] | ^^^^^^^^^^^^^^^^^^^ expected empty table

Оказалось, DeepSeek-TUI ждёт настройки на верхнем уровне TOML, а не во вложенной секции.

Рабочий конфиг такой:

api_key = "sk-or-v1-ВАШ_КЛЮЧ" base_url = "https://openrouter.ai/api/v1" model = "deepseek/deepseek-v4-flash" provider = "deepseek"

Важная деталь — имя модели deepseek/deepseek-v4-flash со слешем. Без слеша, как пишут в документации DeepSeek-TUI, OpenRouter отдаст 404, потому что он ждёт формат provider/model.

Проверка

deepseek doctor

Первый запуск

Создаём папку под тест и стартуем:

cd $env:USERPROFILE\Desktop mkdir deepseek-test cd deepseek-test deepseek --model deepseek/deepseek-v4-flash

Внимание: через OpenRouter не используйте флаг --model auto. Внутренний routing-вызов агента хардкодит имя модели без префикса deepseek/, и OpenRouter его не понимает. Только фиксированные модели.

DeepSeek-TUI — новый ИИ-агент для кода в терминале. Дешёвая альтернатива Claude Code: настройка через 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 с инструкциями по запуску — отдельно для фронта, отдельно для бэка.

DeepSeek-TUI — новый ИИ-агент для кода в терминале. Дешёвая альтернатива Claude Code: настройка через OpenRouter и первый проект

Запуск

Стартанул бэкенд через 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). Разбираем новые модели, делимся опытом и полезными находками.

2
Начать дискуссию