finds.dev← search

// the find

Sentdex/minion

★ 337 · Python · MIT · updated Jul 2026

A tiny single-file coding agent for self-hosted models (llama.cpp / vLLM / SGLang).

Minion is a single-file (~4600 line) terminal coding agent aimed at self-hosted LLM servers (llama.cpp, vLLM, SGLang) where every token of context overhead actually costs something. It's for developers running local models who find Aider/OpenCode/Claude-Code-style agents too heavy, and want something they can read end to end in one sitting.

Genuinely minimal baseline context (~625 tokens on a bare 'hey', with only 5 tools) instead of the 20-50K some frameworks burn before you've typed anything. It degrades gracefully against rough local servers: falls back to parsing [minion_tool_call] text blocks when native tool-calling isn't supported, and escapes those delimiters in tool results so quoted code doesn't get misparsed as a call. Sessions are plain JSON files you can grep, not a SQLite blob, and resume correctly reselects the original source/model. The per-action risk classifier (low/medium/high) with visible reasoning in the approval prompt is a reasonable middle ground between full-auto and prompting on every single write.

It's one 4600-line file with no internal module boundaries - the pitch is 'read one file to understand it,' but that also means any nontrivial contribution touches the same giant script, and the tests/ directory can only exercise it at a fairly coarse grain. The tool surface is just read/write/edit/list_dir/run_bash - no search/grep tool, so any multi-file exploration on a real codebase turns into a sequence of read_file calls, which eats back a chunk of the token savings the README leads with. The risk classifier is itself an extra model call on every write/bash action, adding latency per turn, and its failure mode (default to 'high' on bad response) means a flaky local server makes the agent annoyingly cautious rather than failing predictably. There's no diff preview or undo for write_file - approval is the only guard against a bad overwrite, and if you've yolo'd approval, it's just gone.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →