Skip to content

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.

Terminal window
cargo run --manifest-path gui/Cargo.toml --locked

The GUI is not a workspace member (it has its own empty [workspace]), so it is built and tested with --manifest-path.

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.

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:

  1. Open sign-in page opens …/api/auth/login?desktop=1 in your browser.
  2. After GitHub sign-in the browser shows a session token — paste it into the gate and choose Save token.
  3. The token is written to projects.toml and 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.

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.