Caipi
by pietz
README.md
# Caipi
**A workspace your AI builds into.** Connect Caipi to ChatGPT, Claude, or any AI app that speaks MCP. Ask for notes, a page to share, or a small app, and it lands in your own space. Open it on any device, and pick it up again from any connected chat.
- **Any AI app.** One MCP connector works in Claude, ChatGPT, Claude Code, Codex, Cursor, and anything else that supports remote MCP.
- **Plain files.** Markdown, HTML, and SQLite. Nothing proprietary, and you can take everything with you.
- **Small apps with a real database.** A folder with `index.html` and `manifest.json` becomes an app. The page calls named SQL operations you declare; it never sends raw SQL.
- **Private by default.** Share a single page, a folder, or an app at its own address when you want to.
Use it hosted at **[caipi.ai](https://caipi.ai)** (free), or run your own.
## Self-hosting
```sh
cp .env.example .env # set CAIPI_OWNER_PASSWORD and CAIPI_PUBLIC_URL
docker compose up -d
```
Your AI app connects to `https://your-domain/mcp` from its own cloud, so the server needs a public HTTPS address. A VPS behind Caddy works, and so does a machine at home behind Cloudflare Tunnel or Tailscale Funnel. The full guide, including HTTPS, a separate domain for shared pages, backups, and upgrades, is in [docs/self-hosting.md](docs/self-hosting.md).
## Development
Requires Python 3.13 and [uv](https://docs.astral.sh/uv/).
```sh
uv sync
uv run uvicorn caipi.main:app --reload --port 8765
uv run pytest
```
The app is a Starlette server (`caipi/`) with an MCP server built on the official Python SDK, SQLite or Postgres for metadata, and plain files on disk for workspaces. Pages are server-rendered with Jinja; there is no frontend build step.
## License
[AGPL-3.0](LICENSE). You can run, modify, and self-host Caipi freely. If you offer a modified version to others as a service, you must publish your changes under the same license.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues