pi logo

Discord Build status

pi.dev domain graciously donated by

Exy mascot
exe.dev

# pi > **Looking for the pi coding agent?** See **[packages/coding-agent](packages/coding-agent)** for installation and usage. Tools for building AI agents and running the pi coding agent. ## Packages | Package | Description | | ---------------------------------------------------------- | ---------------------------------------------------------------- | | **[@mariozechner/pi-ai](packages/ai)** | Unified multi-provider LLM API (OpenAI, Anthropic, Google, etc.) | | **[@mariozechner/pi-agent-core](packages/agent)** | Agent runtime with tool calling and state management | | **[@mariozechner/pi-coding-agent](packages/coding-agent)** | Interactive coding agent CLI | | **[@mariozechner/pi-tui](packages/tui)** | Terminal UI library with differential rendering | | **[@mariozechner/pi-web-ui](packages/web-ui)** | Web components for AI chat interfaces | ## Contributing See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines and [AGENTS.md](AGENTS.md) for project-specific rules (for both humans and agents). ## Install ### Public (binary) Use this for users on production machines where you don't want to expose source. ```bash curl -fsSL https://raw.githubusercontent.com/getcompanion-ai/co-mono/main/public-install.sh | bash ``` Install everything and keep it always-on (recommended for new devices): ```bash curl -fsSL https://raw.githubusercontent.com/getcompanion-ai/co-mono/main/public-install.sh | bash -s -- --daemon --start ``` This installer: - Downloads the latest release (or falls back to source when needed), - writes `~/.local/bin/pi` launcher, - populates `~/.pi/agent/settings.json` with package list, - installs packages (if `npm` is available), - and can install a user service for `pi daemon` so it stays alive (`systemd` on Linux, `launchd` on macOS). Preinstalled package sources are: ```json ["npm:@e9n/pi-channels", "npm:pi-teams"] ``` If `npm` is available, it also installs these packages during install. If no release asset is found, the installer falls back to source. ```bash PI_FALLBACK_TO_SOURCE=0 \ curl -fsSL https://raw.githubusercontent.com/getcompanion-ai/co-mono/main/public-install.sh | bash -s -- --daemon --start ``` `public-install.sh` options: ```bash curl -fsSL https://raw.githubusercontent.com/getcompanion-ai/co-mono/main/public-install.sh | bash -s -- --help ``` ### Local (source) ```bash git clone https://github.com/getcompanion-ai/co-mono.git cd co-mono ./install.sh ``` Run: ```bash ./pi ``` Run in background with extensions active: ```bash ./pi daemon ``` For a user systemd setup, create `~/.config/systemd/user/pi.service` with: ```ini [Unit] Description=pi daemon After=network-online.target [Service] Type=simple Environment=CO_MONO_AGENT_DIR=%h/.pi/agent Environment=PI_CODING_AGENT_DIR=%h/.pi/agent ExecStart=/absolute/path/to/repo/pi daemon Restart=always RestartSec=5 [Install] WantedBy=default.target ``` Then enable: ```bash systemctl --user daemon-reload systemctl --user enable --now pi ``` On macOS, `public-install.sh --daemon --start` now provisions a per-user `launchd` agent automatically. Optional: ```bash npm run build # build all packages npm run check # lint/format/typecheck ``` ## Development ```bash npm install # Install all dependencies npm run build # Build all packages npm run check # Lint, format, and type check ./test.sh # Run tests (skips LLM-dependent tests without API keys) ./pi-test.sh # Run pi from sources (must be run from repo root) ``` > **Note:** `npm run check` requires `npm run build` to be run first. The web-ui package uses `tsc` which needs compiled `.d.ts` files from dependencies. ## License MIT