Back to surfaces Linux · Wayland · macOS

Desktop companion

A small native app (Rust and Slint) for the owner of a daemon. It owns no session state: the daemon runs the sessions and the companion shows them and starts new ones.

Shipped · v0.1.4
Screenshots

What the app shows

Captured from an isolated daemon filled with synthetic sessions, not from real work.

Sidebar with sessions that need the owner listed first, followed by groups of working and idle agent sessions
Sidebar
State view with Needs you, Working and Idle sections
State view
A project chip and the Ended chip active, showing only that project sessions
Filters
Action icons shown on a hovered session row
Row actions
Session details view with copyable id, host, agent, state and working directory
Session detail
New session dialog with host, project, agent and prompt fields
New session
Assistant dialog with request and intent fields
Assistant
Setup screen after the release was downloaded and verified, showing checksum evidence and what the installer will write
Verified install
Features

What it does

Live state and attention

Every row shows the agent, its state (working, idle, needs owner, ended) and its Work link. Sessions that need you sit in a Needs you section at the top. An idle session counts as idle only after a configurable threshold.

Tray badge

The tray icon carries a badge with the number of sessions that need you, colored by the most urgent state. Its menu attaches to them directly. A Linux tray needs a StatusNotifierItem host.

Groups by drag and drop

Drag rows and group headers into your own groups. Groups can be renamed, collapsed and deleted. The layout is stored per user, never in the daemon.

Filters and search

Chips narrow the list by project and by state. A text filter (Ctrl+F, or Cmd+F on macOS) searches names. Ended sessions stay hidden until their chip is on.

Session detail

The details view lists the session id, host, agent, state, working directory, project and Work metadata, each with a copy button. An ended session that the daemon can resume gets a Resume action.

New session and Assistant

Both dialogs are separate processes, so they can also be bound to a desktop keybinding with pohunek-companion new-session or assistant.

Other hosts

The companion can follow daemons on other machines over the NetBird overlay. A host that drops off keeps its last rows dimmed and marked unreachable.

Install from the app

Without a daemon the window shows a setup screen. On Linux x86_64 its Install button downloads the matching Pohunek release from GitHub, checks the sha256 and attestation when gh is signed in, shows what the installer will write, and runs it only after you confirm.

Install

Get it running

Linux x86_64

shell
v=0.1.4
a=pohunek-companion-$v-x86_64-unknown-linux-gnu.tar.gz
gh release download v$v -R pohunekd/pohunek-companion -p "$a*"
sha256sum -c $a.sha256
gh attestation verify $a --repo pohunekd/pohunek-companion
tar -xzf $a && ./pohunek-companion-$v-x86_64-unknown-linux-gnu/pohunek-companion desktop install

macOS (Apple Silicon)

shell
brew install zajca/pohunek/pohunek-companion
Notes

Every surface is a client of the same public CLI and protocol. See the other surfaces or the docs. Project home: https://github.com/zajca/pohunek.