Skip to main content

Multi-provider AI chatbot for the terminal

Project description

inzen-bot 🤖

PyPI Downloads Python Version

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 provider
  • openai — OpenAI and llama.cpp providers
  • rich — terminal rendering
  • click — CLI framework

Built by

Inzen — AI consulting and LLM application development.


License

GPL-3.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

inzen_bot-0.2.0.tar.gz (25.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

inzen_bot-0.2.0-py3-none-any.whl (23.1 kB view details)

Uploaded Python 3

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

Hashes for inzen_bot-0.2.0.tar.gz
Algorithm Hash digest
SHA256 90b91b09e0ffb5f18b7dd0c55ebdedc6f5810865d6fd2c5314d62f7cfc008b40
MD5 baa661caa8005c6d8bb83ffc2fcec767
BLAKE2b-256 91de8424ac2a633881613f0d4cfa183179debcd1f45a40644c5beccfebf90dae

See more details on using hashes here.

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

Hashes for inzen_bot-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 71d4a2295e24f5a588d4b05c0daa5e59ccb05de3f05c431473651753b9510536
MD5 53fe4150935ace7ba05dd0c8bf8548fb
BLAKE2b-256 89956fdd4cb4093382a4fd43e9427a0b3650ca1015ee8e2940e13f93f5dff2cb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page