In remembrance of Kabosu, the famous shiba dog.
This SUPER helpful TUI helps you with any task you have in hand.
It runs as a ratatui/crossterm TUI and stores its config in ~/.config/shibainu/config.toml.
- Animated ASCII shiba avatar with mood-based states
- Streaming chat responses in a terminal UI
- Anthropic and OpenAI provider support
- In-app provider and model switching with
/provider - Automatic config file creation on first launch
- Rust toolchain with
cargo - An Anthropic API key or OpenAI API key
Set one of the supported API keys:
export ANTHROPIC_API_KEY=your_key_hereor:
export OPENAI_API_KEY=your_key_hereRun the app:
cargo run --releaseOn first launch, shibainu creates:
~/.config/shibainu/config.toml
Environment variables take precedence over values stored in the config file.
Example ~/.config/shibainu/config.toml:
[default]
provider = "anthropic"
model = "claude-sonnet-4-6"
[anthropic]
api_key = ""
[openai]
api_key = ""
model = "gpt-4o"Supported providers:
anthropicopenai
Selectable models currently include:
- Anthropic:
claude-opus-4-7,claude-sonnet-4-6,claude-haiku-4-5-20251001 - OpenAI:
gpt-4o,gpt-4o-mini,gpt-4-turbo
Once the TUI is open:
- Type a message and press
Enterto send it - Use
/providerto open the provider/model picker - Use
/exitorCtrl+Cto quit - Use
↑and↓to scroll chat history - Use
PgUpandPgDnto jump through chat history - Use
Endto jump back to the latest messages
Inside the provider picker:
↑and↓change provider←and→change modelEnterconfirmsEsccancels
Build:
cargo buildRun tests:
cargo testRun the optimized binary:
cargo run --releasesrc/
app.rs event loop and app state
config.rs config loading and saving
prompt.rs system prompt
stream_processor.rs streaming token handling
providers/ Anthropic and OpenAI clients
tui/ ratatui widgets and shiba art
- If the configured provider is missing an API key, the app opens with the provider menu so you can switch to a configured backend.
- The app currently focuses on the interactive TUI experience rather than a non-interactive CLI mode.
