Multi-provider AI chatbot for the terminal
Project description
inzen-bot 🤖
A multi-provider AI chatbot for the terminal. Chat with Claude, GPT-4, Ollama, or llama.cpp without leaving your shell — with full conversation history so you can follow multi-step instructions one command at a time.
$ bot how do I format a drive in Ubuntu?
Step 1: List your drives to identify the correct device:
sudo fdisk -l
$ bot step 2?
Step 2: Unmount the partition if it's currently mounted:
sudo umount /dev/sdX1
$ bot step 3?
Step 3: Format the drive with your chosen filesystem:
sudo mkfs.ext4 /dev/sdX
No browser. No switching apps. Just ask and keep working.
Install
pip install inzen-bot
Or with uv:
uv add inzen-bot
Setup
Set your API key as an environment variable. Add to your ~/.bashrc or ~/.zshrc:
export ANTHROPIC_API_KEY="sk-ant-..."
export OPENAI_API_KEY="sk-..." # optional
Reload your shell:
source ~/.bashrc
For Ollama and llama.cpp no API key is needed — just make sure the server is running.
Usage
# Ask anything
bot what is the mkfs command
# Follow up — history is automatic
bot what does the -t flag do
bot next step?
# Use a specific provider for one query
bot --provider openai explain RAID levels
# Switch default provider
bot --set-provider ollama
# Switch model
bot --set-model claude-opus-4-5
# View conversation history
bot --history
# Clear history
bot --clear
# List all configured providers
bot --providers
Providers
| Provider | Requires | Notes |
|---|---|---|
anthropic |
ANTHROPIC_API_KEY |
Default. Claude models. |
openai |
OPENAI_API_KEY |
GPT models. Also works for Groq, Together etc. |
ollama |
Ollama running | Local inference. Free to run. |
llamacpp |
llama.cpp running | Local inference via OpenAI-compatible server. |
Ollama quickstart
# Install from https://ollama.ai, then:
ollama pull llama3
ollama serve
bot --set-provider ollama
bot hello from the terminal
llama.cpp quickstart
# Build llama.cpp, then run the server:
./server -m your-model.gguf --port 8080
bot --set-provider llamacpp
bot what is quantisation
Configuration
Config and history live in ~/.bot/:
~/.bot/
├── config.json # provider settings and defaults
├── history_anthropic.json # conversation history per provider
├── history_openai.json
└── history_ollama.json
Each provider keeps its own history so context doesn't bleed across models.
You can edit ~/.bot/config.json directly to add custom providers or point the OpenAI provider at any OpenAI-compatible endpoint:
{
"provider": "anthropic",
"providers": {
"anthropic": { "model": "claude-haiku-4-5", "api_key_env": "ANTHROPIC_API_KEY" },
"openai": { "model": "gpt-4o", "api_key_env": "OPENAI_API_KEY" },
"groq": { "model": "mixtral-8x7b-32768", "api_key_env": "GROQ_API_KEY",
"base_url": "https://api.groq.com/openai/v1" },
"ollama": { "model": "llama3", "base_url": "http://localhost:11434" },
"llamacpp": { "model": "local", "base_url": "http://localhost:8080" }
}
}
History is capped at 50 message pairs per provider to keep API costs under control.
Cross-platform
Works on Linux, macOS, and Windows. Config and history paths resolve correctly on all platforms via Path.home().
Requirements
- Python 3.12+
anthropic— Anthropic/Claude provideropenai— OpenAI and llama.cpp providersrich— terminal renderingclick— CLI framework
Built by
Inzen — AI consulting and LLM application development.
License
GPL-3.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file inzen_bot-0.2.0.tar.gz.
File metadata
- Download URL: inzen_bot-0.2.0.tar.gz
- Upload date:
- Size: 25.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90b91b09e0ffb5f18b7dd0c55ebdedc6f5810865d6fd2c5314d62f7cfc008b40
|
|
| MD5 |
baa661caa8005c6d8bb83ffc2fcec767
|
|
| BLAKE2b-256 |
91de8424ac2a633881613f0d4cfa183179debcd1f45a40644c5beccfebf90dae
|
File details
Details for the file inzen_bot-0.2.0-py3-none-any.whl.
File metadata
- Download URL: inzen_bot-0.2.0-py3-none-any.whl
- Upload date:
- Size: 23.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71d4a2295e24f5a588d4b05c0daa5e59ccb05de3f05c431473651753b9510536
|
|
| MD5 |
53fe4150935ace7ba05dd0c8bf8548fb
|
|
| BLAKE2b-256 |
89956fdd4cb4093382a4fd43e9427a0b3650ca1015ee8e2940e13f93f5dff2cb
|