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.

Website Source code

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.