Experimental · v0.1.1 · macOSEtti · Minimal coding assistant · Rust

Etti, a minimal coding assistant.
One engine, four tools,
your machine.

A small Rust engine with a local CLI, a thin Telegram adapter, and four coding tools — read, write, edit, shell. DuckDB keeps the canonical history, memory is explicit, and compaction is bounded. Python runs through the shell, not a fifth tool.

The published artifact is a Homebrew binary for Apple Silicon. The source repository is not published yet.

Install with Homebrew
brew install open-assistants-lab/homebrew-coding/etti
etti --help
etti doctor        # offline, effect-free: reports presence, never values
Or one line
curl -fsSL https://openassistants.org/install.sh | sh
macOS 14+ on Apple Silicon. The script checks the platform, installs the digest-verified release and verifies the binary.
What it is

Small on purpose.
Complete about what it claims.

read, write, edit, shell

Four coding tools, and nothing else to learn. Python runs through the shell rather than a fifth tool, so the surface stays small on purpose.

Explicit memory

Facts are written down deliberately, not inferred behind your back. What is remembered is a decision you can read.

Bounded compaction

History is compacted on a frozen policy: a fixed reserve, an approximate recent window, and a strict trigger. History is never silently trimmed.

DuckDB is the truth

Canonical history lives in DuckDB. One runtime owns the live store and coordinates one active run; adapters never talk to the database directly.

Runs, receipts, recovery

Every run keeps a paired receipt and an intent-before-effect journal. Uncertain effects are reported as uncertain — never replayed as if they worked.

Thin adapters

The CLI and the Telegram adapter are thin views over one engine. Neither runs its own model loop.

How it works

Ask, act, and read the receipts.

01

Bring a model

Point it at a local model or a cloud provider. `etti setup` asks for consent before it stores a key, and stores it in the login Keychain — offline, and never read back to you.

02

Work in a workspace

One workspace, one state directory. The first workspace that creates a store owns it; a different workspace is refused rather than silently rebound.

03

Inspect and recover

`/status`, `/history`, `/cancel` and `/resume` show what actually happened. An uncertain effect stays uncertain until you look at it.

What the CLI shows

  • The complete returned text — the answer and the whole text a tool returned, with the tool's name, command or path, outcome, and artifact metadata.
  • Records separated from payload, so a terminal status always starts on its own line after the answer.
  • Bounded work, honest display: up to 64 KiB of tool output inline, 10 MiB captured. Beyond that it writes an artifact and says so.
  • A capped capture is labelled `[output capped; artifact is partial]` — the body is never printed for you and a partial result is never presented as complete.

What it is not

  • Not a sandbox. Tools share your OS user — trusted local execution, not hostile-code isolation.
  • Not finished. Experimental v0.1.1, macOS Apple Silicon only, ad-hoc signed and not notarized.
  • Not free to run in the cloud. Cloud use needs an Ollama account and internet, and can incur charges.
  • Not published as source. The Homebrew binary is the artifact; the repository is not public yet.
Verification

Checked, and told plainly.

Ordinary tests are offline and isolated. Live-provider, Linux and telemetry release gates remain open — this is the state of the work, not a readiness claim.

526
tests passed
Fresh full Rust suite: 58 targets, 526 passed, 0 failed, 6 ignored.
0
clippy warnings
Strict all-target Clippy with -D warnings, plus cargo fmt --check, clean.
1.99
pinned Rust
Rust 1.99.0 and edition 2024 are pinned in rust-toolchain.toml.
off
telemetry by default
Optional, opt-in, and never required for coding. Reasoning is not implicitly enabled.

The published v0.1.1 binary was verified for its public download digest, payload allowlist, signed-binary identity and offline help/doctor — but not for a host install or upgrade, and not with a clean minimum-OS Mac. The rest of the stack this site used to describe isarchived.

Also here

Elsewhere on this site.

The models index, the release notes, and the published install.

Experimental · macOS Apple Silicon

Install it and read the output.

Install & check
brew install open-assistants-lab/homebrew-coding/etti
etti --help
etti doctor        # offline, effect-free: reports presence, never values

# or one line:
curl -fsSL https://openassistants.org/install.sh | sh

etti chat --local --workspace /path/to/project --state-dir /path/to/project-state \
  --provider ollama-cloud --model deepseek-v4.1-flash --context-window 131072

macOS 14+ on Apple Silicon. Cloud coding needs an Ollama account and internet, and can incur charges. Tools share your OS user. Upgrades may need Keychain reauthorization; uninstalling does not delete your keys or conversation stores.