compa

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 28, 2026 License: MIT Imports: 1 Imported by: 0

README

Compa

Compa is a personal AI assistant that runs on your computer. You chat with it in your browser, pick the models it uses, and it can work with files, run commands and search the web for you. "Compa" is Mexican Spanish slang for pal.

Install

Windows (PowerShell):

irm https://github.com/xibodev/compa/releases/latest/download/install.ps1 | iex

macOS and Linux:

curl -fsSL https://github.com/xibodev/compa/releases/latest/download/install.sh | sh

The installer checks the download against the release's SHA-256 checksums, installs two programs, compa and compa-kernel, and starts Compa. Where it installs, options, updating and uninstalling: docs/install.md.

Your first chat

  1. Compa opens http://127.0.0.1:18800 in your browser (open it yourself if it doesn't). Set a password.
  2. Go to Models. Press Try free providers, or connect a provider with an API key or a model server on your computer.
  3. Go to Chat and ask something.

What it does

  • Chat with tools: files in its workspace folder, shell commands, web search and web pages, scheduled jobs.
  • Models from many providers: API-key providers such as OpenAI, Anthropic, Google Gemini, OpenRouter, Groq and Mistral AI; local servers (Ollama, LocalAI); your own OpenAI- or Anthropic-compatible endpoints; free keyless providers; and more through an optional extension app. A route tries a list of models in order until one answers.
  • Voice: dictation and spoken replies, push-to-talk or hands-free.
  • Chat apps: talk to Compa from Telegram, Discord, Slack, WhatsApp, Matrix and more.
  • Skills (instructions for particular tasks, with a skill hub to find more) and installable modules that add capabilities.
  • Compa keeps its settings, chats and keys in ~/.compa on your computer; messages go to the model providers you choose. A password protects the web UI, which listens only on this computer unless you turn on LAN access.
  • The web UI is in English, Czech, Brazilian Portuguese, Simplified Chinese and Bengali.

Documentation

For developers

compa-kernel is the agent runtime and works on its own in a terminal; see docs/cli.md. The same runtime is a Go package you can run inside your own program; see docs/embedding.md.

Build from source

You need Go 1.26.6, Node.js 22 and pnpm. The web UI is built first, because compa embeds it when it links.

cd web/frontend
pnpm install --frozen-lockfile
pnpm run build:backend
cd ../..
go build -tags goolm,stdjson -o build/compa-kernel ./cmd/compa-kernel
go build -tags goolm,stdjson -o build/compa ./web/backend

On Windows, name the outputs compa-kernel.exe and compa.exe. Keep both programs in one folder: compa runs the compa-kernel beside it. More in docs/install.md.

License

MIT. See LICENSE, and NOTICE for upstream attribution.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var OnboardWorkspace embed.FS

OnboardWorkspace embeds the default onboarding workspace template.

Keeping this embed at the module root lets us source files directly from the tracked `workspace/` tree, instead of relying on a generated copy inside `cmd/...` that may be absent in clean checkouts and CI lint runs.

Functions

This section is empty.

Types

This section is empty.

Directories

