Late

An AI coding agent for long-horizon tasks and local models: 200k+ tokens of work inside a 64k context window, making the same model feel smarter.

Source repo
mlhher/late-cli
Stars
★ 446
Last updated
today
License
NOASSERTION
Primary language
Go

At a glance

How it runs
CLI
Works with
Universal · cross-platformOpenAI API
Cost
Free software; you pay for model usage
Setup effort
Low · running in minutes
You'll need
llama-server (optional, for local models)Podman (optional, for late-podman sandbox)Shell / CLINetwork accessLocal filesystemMCP Server
Typical use
Developers with a consumer GPU (~5GB VRAM) who want to run a full dev-team-style multi-agent workflow on local 35B-A3B-class quantized models
Not a fit if
  • Developers who want a conventional agent that edits the repository directly without enforced delegation
  • Vendors intending to monetize Late itself as paid infrastructure (restricted by its license)

What does this agent do, and when should you use it?

Late (repository mlhher/late-cli) is a terminal AI coding agent written in Go and shipped as a single statically compiled binary with zero runtime dependencies and sub-10ms startup. Its core thesis is that reasoning quality collapses sharply once context utilization crosses 40–50%, so Late architecturally enforces separation between planning and execution: the Lead Orchestrator only plans and verifies — it physically has no file-writing tools and cannot bypass delegation — while ephemeral Coder and Researcher subagents execute atomic tasks in isolated contexts whose noisy scratchpads are wiped on completion, returning only structured, high-signal reports. This lets a 64k context window carry a cumulative job of 200k+ tokens. Late is fully model-agnostic: it connects to a local llama-server on port 9931 with zero configuration, or to cloud providers such as DeepSeek, Claude, GPT, Kimi, GLM, and OpenRouter via environment variables. Beyond subagent orchestration, it ships real-time logit biasing based on EMNLP 2025 research to suppress redundant thinking tokens, a rootless container sandbox (late-podman), plugin/MCP/Agent Skills support, Git worktree parallelism, and fully auditable subagent history.

After running late in a project directory, Late opens an interactive terminal session and plans automatically. The flow: the Lead Orchestrator performs forced plan-first decomposition into atomic, verifiable steps; it spawns ephemeral Coder or Researcher subagents into isolated contexts; subagents search, read, and edit code via exact search/replace diffs with precise line-range instructions (not AST dumps), with automatic self-healing on mismatch; when a task ends, the subagent context is destroyed and only its structured report returns to the orchestrator. Late applies real-time logit biasing through llama-server to suppress repetitive self-reflection tokens like "Wait..." and "Hmm". It also provides: /model to reconfigure orchestrator and worker models on the fly, /compose to draft multi-line instructions in $EDITOR, /rewind to roll back conversational states, late --prompt "..." for scripted runs, late-podman for unattended runs in a rootless container, on-disk subagent transcripts for auditing, an embedded cl100k BPE offline tokenizer, codebase search respecting .gitignore/.llmignore, and a plugin system with MCP servers, third-party Agent Skills, and lifecycle hooks (onSessionStart, onMessageSend, onToolCall, onToolResult).

  1. Developers with a consumer GPU (~5GB VRAM) who want to run a full dev-team-style multi-agent workflow on local 35B-A3B-class quantized models
  2. Long-horizon tasks like autonomously resolving an interwoven 6-file merge conflict with cross-file refactors and regressions, where a monolithic trajectory degrades
  3. Engineers who want overnight unattended large-scale refactors without risking the host machine (late-podman rootless sandbox + yolo mode)
  4. Teams routing planning to frontier reasoning models while delegating execution to fast, cheap workers (hybrid routing via /model)
  5. Users frustrated by slow Node.js/Python agent startups, bloated system prompts, and default telemetry who want an instant, zero-telemetry CLI
  6. Maintainers running independent parallel agent instances across branches with zero context bleeding (Git worktree support)

How do you install or deploy this agent?

Install via Homebrew (Linux/macOS):

brew tap mlhher/late && brew install late

Or use the universal fallback script (Linux / macOS / Windows WSL):

curl -sfL https://raw.githubusercontent.com/mlhher/late-cli/main/install.sh | bash

Manual binaries for Linux, macOS, and native Windows are available on GitHub Releases. Late is a single static binary with no Python venvs and no Node.js. License is custom terms: free to use for coding on any project including commercial ones, but you may not monetize Late itself as a paid service; it converts to GPLv2 on February 21, 2030.

How do you use this agent?

Zero configuration for local models — point llama-server at any GGUF model and Late connects automatically on port 9931:

cd your-project
late

For cloud providers (DeepSeek, Claude, GPT, Kimi, GLM, OpenRouter), set environment variables:

export OPENAI_BASE_URL="your-api-url"
export OPENAI_API_KEY="your-api-key"
export OPENAI_MODEL="model-name"

Common usage: late --prompt "..." starts a session with a pre-given prompt; in-session /model switches orchestrator and worker models, /compose drafts instructions in your $EDITOR, /rewind rolls back turns; late-podman runs unattended in a rootless container sandbox with yolo mode. Install plugins with late plugin install <package>.

