The smallest thing between your terminal and a model.
iota is an agent CLI written in Rust. You configure agents — a model, a prompt, a set of tools — and run them: iota run <agent>.
brew install iotash/tap/iotaorcargo install --git https://github.com/iotash/iota
v0.1.0 · 7.56 MiB · MIT · macOS, Linux and Windows
let (rx, tx) = pipe()?;drop(tx); // ← before the await
An actual session — agent mode, one bash call, one answer. No cuts.
# why it is small
The terminal is already an interface: it has scrollback, a clipboard, pipes and a shell. We did not want to rebuild any of that in a window, so iota adds the one thing the terminal is missing — a model that can use your tools — and stops there. Nothing it does is hidden from you: a session is a directory holding meta.json and messages.jsonl, one JSON record per line, appended as you talk, and /debug shows the exact request and response bodies that went over the wire. The config is one YAML file with three maps in it. There is no account, no daemon and no telemetry. And there is nothing to be locked into — any endpoint that speaks OpenAI, Anthropic or Gemini works, including one you run yourself, and a child agent is just iota run <agent> -m "<task>" run from bash, like anything else.
# what it is, and is not
it does
run an agent you named in the config — its model, its prompt, its tools
call MCP tools, and run bash inside an OS sandbox (macOS and Linux)
stream a reply, and let you keep typing while it arrives
render markdown, tables and math as ANSI, inline
save every session as plain text you can resume, grep or delete
it does not
run before you configure an agent — iota config init writes the first one
run a daemon or a server, or leave anything running after you quit
ask you to sign in, or phone home
write outside the project root unless you say so
wrap the model in a framework you have to learn first
→Read the documentationinstall, configure, and the three layers of ~/.iota.yaml
→Source on GitHubMIT, ~70k lines of Rust, issues welcome
→Changelogwhat changed, and what it breaks