Skip to content

v0.6.6

Choose a tag to compare

@github-actions github-actions released this 29 Oct 03:43

Changes

Run projects on a server over SSH (experimental)

One window can now use local projects and a connected server side by side. Add a project as a
local or remote project; sessions, drafts, settings, approvals, Git actions and exports stay
bound to the environment they belong to, and a server icon marks where each project lives.

The full backend runs on the server: models, tools, extensions, MCP servers and subagents use
that machine's configuration and resources. If the connection drops, work continues on the
server instead of falling back to local execution, and pending questions are restored before
you can answer them. Cached remote sessions stay readable while the connection is offline.

Connect through Settings → SSH connection by picking a local SSH alias or typing one.
Percho downloads the matching Linux runtime, shows its version and target directory, and only
installs after you confirm. Stopping is explicit: the service reports when it has actually
exited, and a crashed or unreachable service is never silently re-run.

Worth knowing: this is a first, experimental version limited to one server. It requires
non-interactive SSH authentication prepared in an external terminal (Percho does not handle
passwords or first host fingerprints), and a Linux host with Node ≥ 22.19 and glibc 2.35+.
There is no remote file browser, download or interactive terminal yet, and Windows/Linux SSH
interaction still needs platform acceptance.

Percho data gets its own directory

Local agent data now lives in ~/.percho/agent (development and Beta builds use
~/.percho/agent-dev and ~/.percho/agent-beta), separate from the Pi CLI's ~/.pi/agent.
On first launch Percho offers to copy existing data after verifying it, or to start empty.
Copies are written next to the target and only published once checked; the source is left
untouched, stored history keeps its exact bytes, and an existing target is never merged or
overwritten without an explicit decision. Startup shows progress while it scans or copies,
migrated installs go straight to the splash screen, and failed copies stay on disk for recovery.

A rebuilt composer

The message composer now keeps skill and file references where you insert them, shown as
inline capsules in the text rather than collected at the end. Queued messages, drafts,
restoration after a rejected send, images, forks, history replay and HTML export all follow the
same document, and the skill snapshot sent to the model is stored with the original text.

The composer also has a native Cut / Copy / Paste / Select All menu that applies to what you
have selected, and focus returns to the editor after inserting a selection reference. Subtle
height and spacing adjustments make a single line of input sit better in the frame.

Composition with native Windows input methods in the rebuilt composer still needs manual
verification on real hardware.

Desktop task notifications

Settings → General → Desktop task notifications (on by default) notifies you when a run
finishes while the window is in the background. Only a final success or failure counts:
cancellations, pauses, retries and stale events from an old connection are ignored. Clicking a
notification returns to that session and its environment. A test button reports honestly that
the request was submitted, since visibility still depends on system notification permissions
and Do Not Disturb.

Models from your own provider

Custom providers can fetch their model list from the configured endpoint, using the stored
credential when the key field is left empty. Context window, maximum output, reasoning and
image support are filled in from the SDK's built-in catalog when the ID is recognized, so a
picked model usually needs no manual numbers. Model IDs also offer a filtered dropdown that
shows which capabilities each candidate will bring.

Settings selects — provider protocol, subagent model and reasoning depth — now use the same
menu as the rest of the interface instead of the platform control.

Compaction before every request

Automatic compaction is now checked before each model request, including the first message,
tool continuations and retries, and it takes the earlier of your percentage threshold and the
SDK's effective margin. If a summary request fails it is retried a bounded number of times;
if compaction cannot make progress, the run pauses with its queue intact and tells you, and
your next message delivers the queued requests in order. Stopping, branching or switching
models never resumes a paused run on its own.

Startup, appearance and chat polish

  • The sidebar starts collapsed on every launch; manual toggles, grouping and width are still
    remembered.
  • Restarting lands on a blank conversation, with history one click away.
  • A missing compatible Node version on the target of an SSH connection is explained in your
    language, with the raw error kept in expandable details.
  • The empty state, project picker and composer proportions are simpler, and the app icon has
    been redrawn as a square pyramid.
  • Appearance settings use icon tabs for themes and an animated dropdown for text sizes, and
    they respect reduced motion.
  • Markdown tables drop the outer border, the column rules and the header fill, keeping only
    horizontal dividers and comfortable row spacing.
  • Fenced code blocks no longer show an extra blank line at the end, while blank lines you
    wrote yourself are kept.
  • Percho Beta and Percho Dev are separate applications with their own identity, badge and
    data directory; Beta does not use the stable update channel.

Under the hood

  • Percho runs on Pi SDK 1.4.0, with manual retry of a failed response still preserving history
    and completed tool results.
  • Beta builds are versioned (0.6.6-beta.N) and desktop packages plus both Linux runtimes are
    built from one version and commit, verified as a complete bundle, and only then published.
  • Switching to a cached remote session while SSH is offline no longer shows a load error.
  • UI plugin builds on Windows resolve the correct unpacked esbuild binary. Thanks to
    @gezerui888 for the fix. (#130)
  • A fresh development install now downloads the Electron binary in postinstall. Thanks to
    @Dafeigy. (#115)

Thanks to @worable233 for upstream model fetching and the
shared settings menus, and to our testers for checking remote, migration and notification
behavior on real machines.


Download: macOS (Apple Silicon / Intel) · Windows x64 · Linux x64 (AppImage)
— see assets below. Existing installs will offer the update from the title bar
or Settings → About (on adhoc-signed macOS builds the button opens this page
instead). On Linux, chmod +x the AppImage before first launch.

Full Changelog: v0.6.5...v0.6.6