Desktop GUI
The Desktop GUI is the native target of the GUI. It shares the same view tree as
the Web GUI but behaves like the TUI: it is a multi-project client that reads
agents from ~/.config/steelframe/projects.toml and authenticates with a
per-project bearer token.
cargo run --manifest-path gui/Cargo.toml --lockedThe GUI is not a workspace member (it has its own empty [workspace]), so it is
built and tested with --manifest-path.
Agent selection
Section titled “Agent selection”The sidebar lists the agents in projects.toml. Switch with the agent picker.
Each entry is:
[[projects]]name = "my-project"url = "https://my-project.example.com"token = "…"operator = "your-github-login"See Multi-project for the registry and Auth for tokens.
Auth and re-authentication
Section titled “Auth and re-authentication”Desktop has no cookie session. It sends the project token as
Authorization: Bearer … and the operator as X-Auth-User.
If an agent rejects the saved token (HTTP 401), the shell shows a re-authenticate gate instead of raw errors:
- Open sign-in page opens
…/api/auth/login?desktop=1in your browser. - After GitHub sign-in the browser shows a session token — paste it into the gate and choose Save token.
- The token is written to
projects.tomland the agent is re-probed.
The probe uses GET /api/status, so a local agent with auth disabled is not
mistaken for a rejected token.
What it can do
Section titled “What it can do”Same surfaces as the Web GUI: Dashboard, Chat, Board, Config, and Audit. The
Desktop shell also reconnects /ws/stream automatically and refetches the
visible surface when the connection drops.