Path Synopsis
cmd
compa-kernel command
Module lifecycle commands.
Module lifecycle commands.
compa-kernel/internal/cliui
Package cliui renders human-oriented CLI output: bordered panels and columns on wide interactive terminals.
Package cliui renders human-oriented CLI output: bordered panels and columns on wide interactive terminals.
fakemodule command
Command fakemodule is a deterministic module used to test the host's module boundary without involving a real module, a network, or a paid provider.
Command fakemodule is a deterministic module used to test the host's module boundary without involving a real module, a network, or a paid provider.
genfixtures command
Command genfixtures writes the canonical host-side protocol fixtures.
Command genfixtures writes the canonical host-side protocol fixtures.
internal
module
Package module executes detached module processes on behalf of the host.
Package module executes detached module processes on behalf of the host.
moduletools
Package moduletools adapts detached module capabilities into agent tools.
Package moduletools adapts detached module capabilities into agent tools.
pkg
audio/voice
Package voice runs speech-to-text and text-to-speech for a voice target "instance-id/model-id" on the llmgw-core provider of the target's instance: transcription is an Invoke on the audio_transcriptions surface with the OpenAI multipart transcription body, synthesis one on audio_speech with the OpenAI speech JSON.
Package voice runs speech-to-text and text-to-speech for a voice target "instance-id/model-id" on the llmgw-core provider of the target's instance: transcription is an Invoke on the audio_transcriptions surface with the OpenAI multipart transcription body, synthesis one on audio_speech with the OpenAI speech JSON.
bus
channels/deltachat
Package deltachat implements a Compa channel for Delta Chat, an email-based, end-to-end encrypted messenger.
Package deltachat implements a Compa channel for Delta Chat, an email-based, end-to-end encrypted messenger.
config
Package config defines Compa's configuration and loads and saves it.
Package config defines Compa's configuration and loads and saves it.
constants
Package constants provides shared constants across the codebase.
Package constants provides shared constants across the codebase.
contractv2
Package contractv2 declares the identity of the frozen xibodev.module/v2 behavioural Target Contract and the exact-pin check that gates it.
Package contractv2 declares the identity of the frozen xibodev.module/v2 behavioural Target Contract and the exact-pin check that gates it.
credential
Package credential resolves secret values in the config, such as channel tokens and tool API keys.
Package credential resolves secret values in the config, such as channel tokens and tool API keys.
events
Package events provides the process-local runtime event bus used to observe Compa components without coupling them to agent-specific event envelopes.
Package events provides the process-local runtime event bus used to observe Compa components without coupling them to agent-specific event envelopes.
fileutil
Package fileutil provides file manipulation utilities.
Package fileutil provides file manipulation utilities.
identity
Package identity provides unified user identity utilities for Compa.
Package identity provides unified user identity utilities for Compa.
mcp
modproto
Package modproto defines the Compa detached-module protocol: the wire contract between the host and locally installed module executables.
Package modproto defines the Compa detached-module protocol: the wire contract between the host and locally installed module executables.
modprotov2
Package modprotov2 is the wire representation of the frozen xibodev.module/v2 behavioural contract.
Package modprotov2 is the wire representation of the frozen xibodev.module/v2 behavioural contract.
pathlink
Package pathlink resolves a filesystem path to its true location, following every kind of link the host supports.
Package pathlink resolves a filesystem path to its true location, following every kind of link the host supports.
pid
providers/common
Package common provides shared utilities used by multiple LLM provider implementations (openai_compat, azure, etc.).
Package common provides shared utilities used by multiple LLM provider implementations (openai_compat, azure, etc.).
providers/coretransport
Package coretransport hands the surface requests Compa's chat client makes to an llmgw-core provider.
Package coretransport hands the surface requests Compa's chat client makes to an llmgw-core provider.
updater
Package updater installs releases of Compa published on github.com/xibodev/compa.
Package updater installs releases of Compa published on github.com/xibodev/compa.
updater/updatertest
Package updatertest serves fake GitHub releases of xibodev/compa, shaped like the ones the release workflow publishes, for tests of the updater and of the endpoints built on it.
Package updatertest serves fake GitHub releases of xibodev/compa, shaped like the ones the release workflow publishes, for tests of the updater and of the endpoints built on it.
utils
Package utils provides shared, reusable algorithms.
Package utils provides shared, reusable algorithms.
view
Package view defines shared declarative product-view definitions and rendering primitives for Compa and its consumer products.
Package view defines shared declarative product-view definitions and rendering primitives for Compa and its consumer products.
web
backend command
backend/dashboardauth
Package dashboardauth provides a bcrypt-backed SQLite store for the launcher dashboard password.
Package dashboardauth provides a bcrypt-backed SQLite store for the launcher dashboard password.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL