Skip to main content

agent7

The simplest coding agent. ~1800 lines of Python, four tools, one loop.

A deliberately minimal harness — all-in on modern, carefully chosen model providers. Fast and precise. No seatbelt; hold on.

No orchestration: no plan mode, no subagents, no parallel tasks, no background jobs. You give it one sentence; it reads files, edits files, runs commands, then stops. Built for people who work on one thing at a time — you hold one task in your head, and so does it.

Features

  • Deliberately minimal harness — four tools, one loop, no orchestration
  • Complete CLI agent UX — streaming thinking + answer, tool lines with ✓/✗, edit/write preview, vi-mode REPL, @path completion, session resume
  • Slash commands — /help /model /status /login /logout /compact
  • Markdown rendering — final replies rendered as Rich Markdown in the terminal, thanks rich.
  • Paged final replies — interactive answers open in your system pager (usually less); use the arrow keys/Space to scroll and q to continue. The rendered reply stays in the terminal after you quit. Redirected output is never paged.
  • Provider login — paste an API key for DeepSeek, Grok, or Kimi (/login or env); switch models in-session

Install

pip install agent7
# or: uv tool install agent7
# or from source: uv sync && uv run agent7

Auth

Paste an API key; there is no OAuth. Keys are stored in ~/.config/agent7/auth.json.

export DEEPSEEK_API_KEY=sk-...   # or /login deepseek
export XAI_API_KEY=xai-...       # Grok, from console.x.ai  (or /login grok)
export KIMI_API_KEY=sk-...       # Kimi Code, from the Kimi Code Console (or /login kimi)
# export AGENT7_MODEL=grok-4

You can also log in from inside the REPL:

/login deepseek
/login grok              # xAI — Grok models
/login kimi              # Kimi Code — kimi-for-coding and other available models
/model                   # list models for every logged-in provider
/model deepseek-flash
/model grok-4
/model kimi-for-coding

Usage

uv run agent7 "create hello.py that prints hi"   # one-shot
uv run agent7                                    # new REPL session
uv run agent7 -r                                 # resume this cwd's session
uv run agent7 -r "continue"                      # resume + one-shot

Each workspace keeps a single snapshot — starting without -r replaces it. Sessions are saved automatically after tasks, commands, interruptions, and exit. Snapshots contain resumable model context, not a separate full transcript; compaction is reflected in the saved context. Files live in ${XDG_STATE_HOME:-~/.local/state}/agent7/sessions/ and do not store API keys. Hard process kills can lose the in-progress turn.

REPL commands: /help /model /status /login /logout /compact. Exit with Ctrl-D (or Ctrl-Z on Windows). Ctrl-C discards the current input or interrupts the running turn, then returns to the prompt instead of exiting the REPL.

Reasoning models (DeepSeek, Grok, Kimi) stream their reasoning_content live: it shows up dimmed under a thinking header, before the answer and above each tool line. It is display only — reasoning is never replayed into the prompt or the saved session.

Type @ in the REPL to recursively complete files and directories from the cwd: fix @agent7/agent.py. Tab accepts, directories keep going (@agent7/ → @agent7/session.py), and spaces are escaped (@my\ file.txt), so the path the model sees is the path it can read.

--cwd sets the working directory. --max-turns caps the loop at 200 model rounds per task — high enough that ordinary work never hits it, low enough to stop a runaway. The current model round and its tool calls finish before the run pauses. When it runs out, a yellow notice explains that the task may be unfinished and how to recover. The session is preserved: type continue in the REPL, run agent7 -r "continue" for a one-shot, or use agent7 --max-turns 500 -r "continue" to resume with a higher cap. Reaching the cap never silently starts a new session or extends the same run indefinitely.

The cap is per run, not per session: -r never pins you to the --max-turns an already-saved session was created with. Precedence is --max-turns > $AGENT7_MAX_TURNS

A run that ends with no visible text never ends silently: you get either # (stopped after N turns), # no text in the reply … or # … hit the output token limit ….

Tools

Tool What it does Output budget
read Read a file with line numbers 200 lines per call by default; page with offset=
write Create or overwrite a whole file +N -M diff stats
edit Precise replacements; one call may include multiple edits[] against the original file (no overlaps) +N -M diff stats
bash Host shell in the cwd (bash / PowerShell / cmd) ~12k chars

That's it. No grep, no list_dir, no todo, no task. Need more capability? Let the agent use bash.

On startup agent7 picks a shell from sys.platform: Git Bash → PowerShell → cmd on Windows, bash elsewhere. The choice is written into the system prompt so the model matches the host. Override with AGENT7_SHELL=bash|powershell|cmd|/path/to/shell.

Tools run serially, one after another — so the log always reads in order and you never get three outputs interleaved. Edits are applied without a confirmation prompt; you just get a one-line diff stat.

Context

At 75% context usage, old tool/assistant text is compacted automatically: the last 3 user turns are kept, or for one-shot tasks the last 4 tool results. /compact triggers the same compaction manually.

Providers that never report usage are measured by an estimate, so compaction still kicks in; if the server rejects a request as too long anyway, it compacts harder and retries that turn once.

AGENT7_CONTEXT_LIMIT overrides the context limit.

When things go wrong

  • 429 / 5xx / connection errors are retried up to 3 times (0.5s, 1.5s, 3s) — but only while nothing has been printed yet, so you never see a reply twice. After that you get # error: … and, in the REPL, the prompt comes back instead of the process dying.
  • Ctrl-C in the middle of a tool batch answers every remaining tool call with error: interrupted, so the next request is still valid.
  • Writes are atomic (temp file + rename): an interrupted write/edit leaves the original file untouched, and symlinks keep pointing where they did.
  • Large outputs are bounded: read streams the file and keeps only the window it returns; bash captures to temp files and reads back ~12k chars. A 100 MB log costs a few hundred KB of memory, not 300 MB.

What it is not

  • Not an orchestrator: no branching, no subagents
  • Not a parallel framework: single-threaded, one thing at a time
  • Not a background service: work runs only in the foreground
  • No sandbox: tools run as you, and bash can do anything your account can do

If that kind of "small" is exactly what you want, this is enough. If it's missing the abstraction you had in mind, that omission is probably the point — not an oversight.

Metadata

Release files for agent7 0.1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agent7 0.1.6
File Size Uploaded Provenance Actions
agent7-0.1.6.tar.gz 26.5 kB With provenance Details for agent7-0.1.6.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for agent7 0.1.6
File Interpreter ABI Platform Actions
agent7-0.1.6-py3-none-any.whl Python 3 none any Details for agent7-0.1.6-py3-none-any.whl

Total release size: 57.0 kB

Release files / agent7-0.1.6.tar.gz

Download URL agent7-0.1.6.tar.gz
Size 26.5 kB
Tags Source
SHA-256 checksum
How to use checksums
58e37a319413c1e7b56c556360a41a21784d24e057d98d0a65c00f6d458004e3
BLAKE2b-256 checksum
How to use checksums
2726d6cb675a4cd5f87431e5631c4f2334f0f22628d3b84851c310f752c73c79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.

Transparency log

Release files / agent7-0.1.6-py3-none-any.whl

Download URL agent7-0.1.6-py3-none-any.whl
Size 30.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e259894670df2b27b78f58483e4afc8a69a5e3117e2252755832bcdd775c86ea
BLAKE2b-256 checksum
How to use checksums
9662e1762df467d1ce95f85178f9259c1f0bc0c46e72dab628725e54bfb29b1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.

Transparency log

Security for agent7 0.1.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for agent7-0.1.6.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page