BYOAIK — Bring Your Own AI Key: a directory of AI tools that run on your own API key.
aichat
All-in-one LLM CLI with Shell Assistant, Chat-REPL, RAG, and agents across 20+ providers using your own keys.
- Category:
- Developer Infrastructure
- Pricing:
- Open Source
- Open source:
- Yes (Apache-2.0 OR MIT)
- Self-hostable:
- Yes
- Local-first:
- Yes
- Platforms:
- CLI, Self-hosted, Docker
- AI providers (bring your own key):
- OpenAI, Anthropic, Google Gemini, Azure OpenAI, OpenRouter, Groq, Mistral, Cohere, Perplexity, DeepSeek, xAI Grok, Ollama, Custom / OpenAI-compatible
- API key storage:
- Configured by environment variable
- Key risk level:
- LOW
- Trust score:
- 92/100
aichat is a Rust-based, all-in-one command-line tool for working with large language models. It bundles a Shell Assistant (natural-language to shell commands), an interactive Chat-REPL with completion and history, Retrieval-Augmented Generation (RAG), reusable roles/sessions, function calling with MCP support, and AI agents that combine instructions, tools, and documents. It also ships a built-in HTTP server exposing an OpenAI-compatible API plus an LLM Playground and Arena. Users bring their own provider API keys, configured in config.yaml (per-provider api_key: xxx placeholders) or via <PROVIDER>_API_KEY environment variables; recent versions add an api_key_helper for dynamic credential fetching from secret managers. It supports 20+ providers including OpenAI, Anthropic Claude, Google Gemini, Azure OpenAI, AWS Bedrock, Google Vertex AI, Ollama, Groq, Mistral, Cohere, Perplexity, DeepSeek, xAI Grok, OpenRouter, GitHub Models, and any OpenAI-compatible endpoint. Runs on macOS, Linux, Windows, and Android (Termux); installable via Cargo, Homebrew, Scoop, Pacman, or prebuilt binaries.
How your API key is handled
Your API key is supplied via an environment variable or local config file. Requests are sent directly to the AI provider. Because it can be self-hosted, your key never has to touch a third-party backend.
Setup
Install the tool, set your provider API key as an environment variable (or in its config file), and pick a model.