What are this agent's strengths and limitations?

Pros
  • Architecturally enforced isolation: the orchestrator physically has no file-writing tools, repo-mutating bash is blocked, delegation cannot be bypassed, and subagents cannot spawn recursive agents — a hard boundary third-party plugins cannot replicate
  • Turns context capacity into a compute problem: with local or cheap inference it can spend far more aggregate inference than one trajectory allows; documented run of a 35B-A3B 3-bit model resolving a 6-file merge conflict across 200k+ tokens
  • Native Go single binary with <10ms startup, ~1,000-token system prompt, no telemetry, and deterministic cache-stable prompt prefixes that never invalidate the KV cache
  • Real-time logit biasing built on EMNLP 2025 research, culling 27%–51% of CoT token bloat via llama-server with no accuracy loss
  • Fully model-agnostic: zero-config local llama-server plus OpenAI-compatible env vars for cloud; native MCP, Agent Skills, and plugins in any language
Limitations
  • The never-edits orchestrator imposes a mandatory decompose-then-delegate workflow; users accustomed to monolithic direct-editing agents face a migration cost
  • Logit biasing depends on llama.cpp/llama-server and only benefits the local inference path (effect varies by model); cloud paths cannot use it
  • Sandboxed unattended runs depend on Podman (late-podman), requiring extra installation and learning
  • The license is custom terms, not a standard open-source license: commercial wrapping of Late itself is prohibited, with GPLv2 conversion only in 2030
  • The headline 200k+ token result comes from the author's own local tests (35B-A3B models); limited independent third-party verification

How does this agent compare with similar options?

The README explicitly compares Late against Claude Code, Codex, and standard monolithic agents: monolithic agents let the primary agent absorb codebase scans, compiler errors, failed diffs, and retries into one growing trajectory, and delegation is optional or bypassable; Late architecturally enforces isolation with physical tool namespace pruning. The author also published an evaluation claiming Late outperforms Claude Code and Codex for local LLM workflows.

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
Late This agent 50 · Major gaps CLIFree + model costs ★ 446 today Go OpenAI API
Oh My Pi 54 · Major gaps CLIFree + model costs ★ 36k today TypeScript Codex · OpenAI API · Claude API
VT Code 66 · Some gaps CLIFree + model costs ★ 881 today Rust OpenAI API
Tura 65 · Some gaps CLIFree + model costs ★ 661 12d ago Rust —

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Major gaps
50/ 100 5-point scale 2.5 / 5
Trust 12/29
Reliability 9/14
Adaptability 9/18
Convention 10/18
Effectiveness 7/13
Verifiability 3/8
Why each dimension lost points
Trust12 / 29 · 2.1/5

README claims the orchestrator has no file-write tools, repo-mutating bash blocked, and subagents cannot spawn agents; rootless podman sandbox flags are partially verified by test assertions, so least_privilege gets 2, but the container defaults to --network=host which weakens isolation. User confirmation is limited to a '--i-promise-i-have-backups' disclaimer flag and yolo mode; no pre-execution approval mechanism is evidenced (1). Opt-in subagent transcript persistence is described but not shown (1). API keys and arbitrary env vars pass through to containers with no redaction guidance (1). CI runs govulncheck and dependencies are pinned (2). The agent can mutate the host repo by default; sandboxing is opt-in (1). /rewind rollback is a claim only (1). Licensor mlhher is unverified (1).

Reliability9 / 14 · 3.2/5

README is internally coherent (2); Go deps are pinned and a zero-runtime-dependency single binary is claimed (2); the test script asserts error strings like '--image requires an argument' and README says edits fail loud (2). All static, unexecuted.

Adaptability9 / 18 · 2.5/5

Target audience (local small models, long-horizon tasks) is clearly stated with multi-platform builds (2); capability boundaries rely on vague 'varies by model' hedges (1); no trigger precision evidence beyond listed plugin hooks (1); environment fit is well evidenced: llama-server :9931 auto-discovery, Homebrew, release matrix across six OS/arch combos (2).

Convention10 / 18 · 2.8/5

Clean bilingual README with linked Quickstart and FAQ (2); install instructions cover brew, curl, and manual binaries (2); naming is consistent (2); FAQ is detailed but concrete worked examples are scarce (2); known limitations are essentially undisclosed (1); LICENSE is a clear BSL 1.1 converting to GPLv2 in 2030 (2), though repo metadata says NOASSERTION and the commercial restriction is a real integration constraint; releases exist but no CHANGELOG (1); maintainer identity and update path are unverified, with CI/release automation as the only maintenance evidence (1).

Effectiveness7 / 13 · 2.7/5

Output usability (structured subagent reports, exact-match diffs) is asserted without code or sample outputs in evidence (1); marginal value from the context-isolation architecture is a coherent differentiated claim (2); cost-benefit via local compute-for-context trade is well argued but unverified (2).

Verifiability3 / 8 · 1.9/5

