A self-hosted chat interface for the Pi coding agent.
One Go binary. Chat in the browser while Pi reads files, runs commands and draws charts in a workspace folder.
For each chat Harf runs pi --mode rpc and streams Pi's answer to the browser. Pi works in a workspace folder, so a chat can do real work, not just talk.
- Any model Pi can use: pick one per chat; streaming replies with Markdown, math and highlighted code.
- Steps: every file Pi reads or writes and every command it runs shows in the reply.
- Chats: stop, edit and resend, regenerate, search, pin, rename, export as Markdown.
- Agents: saved instructions, model, thinking level and allowed tools; or ask in a chat and Pi builds one.
- MCP servers: add a command or a URL in Settings and Pi uses its tools.
- Plugins: attachments up to 100 MB, workspace images, charts, sandboxed HTML pages, image generation through OpenRouter.
- Command palette, light and dark themes, token and cost stats under each reply, phone layout.
- Docker image for
linux/amd64andlinux/arm64.
Install Pi 1.4.0 and sign in (run pi, then /login) or set a provider key, then download Harf and run it:
# macOS on Apple silicon; for others use darwin_amd64, linux_amd64 or linux_arm64
curl -fsSL https://github.com/aktech/harf/releases/latest/download/harf_darwin_arm64.tar.gz | tar -xz
./harf_darwin_arm64/harf # http://127.0.0.1:8080Each release lists the archives' SHA-256 hashes in SHA256SUMS.
Or with Docker, which has Pi inside, with your provider keys in keys.env as NAME=value lines (which names):
docker run -p 8080:8080 --env-file keys.env -v harf:/home/user ghcr.io/aktech/harf:mainOr from source: make build && ./bin/harf.
Warning
Harf has no sign-in of its own, and Pi runs commands for whoever can reach it. Keep it on localhost, or behind an authenticating reverse proxy. See security.
make test # go vet, Go tests and the web tests (node --test)
make run # build and run on http://127.0.0.1:8080The web UI is plain JavaScript modules in web/, with no build step.
- Configuration: environment variables, MCP servers, plugins
- Deploy with Docker: image tags, volumes, building the image
- Security: no sign-in, command execution, MCP servers,
/api/meheaders
Apache License 2.0. The libraries, fonts, logos and icons in web/vendor/, web/fonts/, web/logos/ and web/icons/ keep their own licences, which sit next to them.