pipaya: self-hosted LLM coding agent harness
See the codepipaya is an AI agent chat tool that runs on your own server. The server calls models and runs tools; the app connects to it from any device. Sessions, settings and API keys stay in your server's SQLite database. No cloud account needed.
ask (default), auto, readonly. You decide what may change things@name; up to 8 conversations on one screenInstall the client. On Windows and macOS the app bundles its own server (shown as "This PC", loopback only), so there is nothing else to set up.
| Client | How |
|---|---|
| Windows x64 | irm https://raw.githubusercontent.com/dohwi/pipaya/main/install.ps1 | iex |
| macOS (Apple Silicon) | curl -fsSL https://raw.githubusercontent.com/dohwi/pipaya/main/install.sh | bash -s -- client |
| Android, iOS | Files on the latest release (iOS IPA is unsigned). Needs a headless server below |
| Linux, web | cd client && bun install && bun run dev -- --host 0.0.0.0. Needs a headless server below |
Open the app and connect a model under Settings → Model connections.
Run the server on its own to use it from a phone, the web or several devices. Linux or macOS; requires git and curl, and the script asks before installing Bun.
curl -fsSL https://raw.githubusercontent.com/dohwi/pipaya/main/install.sh | bash
It registers a user service on port 8787 and prints where the access token is (~/.pipaya/token). The default listen address is your Tailscale IP if there is one, else 127.0.0.1. In the app, add http://<server address>:8787 and the token.
Other commands: install.sh update | status | uninstall. To run it in a container instead, see below.
Runs the server in a hardened container, so the agent's bash and file tools stay inside it.
docker compose up -d --build
docker compose exec pipaya cat /data/token # the auth token
Set PIPAYA_WORKSPACE_DIR (a host folder the agent may work on), PIPAYA_BIND, PIPAYA_PORT and PIPAYA_APPROVAL in a .env file. See compose.yaml.
bash is not a sandbox. Keep the policy at ask and use Docker or a VM.Report vulnerabilities privately: SECURITY.md.
cd server && bun install && bun run dev # API server
cd client && bun install && bun run dev # web client (port 1420)
Before committing:
cd server && bun run typecheck && bun run lint && bun run test
cd client && bun run check && bun run test && bun run build
Prerequisites are pinned in mise.toml (Bun 1.3, Rust stable). The server is documented in server/README.md and the logo in logo/README.md. Commits follow Conventional Commits.
pipaya: self-hosted LLM coding agent harness
See the codepipaya is an AI agent chat tool that runs on your own server. The server calls models and runs tools; the app connects to it from any device. Sessions, settings and API keys stay in your server's SQLite database. No cloud account needed.
ask (default), auto, readonly. You decide what may change things@name; up to 8 conversations on one screenInstall the client. On Windows and macOS the app bundles its own server (shown as "This PC", loopback only), so there is nothing else to set up.
| Client | How |
|---|---|
| Windows x64 | irm https://raw.githubusercontent.com/dohwi/pipaya/main/install.ps1 | iex |
| macOS (Apple Silicon) | curl -fsSL https://raw.githubusercontent.com/dohwi/pipaya/main/install.sh | bash -s -- client |
| Android, iOS | Files on the latest release (iOS IPA is unsigned). Needs a headless server below |
| Linux, web | cd client && bun install && bun run dev -- --host 0.0.0.0. Needs a headless server below |
Open the app and connect a model under Settings → Model connections.
Run the server on its own to use it from a phone, the web or several devices. Linux or macOS; requires git and curl, and the script asks before installing Bun.
curl -fsSL https://raw.githubusercontent.com/dohwi/pipaya/main/install.sh | bash
It registers a user service on port 8787 and prints where the access token is (~/.pipaya/token). The default listen address is your Tailscale IP if there is one, else 127.0.0.1. In the app, add http://<server address>:8787 and the token.
Other commands: install.sh update | status | uninstall. To run it in a container instead, see below.
Runs the server in a hardened container, so the agent's bash and file tools stay inside it.
docker compose up -d --build
docker compose exec pipaya cat /data/token # the auth token
Set PIPAYA_WORKSPACE_DIR (a host folder the agent may work on), PIPAYA_BIND, PIPAYA_PORT and PIPAYA_APPROVAL in a .env file. See compose.yaml.
bash is not a sandbox. Keep the policy at ask and use Docker or a VM.Report vulnerabilities privately: SECURITY.md.
cd server && bun install && bun run dev # API server
cd client && bun install && bun run dev # web client (port 1420)
Before committing:
cd server && bun run typecheck && bun run lint && bun run test
cd client && bun run check && bun run test && bun run build
Prerequisites are pinned in mise.toml (Bun 1.3, Rust stable). The server is documented in server/README.md and the logo in logo/README.md. Commits follow Conventional Commits.