oven

early & experimental ยท not production-ready

A toy coding agent for joy only.

oven reads and edits your files, runs shell commands, delegates to subagents and remembers your project between sessions. Bring any OpenAI-compatible model. Written in Rust.

curl -fsSL https://oven.paulden.site/install | bash

The installer picks the release for your platform and checks its digest against the GitHub release. Restart your terminal, then run oven --help. Manual downloads โ†’

oven mascot: a smiling little oven
$ oven -Q "what does this project do?"
A Rust CLI that parses Markdown and renders
it to HTML. Entry point is src/main.rs; the
parser lives in src/parse/.
$ oven # opens the interactive TUI
$ 

What's in the oven

  • Reads & edits code

    Built-in file_read, file_edit, file_write, glob and grep tools work inside your workspace.

  • Runs your shell

    The agent runs commands with bash. Type !cargo test in the TUI to run a command yourself and share its output.

  • Durable memory

    Remembers facts per workspace and per user. Manage them with oven mem or /memory, or skip them with --amnesia.

  • Subagents

    Delegates side jobs to concurrent subagents. Watch or stop them with /agents.

  • Any compatible model

    Speaks OpenAI chat completions or responses. DeepSeek, xAI, Moonshot, Zhipu and your own proxy via oven model add.

  • MCP, skills, rules

    Mounts MCP servers (stdio or HTTP), loads SKILL.md skills and injects AGENTS.md / CLAUDE.md.

Two ways to run it

interactive

Chat in the TUI

oven
oven -c              # latest session here
oven -s my-session   # named session
oven -C ~/project    # other workspace

Needs a real terminal. Sessions are saved as JSONL under ~/.oven/sessions/.

headless

One-shot with -Q

oven -Q "what does this project do?"
oven -Q "summarize HEAD" > notes.md
oven --amnesia -Q "explain src/main.rs"

No TUI: prints the answer to stdout and exits, which makes it scriptable. Without -Q, oven in a pipe prints its usage and exits with code 2.

Inside the TUI

Keys

Enter
send the prompt
Shift+Tab
cycle agent โ†’ plan โ†’ ask (read-only, shell needs approval)
Esc Esc
cancel a running turn, or rewind the last exchange
@
mention a file
!cmd
run a shell command yourself
Ctrl+C
quit

Slash commands

/model
switch model: /model <id> [none|low|medium|high]
/setup
configure a provider
/plan
toggle plan mode
/agents
list, open or stop subagents
/compact
summarize history to free context
/memory
list, show or remove memories
/clear
start a new session
/exit
quit

Ready in three steps

  1. Install

    Run the one-liner above, then restart your terminal.

  2. Add a model

    oven model add

    Or just set env vars for one run: OVEN_MODEL, OVEN_API_KEY, OVEN_BASE_URL.

  3. Start cooking

    cd your-project && oven

    Config lives in .oven.toml or ~/.oven/config.toml. oven --help lists every flag.