Skip to content

Latest commit

 

History

History
172 lines (100 loc) · 6.64 KB

File metadata and controls

172 lines (100 loc) · 6.64 KB
title Screens
description Every PI-Desktop surface, captured from the running app.

Screens

Every frame below comes from the capture rig that backs the E2E test plan: the app runs with PI_DESKTOP_CAPTURE=1 against a throwaway data directory, drives itself through each surface, and writes the PNGs that scripts/publish-screenshots.py converts for this page. The screenshots therefore show the shipped shell rather than a mockup, including the empty states a fresh install starts from.

Session titles and transcripts come from the capture fixture, so the chrome is English while the sample conversation is Chinese. The 中文版本 shows the same surfaces with Chinese chrome.

Home and conversation

The home screen is the first surface a new install shows: a hero, the composer, and the sidebar with sessions grouped by project.

PI-Desktop home in the light theme

PI-Desktop home in the dark theme

The chat destination in the dark theme

A conversation streams into the transcript with a minimap rail on the right; hovering the rail magnifies the markers and previews the message under the cursor.

A conversation with the minimap rail

The minimap rail magnified under the cursor

The Composer's model × reasoning chip switches the model for the session. In the composer, / opens the command menu and @ opens the file reference menu.

The model and reasoning menu in the Composer

The slash command menu in the composer

The at-mention file menu in the composer

Work panels

An agent Write/Edit never opens the panel. The panel appears when the user opens it, or when a file, URL, browser-preview, or plan-approval artifact opens its tab. The frames below are the panels without an active workspace, which is the state a conversation starts in.

The review panel

The browser preview panel

The file browser panel

The work panel switcher menu

Destinations

The project archive and scheduled tasks are full-page destinations.

The project archive

The project archive in the dark theme

Scheduled tasks

Notifications and toasts

The notification inbox keeps a durable record of finished work, permission requests, and update notices. Toasts cover the transient end of the same range.

The notification inbox in the light theme

The notification inbox in the dark theme

The notification popover in a narrow window

Success, warning, and error toasts in the light theme

Success, warning, and error toasts in the dark theme

Global search

⌘K opens one dialog over sessions, pages, settings rows, and commands. Choosing a settings hit navigates to the tab and flashes the row.

Global search with recent sessions

Global search matching sessions

Global search matching settings rows

Global search matching destination pages

A settings hit opened from search

Global search in the dark theme

Plugins

Installed plugins, the marketplace, and the package workflow live on the plugins destination.

Installed plugins

The plugin marketplace

The plugins page menu

The per-plugin row menu

The new plugin template dialog

Extensions

MCP servers, Skills, and Subagents are managed independently of plugins, each with global or project-scoped activation.

MCP servers

The activation scope selector

The MCP server editor

Skills

Subagents

Plugin-provided subagents

The subagent editor

Subagents in the dark theme

MCP servers in the dark theme

Settings

Settings is a full-page destination with a searchable tab rail.

Basics — language, theme, and appearance

Basics in the dark theme

Model configuration provider defaults

Extensions marketplace with the catalog source picker

Extensions marketplace with a custom catalog URL

Regenerating these frames

Build the renderer, make sure target/debug/pi-desktop-host-core exists, create /tmp/codex-screens, then run the app once per locale and publish each pass:

pnpm --filter @pi-desktop/desktop build
mkdir -p /tmp/codex-screens

# English pass; append --lang=zh-CN for the Chinese pass.
cd apps/desktop && PI_DESKTOP_CAPTURE=1 PI_DESKTOP_DATA_DIR=$(mktemp -d) \
  ELECTRON_RENDERER_URL= ./node_modules/.bin/electron .

python3 scripts/publish-screenshots.py --source /tmp/codex-screens --locale en

The rig prints CAPTURE_DONE when the last scene is written.