Skip to main content
A session is one workspace-scoped conversation with p0. It owns its own chat history, its own git worktree (in most cases — see Worktrees), its own slash-command state, and its own row in the sidebar. Everything p0 does — planning a feature, editing files, opening a PR — happens inside a session.

The two modes a session can run in

When you create a session from the Start a new session page, you pick from three cards: Plan & Build, Import, and Quick Changes. Internally, those collapse into two real modes on the session row:
Mode (sidebar badge)Card on new-session pageWhat it’s for
SPECPlan & Build, ImportIdea → spec → tickets → PR, with breadcrumb phases. See Plan & Build.
CHATQuick ChangesDirect chat for a fix or a small change. See Chat mode.
The badge is rendered next to each session in the sidebar and is the easiest way to tell which mode a session was created in.

Where sessions live

The sidebar’s middle zone — between the workspace picker and the footer — is the session list. It has two tabs:
  • Sessions — your own sessions in the currently selected workspace.
  • Shared — sessions other teammates shared with you. Unread shared sessions show a blue dot and a count badge on the tab.
The active Sessions tab is split into Pinned and Recent groups, sorted newest first. A search input filters by session name and feature slug; press Cmd+F (or Ctrl+F on Windows/Linux) to focus it. Each row hovers in a context menu with:
  • Pin / Unpin session — pinned IDs are stored per workspace in localStorage under agent-pinned-sessions-{workspaceId}.
  • Rename session.
  • Copy branch name — only shown when the session has a worktree branch.
  • Archive / Unarchive.
  • Delete.

Archive and restore

You don’t have to delete a session to get it out of the way. From the row context menu, choose Archive to move it into the archived list. The sidebar header above the search input flips from SESSIONS to ARCHIVED. A small archive icon next to the search input toggles between the two views. From the archived view, the same context-menu action becomes Unarchive, which restores the session and re-selects it. Delete is separate from archive. Delete tears down the session record, cancels any active streams, kills its terminals, and removes its worktree (see Worktrees for what gets cleaned up). The archive icon next to the search input only appears once you’ve archived at least one session — a brand-new workspace won’t show it.