Dish

A native desktop workbench for the Pi coding agent.

Dish speaks the Pi CLI's JSON-RPC protocol over stdio and renders the session in a GPU-accelerated window: transcript, tool-call inspector, session history, workspace navigation, themes and reduced-motion support. No browser, no webview, no embedded Node runtime. Everything runs on your machine — no backend, no account, no telemetry.

Download the latest release Source on GitHub

Download

All builds are produced from tagged commits by GitHub Actions, and every file publishes a matching .sha256.

Windows

Linux

The .deb and .rpm packages install the binary as dish-pi, because dish is already taken by an unrelated package in both distributions.

Install

The portable tarball needs no package manager and no root. It installs into ~/.local/bin:

tar xzf dish-*-linux-x86_64.tar.gz
cd dish-*-linux-x86_64/
./install.sh

Dish drives the Pi CLI, so Pi has to be installed and on your PATH (this needs Node.js):

npm install -g @earendil-works/pi-coding-agent

Verify a download

sha256sum -c dish-*.tar.gz.sha256

On Windows, check the checksum and then the signature (see below).

Code signing policy

Free code signing provided by SignPath.io, certificate by SignPath Foundation.

The Windows installers and the dish.exe inside them carry an Authenticode signature, so you can confirm where the binary came from before running it. Signing happens in the release workflow on GitHub-hosted runners, and every signing request is approved by a maintainer before the certificate is used.

To verify a download, compare it against the published .sha256, then check the signature on the installer (or on the installed dish.exe):

Get-AuthenticodeSignature .\dish-*-setup.exe | Format-List
signtool verify /pa /v .\dish-*.msi

Linux builds are not Authenticode-signed, because that mechanism does not exist on the platform; integrity comes from the published SHA-256 and from the minisign-signed update manifest that the app verifies before offering an update. The full policy, including team roles, is in docs/code-signing.md.

Build from source

git clone https://github.com/cleisonsantos/dish
cd dish
cargo build --release --locked