UNCUT CLI

Агент для кода без интерфейса в одном бинарнике на Go: читает и правит файлы, запускает команды и не обрезает контекст молча

  • 609 ★ репозитория
  • Последний коммит
  • MIT
CLI

Широкий доступ

Почему такой уровень

  • Модель выполняет команды оболочки с правами вашего пользователя, окон подтверждения нет
  • Файловые инструменты записывают и заменяют файлы в рабочем каталоге
  • Файл сессии хранит исходный код, вывод команд и возможные секреты
Все причины и проверки

balanov/uncut

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add cli/uncut

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Широкий доступИнструмент может менять данные, выполнять команды или работать с секретами.

  • Модель выполняет команды оболочки с правами вашего пользователя, окон подтверждения нет
  • Файловые инструменты записывают и заменяют файлы в рабочем каталоге
  • Файл сессии хранит исходный код, вывод команд и возможные секреты

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

UNCUT — агент для работы с кодом из командной строки: статический бинарник на Go без интерфейса, телеметрии и плагинов. У него четыре инструмента: `read_file`, `write_file`, `replace` и `run_command`. Задачу передают аргументом, а лог или `git diff` подают через конвейер: `git diff | uncut "Review this diff. Do not edit files."`. Модели при каждом вызове уходит вся переписка целиком. Содержимое файлов и объединенный вывод команд агент не обрезает и не сжимает. Если провайдер оборвал ответ на лимите токенов, агент завершается с кодом 3 и неполный текст за успех не выдает. Без итогового ответа за 32 шага (значение `--max-steps` по умолчанию) работа заканчивается кодом 4. Модель подключается через любой OpenAI-совместимый эндпоинт Chat Completions, в том числе локальный: связку с Ollama автор проверил на `qwen3:8b`. Флаг `--json` выводит события в формате NDJSON, а `--session файл.jsonl` дописывает историю в файл и продолжает работу с того же места.

Для кого. Разработчикам, которые запускают агента в CI-джобах, контейнерах и shell-скриптах и хотят видеть весь контекст без скрытых сокращений.

Подходит, если

  • Лог упавших тестов надо прогнать через модель прямо в конвейере: `cat failing-test.log | uncut "Find the likely cause"`
  • Задачу выполняет CI-джоб, а результат читает другая программа, поэтому подойдет поток событий NDJSON из `--json`
  • Рефакторинг идет в несколько запусков, и историю между ними хранит файл сессии `--session`
  • Модель работает локально через Ollama, и обрезать контекст молча нельзя

Не подходит, если

  • Требуется интерактивный интерфейс с подтверждением правок: в UNCUT нет окон и запросов на согласие
  • Модель должна читать изображения: агент работает только с текстом и вызовами инструментов
  • Задачу надо изолировать от системы: оболочка выполняет команды с правами вашего пользователя
  • Ждете плагины, фоновых агентов или автоматические повторы запросов: автор их намеренно не добавил

Пример запроса к агенту

Запусти uncut с моделью из UNCUT_MODEL и поручи ему найти причину падения тестов в этом репозитории

Ограничения

UNCUT не песочница: модель исполняет команды оболочки с правами вашего пользователя, а проверка путей относится только к файловым инструментам. Бинарные файлы и невалидный UTF-8 агент отклоняет, вывод в UTF-16 на Windows тоже. Бинарники не подписаны, поэтому SmartScreen или Gatekeeper могут предупредить: сверьте SHA-256 с `checksums.txt` из релиза. Окно контекста модели агент не расширяет: при превышении лимита провайдер отклонит запрос или оборвет ответ.

Как отключить. Удалите бинарник `uncut` из `$HOME/.local/bin` (на Windows из `%LOCALAPPDATA%\Programs\UNCUT`) и уберите переменные `UNCUT_API_KEY`, `UNCUT_MODEL` и `UNCUT_BASE_URL`. Файлы сессий `.jsonl` удаляются отдельно.

Частые вопросы

Что значит код выхода 3?

Провайдер вернул `finish_reason=length` или `max_tokens`: ответ оборван на лимите. UNCUT такой ответ не принимает. Поднимите `--max-tokens` или возьмите модель с более длинным выходным окном и повторите запуск.

Как подключить локальную модель через Ollama?

Скачайте модель с поддержкой инструментов, например `ollama pull qwen3:8b`, и задайте `UNCUT_BASE_URL=http://localhost:11434/v1` и `UNCUT_MODEL=qwen3:8b`. Ключ API для локального адреса не нужен. Как модель вызывает инструменты, зависит от самой модели.

Читает ли UNCUT файл AGENTS.md?

Да, берет его целиком из корня рабочего каталога и добавляет в системное сообщение. Отключает чтение флаг `--no-agents`. При возобновлении сессии используется системное сообщение, сохраненное в файле.

Как проверить, что контекст не обрезается?

Соберите бинарник и запустите `python bench/proof.py ./bin/uncut`. Скрипт гоняет настоящий бинарник против локального детерминированного провайдера, ключ API не нужен. Он проверяет передачу данных, а качество моделей не оценивает.

Что происходит, если замена в файле не находит совпадение?

`replace` меняет ровно одно вхождение: при нуле или нескольких совпадений инструмент возвращает ошибку, и файл остается как был. Пути файловых инструментов должны лежать внутри рабочего каталога, который задает `--cwd`. Команды `run_command` идут через `/bin/sh -c` на Unix и `cmd.exe /D /S /C` на Windows.

Обсуждение

Вопросов и отзывов пока нет.

Учебный терминальный агент для кода на Python, задуманный как «nanoGPT для агентов»: прочитать, разобрать и форкнуть

CLIШирокий доступ1,9 тыс.Звезды репозитория

Открытый кодовый агент для терминала, браузера и десктопа, который работает с моделями от OpenAI и Claude до Ollama

CLIШирокий доступ360Звезды репозитория

CLI на Go, который настраивает уже установленные у вас ИИ-агенты: дает им общую память, рабочий процесс и детерминированные шаги, не подменяя сами агенты

CLIРасширенный доступ8,5 тыс.Звезды репозитория

Обвязка для своего агента: цикл инструментов, сессии, согласования, REPL и дашборд, где инструмент и скилл лежат в файлах.

CLIШирокий доступ108Звезды репозитория

Кодинговый агент на Go для открытых моделей: из беседы делает задачи в отдельных ветках, сам проверяет и вливает результат, ведет все проекты в одном окне

CLIШирокий доступ643Звезды репозитория

Самохостящийся ИИ-агент в одном бинарнике на Go: терминал, веб-интерфейс, мессенджеры и десктоп работают с любой совместимой моделью

CLIШирокий доступ142Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйЗвезды репозиторияГлавное отличие
UNCUT (эта карточка)нет609
Aiderнет49 976ведет диалог в терминале, показывает правки и коммитит их в git, а UNCUT работает без интерфейса и без автокоммитов
OpenCodeнет224 828агент с режимами разработки и планирования в терминале и на десктопе, а UNCUT сводится к четырем инструментам и конвейеру

Коротко о README

Описание открывается обещанием: один бинарник на 7 МБ, четыре инструмента, обычные stdin и stdout. Затем идут установка для Linux, macOS и Windows с проверкой контрольных сумм, быстрый старт, таблицы переменных, флагов и кодов выхода. Отдельный раздел объясняет, что автор называет «lossless», и предупреждает, что UNCUT не песочница.

Бейдж для README

Сообщить о проблеме

Foxx AIUNCUT
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.