Resilient local-first TUI agent harness with checkpoint/replay and provider switching.
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/austindixson/Titan/main/scripts/install.sh | bashWindows PowerShell:
irm https://raw.githubusercontent.com/austindixson/Titan/main/scripts/install.ps1 | iexIf you already cloned Titan, run:
./scripts/install.shThen verify + launch:
titan doctor
titan config show
titanWhen Titan opens, you will see:
- top pane: Trace / Diff tabs
- main pane: chat output
- control row buttons: Stop, Provider, Clear, Trace, Quit
- composer at bottom: "Type task and press Enter"
Provider UX:
- click
Provider: <current>or pressCtrl+Pto cycle providers - if the next provider has no key, Titan opens a hidden key input
- paste key, press Enter, Titan saves it to
~/.titan/config.json(redacted intitan config show)
OpenAI Codex OAuth:
export OPENAI_OAUTH_TOKEN="..."
titan config set provider openai-codex
titan config set model gpt-5.4
titanOpenAI API key:
export OPENAI_API_KEY="..."
titan config set provider openai
titan config set model gpt-5.4-mini
titanxAI (Grok-compatible OpenAI API):
export XAI_API_KEY="..."
titan config set provider xai
titan config set model grok-4
titan- openai
- openai-codex
- openrouter
- xai
- groq
- cerebras
- deepseek
- mistral
- zai
- moonshotai
- Start Titan:
titan- Ask a concrete prompt:
Summarize this repository and propose 3 improvements.
-
Switch provider live (
Ctrl+P) and ask the same prompt again. -
Compare behavior in Trace tab (request/tool/retry flow).
titan: command not found
export PATH="$HOME/.local/bin:$PATH"
source ~/.zshrc # or ~/.bashrcProvider key not detected
- ensure env var name matches provider
- or use in-app hidden prompt when switching provider
Provider/model mismatch error
titan config set provider openai
titan config set model gpt-5.4-miniUI rendering looks broken
- use a terminal with UTF-8 + truecolor
- widen terminal window and relaunch
src/titan/titan_tui.py— full-screen TUI, provider cycling, hidden API-key promptsrc/titan/auth.py— provider credential resolution (env, local auth files)src/titan/titan_cli.py—titan config ...,run,doctor, and command routingtests/— behavior and reliability checks
Open an issue first for significant changes, then submit a focused PR with reproducible validation steps.
See LICENSE.