Two papers are cited, but one is labeled 'arXiv 2026: 2601.15300', a future-dated identifier, raising authenticity doubt (1); performance claims (200k+ tokens, 45% collapse) are self-reported with testimonials from Reddit/GitHub only (1); marketing assertions are heavily intermixed with factual statements without separation (1). Core Go source is not in the evidence set, so architectural claims cannot be checked.

Risks and how to mitigate them
  • Licensed under BSL 1.1, not an open-source license: monetizing or wrapping Late as a commercial service is prohibited until GPLv2 conversion in 2030; repo metadata (NOASSERTION) conflicts with the actual LICENSE — confirm with legal before integrating.
  • A cited paper is labeled 'arXiv 2026: 2601.15300', a future-dated identifier; its authenticity is doubtful, and headline claims (200k+ tokens, 45% collapse) are self-reported without independent verification.
  • The agent can modify host project files by default; the late-podman sandbox is opt-in, and containers default to --network=host, so the host network is reachable — tighten this in sensitive environments.
  • Yolo mode and the '--i-promise-i-have-backups' flag imply changes execute without confirmation; API keys pass through environment variables into containers — mind the exposure surface.
  • Core Go source was not within the reviewed evidence set; key claims of architecturally enforced isolation are README assertions only and were not statically verified.
Evidence confidence: Low Reviewed Oct 15, 2026 Reviewed revision 39834f1b08e5 New commits since this review; the score may not cover them
See the full review method →

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. v2.0.2
    Release notes excerpt
    Features: * Readable approval prompt by @mlhher in https://github.com/mlhher/late-cli/commit/c29749c * Tool results in transcript by @mlhher in https://github.com/mlhher/late-cli/commit/884b952 * Inference stats by @mlhher in https://github.com/mlhher/late-cli/commit/89d8552 * At file completion by @mlhher in https://github.com/mlhher/late-cli/commit/531cc7c * Worker token count by @mlhher in https://github.com/mlhher/late-cli/commit/75b8c8e * Context-exhaustion safeguard by @Emasoft in https://github.com/mlhher/late-cli/pull/148 Fix: …
    View on GitHub ↗
  2. v2.0.1
    Release notes excerpt
    Features: * feat(build): stamp commit, build number, and date into the binary by @Emasoft in https://github.com/mlhher/late-cli/pull/143 Fix: * fix: config.json errors are surfaced, named, and never overwritten by @Emasoft in https://github.com/mlhher/late-cli/pull/134 * fix(tui): route mid-session diagnostics through the TUI, never raw stderr by @Emasoft in https://github.com/mlhher/late-cli/pull/140 * fix: ctrl-d delete by @mlhher in https://github.com/mlhher/late-cli/commit/87e5498b1c99cbd68e6d0f36a5d5ec932ec48098 …
    View on GitHub ↗
  3. v2.0.0
    Release notes excerpt
    Features: * Feat/subagent history by @jpia in https://github.com/mlhher/late-cli/pull/110 * feat(plugin): universal plugin system — OMP and Claude Code compatibility by @giveen in https://github.com/mlhher/late-cli/pull/105 * feat: resilient LLM streaming & recovery, --continue-project, grouped help by @Emasoft in https://github.com/mlhher/late-cli/pull/127 * feat: performance optimization and tui theme by @mlhher in https://github.com/mlhher/late-cli/pull/121 * feat: podman sandbox by @mlhher in https://github.com/mlhher/late-cli/pull/116 …
    View on GitHub ↗

FAQ

Can small or quantized local models really handle complex tasks?
That is specifically what Late was built for. The author repeatedly tested 35B-A3B models at 3-bit quantization via llama-server: agents collectively executed 200,000+ tokens while the orchestrator stayed below 64k, autonomously resolving an interwoven 6-file merge conflict with cross-file refactors and regressions, compiling cleanly and passing all tests inside a disposable late-podman container. The same model repeatedly failed the task in monolithic harnesses.
Doesn't this create a telephone game where information is lost between agents?
Subagents are explicitly instructed to return concise summaries of what they did, what worked, deviations from the original plan, and which architectural assumptions may have been wrong. The orchestrator focuses on important failures and pivots quickly instead of inheriting every file read, git operation, test result, and build log.
What does it cost?
The software itself is free. Local models (llama-server + GGUF) require zero configuration and no API fees; cloud providers (DeepSeek, Claude, GPT, Kimi, GLM, OpenRouter) require your own API keys and pay-per-use.
Why can't this workflow be rebuilt with plugins on existing agents?
Because orchestration loops not designed for this architecture cannot enforce isolation: Late's orchestrator is physically incapable of file edits through tools or Bash, and workers are architecturally separated from orchestration — a structural discipline a third-party plugin cannot replicate.
Can I use it without a running llama-server?
Yes. Late is fully model-agnostic; setting OPENAI_BASE_URL, OPENAI_API_KEY, and OPENAI_MODEL connects it to any cloud provider. llama-server is simply the zero-configuration local default.
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents