dohwi/pipaya

pipaya: self-hosted LLM coding agent harness

TypeScript

1

224 commits

updated Oct 19, 2026

See the code

See what people are saying

SourceMessageScoreDate

I built pipaya — a self-hosted AI coding agent you can use across your devices (r/SideProject)

Hey everyone! I've been building **pipaya**, an open-source, self-hosted AI coding agent, and I'd love to get some feedback from other developers. The idea is to have an AI coding agent that runs on your own machine or server, connects to the LLM provider of your choice, and can be accessed from…

1

Oct 18, 2026

README

pipaya

English · 한국어

Bun Fastify Svelte Tauri TypeScript SQLite Docker Sandbox AGPL-3.0 Discord

pipaya 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.

pipaya on desktop and mobile

Features

  • Agent with 10 built-in tools: read, write, edit, ls, grep, bash, ask_user, delegate, peer_send, peer_read
  • Approval policies: ask (default), auto, readonly. You decide what may change things
  • Any model: built-in providers, local servers (Ollama, LM Studio, llama.cpp, vLLM) or your own endpoint
  • Many devices, one conversation: Windows, macOS, Android, iOS and web, with notifications and mobile push
  • Teamwork and split view: hand work to other sessions with @name; up to 8 conversations on one screen
  • Extensible: AGENTS.md, skills, templates, sub-agents, server and client extensions

Quick install

Install 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.

ClientHow
Windows x64irm 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, iOSFiles on the latest release (iOS IPA is unsigned). Needs a headless server below
Linux, webcd 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.

Headless server

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.

Server in Docker (Sandbox)

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.

Security

  • The token grants administrator access. Reach the server over Tailscale or HTTPS, never the open internet.
  • API keys are stored unencrypted in the server database.
  • The file tools can read outside the working folder and bash is not a sandbox. Keep the policy at ask and use Docker or a VM.

Report vulnerabilities privately: SECURITY.md.

Development

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.

License

AGPL-3.0

agent-harness
ai-agent
ai-coding
coding-agent
llm
opensource
self-hosted
typescript

dohwi/pipaya

pipaya: self-hosted LLM coding agent harness

TypeScript

1

224 commits

updated Oct 19, 2026

See the code

See what people are saying

SourceMessageScoreDate

I built pipaya — a self-hosted AI coding agent you can use across your devices (r/SideProject)

Hey everyone! I've been building **pipaya**, an open-source, self-hosted AI coding agent, and I'd love to get some feedback from other developers. The idea is to have an AI coding agent that runs on your own machine or server, connects to the LLM provider of your choice, and can be accessed from…

1

Oct 18, 2026

README

pipaya

English · 한국어

Bun Fastify Svelte Tauri TypeScript SQLite Docker Sandbox AGPL-3.0 Discord

pipaya 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.

pipaya on desktop and mobile

Features

  • Agent with 10 built-in tools: read, write, edit, ls, grep, bash, ask_user, delegate, peer_send, peer_read
  • Approval policies: ask (default), auto, readonly. You decide what may change things
  • Any model: built-in providers, local servers (Ollama, LM Studio, llama.cpp, vLLM) or your own endpoint
  • Many devices, one conversation: Windows, macOS, Android, iOS and web, with notifications and mobile push
  • Teamwork and split view: hand work to other sessions with @name; up to 8 conversations on one screen
  • Extensible: AGENTS.md, skills, templates, sub-agents, server and client extensions

Quick install

Install 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.

ClientHow
Windows x64irm 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, iOSFiles on the latest release (iOS IPA is unsigned). Needs a headless server below
Linux, webcd 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.

Headless server

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.

Server in Docker (Sandbox)

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.

Security

  • The token grants administrator access. Reach the server over Tailscale or HTTPS, never the open internet.
  • API keys are stored unencrypted in the server database.
  • The file tools can read outside the working folder and bash is not a sandbox. Keep the policy at ask and use Docker or a VM.

Report vulnerabilities privately: SECURITY.md.

Development

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.

License

AGPL-3.0

agent-harness
ai-agent
ai-coding
coding-agent
llm
opensource
self-hosted
typescript