Every AI model in one terminal, with your own keys. See what every answer costs.
pip install kunji
Website · Documentation · Install · Commands · Kunji (कुंजी) means "key" in Hindi.
Kunji is a terminal app for chatting with any AI model using your own API keys. You pay each provider directly. Kunji never sees your bill, your keys or your prompts.
/model — the conversation carries over./cost and kunji usage
show totals, in your currency.npm test 2>&1 | kunji ask "why is this failing?"kunji @commit writes a commit message from your staged changes;
@explain, @review, @fix, @summarize, @translate — or make your own.kunji chat -c,
search with kunji history search./file app.py in chat, or kunji ask -f app.py "what does this do?".kunji for an arrow-key menu that stays open until you exit;
every action is also a command for scripts.Requires Python 3.11+.
pip install kunji
If pip isn't found or shows an error, run it through Python instead:
| System | Command |
|---|---|
| Windows | python -m pip install kunji (or py -m pip install kunji) |
| macOS | python3 -m pip install kunji |
| Linux | python3 -m pip install --user kunji (if it says "externally managed", use pipx install kunji) |
No Python on Windows? Download kunji-windows-x64.exe from the
latest release and run it from a terminal.
Linux: kunji-linux-x64.
Update later with pip install -U kunji. If the kunji command isn't found after installing,
python -m kunji always works.
winget, Scoop and Homebrew packages are on the roadmap.
kunji # opens the menu: add a provider, then start a chat
Prefer commands? kunji keys add, then kunji chat.
Free and local? Install Ollama, then kunji keys add ollama.
| Command | What it does |
|---|---|
kunji | Interactive menu (stays open until you choose Exit) |
kunji chat | Chat (-m provider:model, -s "system prompt", -c continue last, --resume <id>) |
kunji ask "…" | One-shot answer. Reads piped input. -f file to attach, --raw for scripts |
kunji @name "…" | Run a saved prompt, e.g. kunji @commit, git diff | kunji @review |
kunji prompts | List prompts; add, edit, show, remove your own |
kunji history | Saved chats; search, show, export, delete |
kunji compare "…" -m a -m b | Same prompt to several models, side by side |
kunji keys add [provider] | Add or replace a key (verified, then saved to the keychain) |
kunji keys list / test / remove | Manage keys (always masked) |
kunji models [provider] | Live model list with prices |
kunji use provider:model | Set your default model |
kunji providers | Supported providers; providers add for custom servers |
kunji usage | Tokens and cost per model (stored locally only) |
kunji budget set <provider|all> <amount> | Daily spending limit |
kunji config show / set / path | Settings |
kunji doctor | Check Python, config, keychain and providers |
| Input | Action |
|---|---|
/help | Show commands and shortcuts |
/model provider:model | Switch model (tab completes) |
/models [filter] | List models of the current provider |
/cost | Session and today's cost |
/file path | Attach a text file to your next message (tab completes paths) |
@name text | Use a saved prompt, e.g. @explain this error |
/prompts · /history | List saved prompts · recent chats |
/system … | Set the system prompt |
/retry · /new / /clear · /save [file] | Regenerate · new conversation · export markdown |
/exit · /quit · /q | Leave the chat |
enter · alt+enter / ctrl+j | Send · new line |
ctrl+c · ctrl+d | Stop the reply · quit |
| ID | Provider | Key env variable |
|---|---|---|
openai | OpenAI | OPENAI_API_KEY |
anthropic | Anthropic | ANTHROPIC_API_KEY |
gemini | Google Gemini | GEMINI_API_KEY / GOOGLE_API_KEY |
groq | Groq | GROQ_API_KEY |
openrouter | OpenRouter | OPENROUTER_API_KEY |
deepseek | DeepSeek | DEEPSEEK_API_KEY |
mistral | Mistral | MISTRAL_API_KEY |
xai | xAI | XAI_API_KEY |
together | Together AI | TOGETHER_API_KEY |
ollama | Ollama (local) | none |
Any OpenAI-compatible server (LM Studio, vLLM, LiteLLM proxy…):
kunji providers add lmstudio --base-url http://localhost:1234/v1 --no-key
kunji config path).catalog/pricing.json) and the PyPI version check. Neither sends anything about you.
Turn them off with kunji config set network.catalog false and
kunji config set updates.check false.Details: docs/PRIVACY.md.
kunji config set display.currency INR
kunji config set display.usd_rate 84 # your conversion rate
kunji budget set all 200 # ₹200/day across every provider
kunji config set fallback '["groq:llama-3.3-70b-versatile", "ollama:qwen2.5"]'
All options: docs/CONFIG.md. Every command with examples: docs/COMMANDS.md. Full documentation: testwithsuraj.github.io/kunji/docs.
Everything that runs on your machine is free and open source, forever — chat, switching, keys, cost meter, budgets, compare, fallback, pipes. A future optional Pro plan will add cloud features that need a server (sync across devices, shared team keys with per-person budgets, a smart router). See ROADMAP.md.
Bug reports, ideas and pull requests are welcome — start with CONTRIBUTING.md. Architecture overview: docs/ARCHITECTURE.md.
Thanks to everyone who has helped build kunji (emoji key):
![]() testwithsuraj 💻 🚧 | Iman Rashidi 🔣 | Ayush 💻 ⚠️ |
This project follows the all-contributors specification. Contributions of any kind are welcome!
Apache-2.0. "kunji" and the kunji logo are not covered by the license; please use a different name for forks.
No reviews yet. Be the first to rate this tool.
Sign in to leave a review.