Universal AI in your terminal.
clob is an open-source universal AI terminal platform with a modern TUI. Connect any AI provider, stream responses, manage sessions, and build AI workflows — all from your terminal.
+----------------------------------------------------------+
| clob Sat May 17 12:00:00 |
+---------------------------+------------------------------+
| clob v0.2 | openrouter › gpt-4o-mini |
| | 👁 vision 🔧 tools |
| 💬 Fix the auth bug +------------------------------+
| 💬 Write unit tests | ▶ You |
| 💬 Docker setup help | @file main.py explain this |
| 💬 Explain async/await | |
| | ◆ AI |
| | The `main.py` file defines |
| | your Typer CLI entry point. |
| | Here's a breakdown... |
| [ + New Chat ] | |
+---------------------------+------------------------------+
| Type a message… @file, @dir, @workspace, Ctrl+P |
+----------------------------------------------------------+
| clob v0.2 │ openrouter › gpt-4o-mini │ ● ready |
+----------------------------------------------------------+
- Modern TUI — Textual-powered UI with sidebar, streaming chat, command palette (
Ctrl+P) - Universal Providers — OpenRouter, Groq, NVIDIA Build, Ollama, any OpenAI-compatible API
- Workspace Context —
@file main.py,@dir src/,@workspaceinject context into prompts - Real-time Streaming — Markdown rendering with code-fence awareness, reduced flicker
- Analytics — Token counts and estimated cost tracked live per session
- Persistent Memory — SQLite-backed sessions, messages, full-text search
- Themes — dark, light, cyberpunk, nord + custom user themes
- Sandbox Execution — Safe shell with
SAFE/RESTRICTED/FULLpermission levels - Plugin System — Extend with custom providers, themes, tools, and agents
- Cross-platform — Linux, macOS, Windows
pip install clobbrew tap crishacks/tap
brew install clobscoop bucket add crishacks https://github.com/crishacks/scoop-clob
scoop install crishacks/clobchoco install clobdocker run -it --rm \
-e OPENROUTER_API_KEY=$OPENROUTER_API_KEY \
ghcr.io/crishacks/clob:latestgit clone https://github.com/crishacks/clob
cd clob
pip install -e .# Set API key
export OPENROUTER_API_KEY="sk-or-..."
# Launch TUI
clob
# Single message
clob chat "Explain async/await in Python"
# Use Groq (fast inference)
clob chat "Hello" --provider groq --model llama3-8b-8192
# Check setup
clob doctorSet API keys as environment variables:
export OPENROUTER_API_KEY="sk-or-..."
export GROQ_API_KEY="gsk_..."
export NVIDIA_API_KEY="nvapi-..."Or configure ~/.config/clob/config.toml:
[default]
provider = "openrouter"
model = "openai/gpt-4o-mini"
[providers.openrouter]
base_url = "https://openrouter.ai/api/v1"
api_key = "env:OPENROUTER_API_KEY"
[providers.groq]
base_url = "https://api.groq.com/openai/v1"
api_key = "env:GROQ_API_KEY"
# Named profiles
[profiles.work]
provider = "openrouter"
model = "anthropic/claude-sonnet-4"
[profiles.local]
provider = "ollama"
model = "llama3"[providers.my-provider]
base_url = "https://api.example.com/v1"
api_key = "env:MY_API_KEY"
chat_endpoint = "/chat/completions"Inject files and directories directly into your prompts:
@file main.py explain this code
@dir src/ what does this module do?
@workspace give me an overview of this project
| Key | Action |
|---|---|
Ctrl+P |
Command palette |
Ctrl+N |
New chat session |
Ctrl+S |
Settings |
Ctrl+U |
Usage / token analytics |
Ctrl+F |
Search memory |
Ctrl+B |
Toggle sidebar |
Ctrl+L |
Clear chat |
Ctrl+Q |
Quit |
Enter |
Send message |
Escape |
Focus input |
clob # Launch TUI
clob chat "message" # Send a message
clob chat "msg" -p groq # Use specific provider
clob models # List available models
clob providers # List configured providers
clob config --show # Show config
clob config --edit # Edit in $EDITOR
clob memory --sessions # List sessions
clob memory --search query # Search history
clob session --export 5 # Export session #5 as markdown
clob session --export 5 -f json # Export as JSON
clob ollama list # List local Ollama models
clob ollama pull llama3 # Pull a model
clob workspace stats # Show workspace file stats
clob workspace index # Index current workspace
clob theme list # List themes
clob theme set cyberpunk # Set theme
clob plugins list # List plugins
clob plugins install <pkg> # Install a plugin
clob usage # Show usage report
clob doctor # Diagnose installationclob theme list
# dark, light, cyberpunk, nord
clob theme set nordPlace custom .tcss files in ~/.config/clob/themes/ to create your own themes.
# Start Ollama
ollama serve
# List local models
clob ollama list
# Pull a model
clob ollama pull llama3
# Use in TUI — select "ollama" as provider# Basic
docker run -it --rm \
-e OPENROUTER_API_KEY=$OPENROUTER_API_KEY \
ghcr.io/crishacks/clob:latest
# With Ollama
docker-compose --profile ollama upCreate ~/.config/clob/plugins/my-plugin/plugin.py:
from clob.plugins import Plugin
class ClobPlugin(Plugin):
name = "my-plugin"
version = "1.0.0"
description = "My custom clob plugin"
def on_load(self, app) -> None:
print("Plugin loaded!")git clone https://github.com/crishacks/clob
cd clob
pip install -e ".[dev]"
pytest tests/ -v # Run tests (36 tests)
ruff check clob/ # Lint
black clob/ # Format
clob doctor # Check setupSee CONTRIBUTING.md for full contributor guide.
| Doc | Description |
|---|---|
| CONTRIBUTING.md | Contributor guide |
| SECURITY.md | Security policy and reporting |
| CODE_OF_CONDUCT.md | Community standards |
| CHANGELOG.md | Version history |
| AGENTS.md | Agent architecture |
| CLAUDE.md | AI assistant context file |
- Anthropic Claude native provider
- MCP (Model Context Protocol) support
- Multi-agent workflows
- Image generation in TUI
- Voice input
- Theme marketplace
- VS Code extension
PRs welcome! See CONTRIBUTING.md.
MIT — see LICENSE.