Releases: Jaxton07/percho
Release list
v0.3.0
| Platform | Download |
|---|---|
| macOS (Apple Silicon) | percho-mac-arm64.dmg |
| macOS (Intel) | percho-mac-x64.dmg |
| Windows | percho-windows-x64.exe (installer) or percho-windows-x64.zip |
Ad-hoc signed (no Developer ID). On macOS, if Gatekeeper blocks the app, right-click it and choose Open (or run
xattr -cr "/Applications/Percho.app"). macOS users can also install/update via Homebrew:brew install --cask jaxton07/tap/percho(installed via brew has no Gatekeeper prompt). Windows builds update automatically in-app.
v0.2.4
What's new
Compaction: divider UI, expandable summary, and safe send gating
Context-compaction status is now shown as a slim ──── divider instead of a card, matching the style of codex/opencode:
- Running / cancelled / failed states render as a one-line divider; the failure note is amber (reminder-level) rather than red, since most "failures" are benign (e.g. nothing to compact)
- When compaction completes with a summary, a Summary ▾ toggle expands it inline — the full text no longer takes up three clamped lines
- The SDK prefixes compaction errors with
Compaction failed:, which duplicated our own "Compaction failed" label — that prefix is now stripped before display
No more silently dropped messages while the agent runs
session.prompt() waits for the whole run to finish before resolving, which left the composer stuck in its sending state and caused queued follow-up messages to be silently dropped by the resend guard. PiBackend.prompt now resolves as soon as the SDK accepts the prompt (preflight ack), while real preflight errors (no model / no API key / compaction in progress) still reject and surface in the UI. Run-phase errors continue to stream through the event feed.
Composer feedback and gating
- Sending while a compaction is in progress is now blocked up front with an amber "Compacting context — send when it finishes" notice, and the input placeholder switches to "Compacting context…" — your draft is preserved instead of being lost to a backend rejection
- Feedback messages now have an info/warn tone: warnings (queue full, missing session name, compaction in progress) show in amber instead of green
Dev-only
- The dev build redirects Electron
userDatato a-devsuffix directory, so the dev app no longer sharestabs.json/ UI state with the installed release and won't resurrect release sessions in the sidebar
Download
| Platform | File |
|---|---|
| macOS (Apple Silicon) | pi-desktop-mac-arm64.dmg |
| macOS (Intel) | pi-desktop-mac-x64.dmg |
| Windows | pi-desktop-windows-x64.exe (installer) or pi-desktop-windows-x64.zip |
macOS users can also brew install --cask jaxton07/tap/pi-desktop.
Ad-hoc signed (no Developer ID). On macOS, if Gatekeeper blocks the app, right-click it and choose Open (or run
xattr -cr "/Applications/Pi Desktop.app"as a fallback). Windows may still show a SmartScreen prompt — click "More info" → "Run anyway".
Full Changelog: v0.2.3...v0.2.4
Important
This is the last release under the name pi-desktop. The project has been renamed to Percho. In-app auto-update cannot carry over to the renamed app — please download Percho manually from the latest release. Your sessions and settings in ~/.pi/agent are unaffected. Homebrew users: brew uninstall --cask pi-desktop && brew install --cask jaxton07/tap/percho (once the first Percho release is out).
v0.2.3
What's new
Settings: provider catalog no longer hits the network on open
Previously every visit to the Providers settings page forced a live fetch of the pi.dev model catalog — and since the SDK's directory request has no built-in timeout, a flaky network could leave the panel stuck on its loading spinner forever.
- The provider list now loads purely from local data: the SDK's built-in catalog plus the cached
models-store.json. Opening settings is instant and works offline - A new refresh button (top-right of the panel) explicitly fetches the latest catalog from pi.dev, with a 15s timeout fallback — on timeout it surfaces a clear "check your network" error instead of hanging
- After a successful refresh, the model picker's data is re-synced so new models show up in the composer right away
- The permission-gate switch in General settings now loads independently, no longer waiting on (or blocked by) the provider list
UI polish
- Removed raw filesystem-path tooltips that leaked on hover: subagent run rows, project sidebar items, and the compaction summary card
- Tamed markstream's default hover styles in rendered markdown — code-block header buttons, footnote links and mermaid controls no longer jump to mismatched colors; the overrides now match the app's design in both light and dark themes
Download
| Platform | File |
|---|---|
| macOS (Apple Silicon) | pi-desktop-mac-arm64.dmg |
| macOS (Intel) | pi-desktop-mac-x64.dmg |
| Windows | pi-desktop-windows-x64.exe (installer) or pi-desktop-windows-x64.zip |
macOS users can also brew install --cask jaxton07/tap/pi-desktop.
Ad-hoc signed (no Developer ID). On macOS, if Gatekeeper blocks the app, right-click it and choose Open (or run
xattr -cr "/Applications/Pi Desktop.app"as a fallback). Windows may still show a SmartScreen prompt — click "More info" → "Run anyway".
Full Changelog: v0.2.2...v0.2.3
v0.2.2
What's new
Live activity indicator while tools run
The chat no longer looks frozen while the agent works. Previously, once the assistant's text appeared, the status row flipped to "Worked" and stayed silent during long-running tool calls (Bash commands, web fetches) and subagent fan-outs — even though work was still in progress.
- The Working status row now stays lit for as long as any tool or subagent is executing, with a live preview of the latest activity (tool name + arguments summary) next to it
- A single shimmer band sweeps from the Working label to the tool name; running tool calls inside the collapsed group get the same highlight
- Subagent runs render in real time: a row with a pulsing dot and the agent name appears the moment a subagent is dispatched, not just after it finishes
Layout fixes
- Long Bash commands are truncated to a single line again (with a fade at the end) — streamed arguments were never re-measured, which pushed rows past the chat width and caused a horizontal scrollbar
- The activity preview is now inline in the Working title row, so chat content no longer shifts up and down by a line as the preview appears and disappears
Download
| Platform | File |
|---|---|
| macOS (Apple Silicon) | pi-desktop-mac-arm64.dmg |
| macOS (Intel) | pi-desktop-mac-x64.dmg |
| Windows | pi-desktop-windows-x64.exe (installer) or pi-desktop-windows-x64.zip |
macOS users can also brew install --cask jaxton07/tap/pi-desktop.
Ad-hoc signed (no Developer ID). On macOS, if Gatekeeper blocks the app, right-click it and choose Open (or run
xattr -cr "/Applications/Pi Desktop.app"as a fallback). Windows may still show a SmartScreen prompt — click "More info" → "Run anyway".
Full Changelog: v0.2.1...v0.2.2
v0.2.1
What's new
Install via Homebrew
macOS users can now install and upgrade with Homebrew:
brew install --cask jaxton07/tap/pi-desktopThe cask is updated automatically on every release. Apps installed through Homebrew don't carry the quarantine attribute, so they open right away despite the ad-hoc signature — no Gatekeeper workaround needed. Future upgrades are just brew upgrade.
Manual-download fallback for unsigned mac builds
macOS can no longer strand you on a broken auto-install. Because ad-hoc signed builds fail Squirrel's code-signature check during quitAndInstall (the update would silently never apply), the app now detects its signature at startup and adapts:
- Unsigned/ad-hoc builds: clicking the update button or "Check for updates" takes you straight to the GitHub release page to download the new version manually
- Builds that can self-install (Windows, and future properly signed mac builds): the in-app download progress and "Restart" pill flow is unchanged
Download
| Platform | File |
|---|---|
| macOS (Apple Silicon) | pi-desktop-mac-arm64.dmg |
| macOS (Intel) | pi-desktop-mac-x64.dmg |
| Windows | pi-desktop-windows-x64.exe (installer) or pi-desktop-windows-x64.zip |
macOS users can also brew install --cask jaxton07/tap/pi-desktop.
Ad-hoc signed (no Developer ID). On macOS, if Gatekeeper blocks the app, right-click it and choose Open (or run
xattr -cr "/Applications/Pi Desktop.app"as a fallback). Windows may still show a SmartScreen prompt — click "More info" → "Run anyway".
Full Changelog: v0.2.0...v0.2.1
v0.2.0
What's new
Splash screen: particle swarm with a ripple exit
A new startup experience in black-and-white matte minimalism:
- Idle: a swarm of 64 softly drifting particles (golden-angle spiral, procedurally generated) gathers around the "pi" wordmark, with gentle sonar ripples passing through — white rings on the ink swarm in light mode, ink rings on the glowing swarm in dark mode
- Exit: the wordmark lifts away, particles burst outward radially off the screen, and a dual ripple (main ring + a fainter echo ring) sweeps across the window. The screen settles to the pure theme color, then the workspace fades in — sequential, never overlapping
- Theme-aware from the very first frame: the resolved theme is passed from the main process to the renderer before first paint, so there's no white flash in dark mode
- Plays at most once per app run (reopening the window via macOS activate won't replay it), with a 2.5s minimum / 4.5s fallback duration, and degrades to a simple fade under
prefers-reduced-motion
Dev-mode data isolation
Dev and preview builds now redirect PI_CODING_AGENT_DIR to ~/.pi/agent-dev/ (seeded once from your small config files), so development never writes to your real ~/.pi/agent/ sessions and settings.
Download
| Platform | File |
|---|---|
| macOS (Apple Silicon) | pi-desktop-mac-arm64.dmg |
| macOS (Intel) | pi-desktop-mac-x64.dmg |
| Windows | pi-desktop-windows-x64.exe (installer) or pi-desktop-windows-x64.zip |
Ad-hoc signed (no Developer ID). On macOS, if Gatekeeper blocks the app, right-click it and choose Open (or run
xattr -cr "/Applications/Pi Desktop.app"as a fallback). Windows may still show a SmartScreen prompt — click "More info" → "Run anyway".
Full Changelog: v0.1.9...v0.2.0
v0.1.9
What's new
Smarter auto-update: no surprise downloads
The app no longer silently downloads new versions in the background. Updates are now fully user-controlled:
- When a new version is found, a light-blue update icon with a badge appears in the top bar — click it to start the download
- A progress ring shows while the update downloads
- Once downloaded, a "Restart" pill appears next to the update icon — click it to install and restart the app, so an update never interrupts a running task
- If a download fails, the update entry stays so you can simply click again to retry
Update UI polish
- Update indicators (icon, badge, progress ring, restart pill) now use a light-blue accent instead of purple
Download
| Platform | File |
|---|---|
| macOS (Apple Silicon) | pi-desktop-mac-arm64.dmg |
| macOS (Intel) | pi-desktop-mac-x64.dmg |
| Windows | pi-desktop-windows-x64.exe (installer) or pi-desktop-windows-x64.zip |
Ad-hoc signed (no Developer ID). On macOS, if Gatekeeper blocks the app, right-click it and choose Open (or run
xattr -cr "/Applications/Pi Desktop.app"as a fallback). Windows may still show a SmartScreen prompt — click "More info" → "Run anyway".
Full Changelog: https://github.com/Jaxton07/pi-desktop/commits/v0.1.9
v0.1.8
What's new
Todo tool & floating progress panel
Agents can now keep a visible task list while working on complex, multi-step jobs (long refactors, multi-file features, investigations):
- New
todotool lets the agent maintain a task list with the same full-replacement protocol as Claude Code — call with the complete updated list each time - A compact pill floats at the top-right of the chat: completed count, the current in-progress task, and a thin progress bar
- Click the pill to expand the full list (pending / in-progress spinner / completed with strikethrough); expand and collapse use a smooth drawer animation, and the current task in the pill slides upward when it changes
- The panel is per-session and survives switching sessions
Task list survives context compaction
When the conversation history is compacted, the current task list is automatically re-injected into the agent's context on the next turn — the agent doesn't lose track of what it was doing. The panel data is also restored when reopening a session.
Chat polish
- Copy and fork buttons under assistant messages are now always visible (previously only on hover), with tighter spacing
Download
| Platform | File |
|---|---|
| macOS (Apple Silicon) | pi-desktop-mac-arm64.dmg |
| macOS (Intel) | pi-desktop-mac-x64.dmg |
| Windows | pi-desktop-windows-x64.exe (installer) or pi-desktop-windows-x64.zip |
Ad-hoc signed (no Developer ID). On macOS, if Gatekeeper blocks the app, right-click it and choose Open (or run
xattr -cr "/Applications/Pi Desktop.app"as a fallback). Windows may still show a SmartScreen prompt — click "More info" → "Run anyway".
Full Changelog: https://github.com/Jaxton07/pi-desktop/commits/v0.1.8
v0.1.7
What's new
Auto-update
The app now updates itself — no more re-downloading DMGs for every release:
- Checks for new versions in the background (10s after launch, then every 2 hours); updates download automatically
- A circular progress button appears in the tab bar while downloading — click Restart & install when it's ready
- Manual check available in Settings → About → Check for updates
- Updates install in-place without triggering Gatekeeper, so future releases skip macOS' download warnings entirely
Ad-hoc signing on macOS
Builds are now ad-hoc signed end-to-end. Gatekeeper no longer reports the app as "damaged" (which had no bypass and forced the xattr -cr terminal command after every install). Instead macOS shows the regular unidentified developer dialog, which is bypassable with a right-click → Open on first launch of each version.
Download
| Platform | File |
|---|---|
| macOS (Apple Silicon) | pi-desktop-mac-arm64.dmg |
| macOS (Intel) | pi-desktop-mac-x64.dmg |
| Windows | pi-desktop-windows-x64.exe (installer) or pi-desktop-windows-x64.zip |
Ad-hoc signed (no Developer ID). On macOS, if Gatekeeper blocks the app, right-click it and choose Open (or run
xattr -cr "/Applications/Pi Desktop.app"as a fallback). Windows may still show a SmartScreen prompt — click "More info" → "Run anyway".
Full Changelog: https://github.com/Jaxton07/pi-desktop/commits/v0.1.7
v0.1.6
What's new
Community package catalog in settings
The Extensions panel in Settings now has a Browse tab backed by the pi.dev package catalog (5,400+ extensions, skills, prompt templates and themes):
- Fuzzy search with type filters (extension / skill / prompt / theme), sorted by monthly downloads
- One-click Install from the panel, with installed/uninstalling states and inline two-step uninstall confirmation
- Installed extensions hot-reload into running sessions — no restart needed
Subagent run rows
When an extension delegates to subagents (e.g. pi-subagents), each subagent run now appears as its own row in the conversation instead of hiding inside the collapsed tool card:
- Working state with a pulsing dot animation, done/failed states on completion
- Click a finished subagent row to open its full session in a new tab
- Works for foreground, workflow and background (subagent_wait) runs, via a structural convention that any community extension can follow
Packaging
- Bundle the pi SDK docs/examples/README into the app (
resources/pi-package), so agent tools can read them in packaged builds