Runs on your computer · Answers only you
Your own AI assistant, on your computer and your phone.
Talk to Compa in your browser, on WhatsApp or on Slack. It works with your files, runs commands, searches the web, sets reminders and messages people for you, with the models you choose.
Install
Windows (PowerShell)
irm https://github.com/kayiik/compa/releases/latest/download/install.ps1 | iex
macOS and Linux
curl -fsSL https://github.com/kayiik/compa/releases/latest/download/install.sh | sh
Runs on Windows 10 or later, macOS 12 or later and Linux. Options, updates and uninstalling: the install guide.
Get started
-
Set a password
The installer starts Compa and opens its setup page in your browser. If you closed it, choose Open Console in Compa's tray menu.
-
Pick a model
On Models, press Try free providers, connect a provider with an API key, or point Compa at a model server on your computer.
-
Chat, then take it with you
Chat in the browser. To reach Compa from your phone, link WhatsApp by QR code or add a Slack bot on Channels.
What it does
-
Wherever you are
Chat in the browser, or message Compa on WhatsApp, where it joins your account as a linked device, or on Slack. Send it photos, voice notes and documents.
-
Yours alone
Compa answers only you, in direct messages, and ignores group chats. Your first message asks to pair; once you approve it, everyone else is ignored.
-
It gets things done
It reads, writes and edits files in its workspace, runs shell commands, searches the web, reads pages, schedules jobs and uses tools from MCP servers.
-
Colleagues that keep working
Compitas are agents that run beside Compa, each with its own workspace and chat, on this computer, in a Docker container or on another machine you add. Give one a goal and it works until it is done or blocked. They are off until you turn them on.
-
It reaches people for you
Compa can message anyone on your channels, such as a WhatsApp contact, from your account. Keep it to the current chat with one setting, or have it ask first.
-
You approve what matters
Approval rules decide which tool calls run, wait for you or are refused. Compa asks in your chat, and you answer with
/approveor/deny. -
It keeps you posted
Results of scheduled jobs, reminders and approval requests reach your chat, and a copy goes to Slack and Microsoft Teams webhooks.
-
The models you choose
OpenAI, Anthropic, Google Gemini, OpenRouter, Groq, Mistral AI and more with an API key; Ollama, LM Studio or LocalAI on your computer; any OpenAI- or Anthropic-compatible endpoint; free keyless providers. A route falls back to the next model when one fails.
-
Voice
Dictate messages and hear replies, push-to-talk or hands-free. Voice notes from WhatsApp are transcribed.
-
Skills, modules and Go
Add skills from the skill hub and modules that add capabilities. Developers can run the same agent inside their own Go program with
pkg/agent.
The web UI is in English, Čeština, Português (Brasil), 简体中文 and বাংলা.
Your data
- Compa keeps its settings, chats and keys in
~/.compaon your computer. - Your messages go to the model providers you choose. Free providers are third-party services, and web search, WhatsApp, Slack and the skill hub reach their own services when you use them.
- A password protects the web UI, which listens only on this computer unless you turn on LAN access.
- Tools run as your user account. File tools stay inside the workspace by default: a guard, not a sandbox.
- Whoever can write from your paired account can use Compa and its tools, so keep that account to yourself.
Documentation
- InstallInstallers, updates, uninstalling, ports, LAN access and building from source.
- Use CompaModels, chat, tools, approvals, voice, WhatsApp, Slack, skills and modules.
- CompitasComputes, isolation, objectives, automation, approvals, the browser and how Compitas talk to each other.
- TroubleshootingCommon problems, then privacy and security.
- Command lineThe
compaoptions andcompa-kernelcommands. - Gateway interfaceHTTP and WebSocket, for programs that run the gateway.
- Embed the Go runtimeRun the agent loop inside your own Go program.