Ourocode is a terminal-native AI workbench for running structured agent workflows without leaving your shell. It combines a raw terminal UI, MCP/Ouroboros workflow orchestration, wonderTool decision checkpoints, local command discovery, and model backends such as Claude CLI, Codex CLI, Gemini CLI, and ChatGPT/Codex OAuth.
The project is currently optimized for local macOS development and early user testing.
- Runs
oooworkflows from an interactive terminal session. - Turns interview questions into focused wonderTool pickers with arrow-key navigation, free answers, pause/resume, and visible loading states.
- Keeps MCP parent/child runtime state, session streams, and workflow progress visible in terminal panes.
- Provides command discovery with
/,ooo,@file, and@mcp:style prompt overlays. - Supports readline-style editing keys, prompt history, pasted image file tokens, and terminal resize/zoom recovery.
- Builds as an Elixir
escriptplus a small Rust tty helper.
Install the latest prerelease build:
curl -fsSL https://raw.githubusercontent.com/Q00/ourocode/release/bootstrap/install.sh | bashThen run:
ourocodeOptional model backends:
- Claude CLI
- Codex CLI
- Gemini CLI
- ChatGPT/Codex login
For a local source checkout:
./install.sh
ourocodeDetect available model backends:
./ourocode --detectInside the TUI:
/model choose a model backend
/login sign in for ChatGPT/Codex OAuth
ooo interview start a structured interview flow
ooo help see workflow commands
@ mention project files
Ctrl-G show active key help
Install from GitHub without cloning:
curl -fsSL https://raw.githubusercontent.com/Q00/ourocode/release/bootstrap/install.sh | bash
ourocodeinstall.sh downloads the matching GitHub Release tarball, installs ourocode into ~/.local/ourocode/<version>, and writes a launcher at ~/.local/bin/ourocode. The launcher sets OUROCODE_TTY so the installed escript can find the bundled native tty helper.
When run from a source checkout, the same installer uses bundled release binaries if present, or builds from source when needed. Set OUROCODE_BUILD_FROM_SOURCE=1 to force a local build.
Set OUROCODE_SKIP_OUROBOROS=1 to skip the best-effort Ouroboros install step.
Build a local release tarball:
./scripts/package.shThe release contains:
ourocode
bin/ourocode_tty
install.sh
README.md
Generated artifacts:
dist/ourocode-v0.1.2-darwin-arm64.tar.gz
dist/ourocode-v0.1.2-darwin-arm64.tar.gz.sha256
Install from an unpacked release:
tar -xzf dist/ourocode-v0.1.2-darwin-arm64.tar.gz
cd ourocode-v0.1.2-darwin-arm64
./install.sh
ourocodeThe next distribution channel should be a Homebrew tap:
brew tap Q00/ourocode
brew install ourocodeLonger term, Ourocode should move toward a single self-contained binary or app bundle so users do not need to install Elixir/Rust just to run it.
Terminal TUI
-> command registry and prompt overlays
-> runtime dispatcher
-> MCP transport layer
-> Ouroboros / model backends
-> journaled event stream
-> dashboard projections
Key areas:
lib/ourocode/terminal/- raw terminal UI, key decoding, palette, prompt history, screen diffinglib/ourocode/runtime/- workflow orchestration, dispatch, focus state, stream supervisionlib/ourocode/mcp/- stdio, SSE, and streamable HTTP normalizationlib/ourocode/wonder_tool/- decision request parsing and answer capturelib/ourocode/dashboard/- data-only pane projectionsrust/ourocode_ipc/- native tty helper
Run tests:
mix testRun focused terminal tests:
mix test test/ourocode/terminalBuild everything:
./build.shThis is an early release branch for getting real users onto the terminal workflow. The current priority is packaging, installer polish, and feedback from actual interview/wonderTool sessions.
