Otto
A terminal AI agent that works on a codebase, a container, a browser or a
desktop, uses what it built, and judges its own work against criteria it
wrote before it started. One agent loop with modes over four model vendors,
a rubric-first evaluator, tiered memory, six benchmark harnesses, and 1,685
tests that need no API key. It embeds: agent.embed is the surface an app
with Otto's Python inside it depends on.
Install
pip install "otto-cli-agent[local-embeddings]"
otto doctor
otto tui
The local-embeddings extra is the on-device embedding model; without it
recall uses a Gemini key when there is one, and recency otherwise. [serve]
adds otto serve, the agent behind a WebSocket for the phone app.
Put keys in a .env in the directory you run it from. INCEPTION_API_KEY
is required (it alone serves the fill-in-the-middle and edit endpoints);
OPENAI_API_KEY, ANTHROPIC_API_KEY and GEMINI_API_KEY are optional and
each unlocks the seats routed to that vendor. otto tui opens its setup
screen on first start when nothing is configured. Python 3.12 or newer.
What it does
- One agent loop with four modes that swap the model underneath without losing the conversation; routing that learns from outcomes, per-model cooldowns and a per-provider circuit breaker.
- A rubric written from the task before any attempt, shared by the loop and the judge, so the judge never grades against the actor's own output.
- Once-only holds before an irreversible action, before finishing on unrun code, and before finishing without using what was built.
- 18 tools: shell and Python, files,
code_map, a browser,exercise(walk through a page, a served app, a CLI, an API, a terminal program or a device app and report each step as the machine saw it), a desktop, web search, workspace search and memory recall. - Tiered memory with type-aware compaction and two-stage semantic recall (96% on LoCoMo), a lesson bank, and sessions that survive the process.
- A Textual TUI with a setup screen, live progress, a token and dollar ledger; a REPL with the same pipeline.
- Six benchmark harnesses: a golden set, SWE-bench Verified, Claw-Eval, LoCoMo, a compaction bench and Humanity's Last Exam.
Links
- Source, folder-by-folder READMEs and screenshots: https://github.com/siddharth23P/otto_agent
- Website: https://siddharth23p.github.io/otto_agent/
- How it was built, commit by commit, with the measurement behind each change: https://github.com/siddharth23P/otto_agent/blob/main/docs/HISTORY.md
- The research each design decision draws on: https://github.com/siddharth23P/otto_agent/blob/main/docs/RESEARCH.md
MIT licensed.
Metadata
Release files for otto-cli-agent 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| otto_cli_agent-0.1.4.tar.gz | 6.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| otto_cli_agent-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.8 MB
Release files / otto_cli_agent-0.1.4.tar.gz
| Download URL | otto_cli_agent-0.1.4.tar.gz |
|---|---|
| Size | 6.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fc932ce1db28de7942b9125a0d346206a09c9d8958d8cdb833c6a9e3b97269c6
|
|
BLAKE2b-256 checksum How to use checksums |
951393741f8473fa66ac28df056442596fdc5c56d00ec0567a57b040e6f57d6f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 17, 2026.
Transparency logRelease files / otto_cli_agent-0.1.4-py3-none-any.whl
| Download URL | otto_cli_agent-0.1.4-py3-none-any.whl |
|---|---|
| Size | 660.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
844e93ce0d09f0f2e4b56adcf810281b384920e42cd46a459bbe6f69da89fcd4
|
|
BLAKE2b-256 checksum How to use checksums |
b14b4488ea3d3be66565eb2f89769c2a0399029fa46bf60691f22a4432e87ca5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 17, 2026.
Transparency log