UNCUT CLI

A headless coding agent in one Go binary: reads and edits files, runs commands and never trims context silently

  • 601 ★ on the repository
  • Last commit
  • MIT
CLI

Broad access

Why this level

  • The model runs shell commands with your user's permissions and there are no approval prompts
  • The file tools write and replace files in the workspace
  • A session file stores source code, command output and possible secrets
All reasons and checks

balanov/uncut

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add cli/uncut

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • The model runs shell commands with your user's permissions and there are no approval prompts
  • The file tools write and replace files in the workspace
  • A session file stores source code, command output and possible secrets

This is third-party code. Review the repository files before installing.

What it does

UNCUT is a command-line coding agent: a static Go binary with no interface, telemetry or plugins. It has four tools: `read_file`, `write_file`, `replace` and `run_command`. You pass the task as an argument and feed a log or `git diff` through a pipe: `git diff | uncut "Review this diff. Do not edit files."`. The model receives the whole conversation on every call. The agent never trims file contents or combined command output, and it never summarizes them. If the provider cuts the answer at its token limit, the agent exits with code 3 and does not present the partial text as a success. Without a final answer inside 32 steps (the default of `--max-steps`) the run ends with code 4. The model connects through any OpenAI-compatible Chat Completions endpoint, local ones included; the author tested the Ollama setup on `qwen3:8b`. The `--json` flag prints NDJSON events, and `--session file.jsonl` appends the history to a file and resumes from it.

Who it is for. Developers who run an agent in CI jobs, containers and shell scripts and want the full context with no hidden trimming.

Good fit when

  • A failing-test log has to go through the model right inside a pipeline: `cat failing-test.log | uncut "Find the likely cause"`
  • A CI job runs the task and another program reads the result, so the NDJSON event stream from `--json` fits
  • A refactor runs across several invocations and a `--session` file keeps the history between them
  • The model runs locally through Ollama and nothing may be trimmed silently

Not a fit when

  • You want an interactive interface that confirms edits: UNCUT has no windows or approval prompts
  • The model has to read images: the agent handles only text and tool calls
  • The task must be isolated from the system: the shell runs commands with your user's permissions
  • You expect plugins, background agents or automatic retries: the author left them out on purpose

Example request

Run uncut with the model from UNCUT_MODEL and have it find why the tests fail in this repository

Limitations

UNCUT is not a sandbox: the model runs shell commands with your user's permissions, and path checks cover only the file tools. The agent rejects binary files and invalid UTF-8, and UTF-16 output on Windows too. The binaries are unsigned, so SmartScreen or Gatekeeper may warn: compare the SHA-256 with `checksums.txt` from the release. The agent does not extend a model's context window: past the limit the provider rejects the request or cuts the answer.

How to disable. Delete the `uncut` binary from `$HOME/.local/bin` (on Windows from `%LOCALAPPDATA%\Programs\UNCUT`) and unset `UNCUT_API_KEY`, `UNCUT_MODEL` and `UNCUT_BASE_URL`. Delete the `.jsonl` session files separately.

FAQ

What does exit code 3 mean?

The provider returned `finish_reason=length` or `max_tokens`: the answer was cut at its limit, and UNCUT rejects it. Raise `--max-tokens` or pick a model with a longer output window, then run again.

How do I connect a local model through Ollama?

Pull a model that supports tools, for example `ollama pull qwen3:8b`, and set `UNCUT_BASE_URL=http://localhost:11434/v1` and `UNCUT_MODEL=qwen3:8b`. A local address needs no API key. How the model calls tools depends on the model itself.

Does UNCUT read an AGENTS.md file?

Yes, it takes the whole file from the workspace root and adds it to the system message. The `--no-agents` flag turns this off. A resumed session uses the system message stored in the session file.

How can I check that nothing gets trimmed?

Build the binary and run `python bench/proof.py ./bin/uncut`. The script drives the real binary against a deterministic local provider and needs no API key. It tests data transport and does not rate model quality.

What happens when a replacement finds no match in a file?

`replace` changes exactly one occurrence: with zero or several matches the tool returns an error and the file stays as it was. The file tools' paths must stay inside the workspace set by `--cwd`. `run_command` goes through `/bin/sh -c` on Unix and `cmd.exe /D /S /C` on Windows.

Discussion

No questions or reviews yet.

CLI tools

A teaching terminal coding agent in Python, built as a "nanoGPT for agents": read it, take it apart and fork it

CLIBroad access1.9KRepository stars

An open coding agent for the terminal, browser and desktop that works with models from OpenAI and Claude to Ollama

CLIBroad access360Repository stars

A Go CLI that configures the AI coding agents you already use: it gives them shared memory, a workflow and deterministic steps without replacing the agents them

CLIExtended access8.3KRepository stars

A harness for your own agent: tool loop, sessions, approvals, REPL and dashboard, with tools and skills kept as editable files.

CLIBroad access108Repository stars

A Go coding agent for open models: it turns a chat into tasks on separate branches, checks and merges the result and runs all projects in one window

CLIBroad access635Repository stars

Self-hosted AI agent in a single Go binary: terminal, web UI, chat apps and desktop all run on any compatible model

CLIBroad access141Repository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialRepository starsMain difference
UNCUT (this card)no601
Aiderno49,945holds a dialogue in the terminal, shows edits and commits them to git, while UNCUT runs without an interface or automatic commits
OpenCodeno224,591an agent with build and plan modes in a terminal and on desktop, while UNCUT is four tools and a pipeline

README in short

The description opens with a promise: a 7 MB binary, four tools, plain stdin and stdout. Install steps for Linux, macOS and Windows with checksum verification follow, then a quick start and tables of variables, flags and exit codes. A separate section explains what the author calls "lossless" and warns that UNCUT is not a sandbox.

README badge

Report a problem

Foxx AIUNCUT
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.