mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-15 10:05:14 +00:00
151 lines
4.2 KiB
Markdown
151 lines
4.2 KiB
Markdown
<p align="center">
|
|
<a href="https://shittycodingagent.ai">
|
|
<img src="https://shittycodingagent.ai/logo.svg" alt="pi logo" width="128">
|
|
</a>
|
|
</p>
|
|
<p align="center">
|
|
<a href="https://discord.com/invite/3cU7Bz4UPx"><img alt="Discord" src="https://img.shields.io/badge/discord-community-5865F2?style=flat-square&logo=discord&logoColor=white" /></a>
|
|
<a href="https://github.com/getcompanion-ai/co-mono/actions/workflows/ci.yml"><img alt="Build status" src="https://img.shields.io/github/actions/workflow/status/getcompanion-ai/co-mono/ci.yml?style=flat-square&branch=main" /></a>
|
|
</p>
|
|
<p align="center">
|
|
<a href="https://pi.dev">pi.dev</a> domain graciously donated by
|
|
<br /><br />
|
|
<a href="https://exe.dev"><img src="packages/coding-agent/docs/images/exy.png" alt="Exy mascot" width="48" /><br />exe.dev</a>
|
|
</p>
|
|
|
|
# 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 systemd service for `pi daemon` so it stays alive.
|
|
|
|
Preinstalled package sources are:
|
|
|
|
```json
|
|
[
|
|
"npm:@e9n/pi-channels",
|
|
"npm:pi-memory-md",
|
|
"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
|
|
```
|
|
|
|
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
|