Cocurdex

Desktop workspace

How the Cocurdex desktop shell organizes sessions, chat, Git review, worktrees, terminal, editor, browser preview, PDF reader, slide decks, session fork, and keyboard shortcuts.

Cocurdex ships as a native desktop app (Electron). The goal is a single workspace for multi-agent coding — not a thin browser wrapper around one chat thread.

Surfaces

Typical peers in the shell:

SurfaceRole
SessionsTrack parallel agent runs and which one needs attention
ChatSteer the active agent; one pane among several
TerminalIntegrated PTY for commands and agent-driven shell work
EditorInspect and edit project files without leaving the app
GitDiff, stage, and commit workspace changes; review what each agent turn changed
Browser previewTabbed preview of your dev server; Design Mode annotations go straight to chat
PDF readerRead PDFs from the file tree with outline, thumbnails, search, bookmarks, and highlights
WorktreesManaged git worktrees for isolated session work (Worktree checkbox on new sessions; inventory under Settings → Worktrees)
Notes / issuesApp-owned product data (see Notes and issues)
DecksApp-owned slide decks: edit, present, and export (see Slide decks)
Team panelTeammates of the current lead session, their status, and replies (see Teams)
Script runsProposed scripts awaiting approval and running subagents (see Script runs)

The right panel can float over chat or, with its pin button, dock beside it so the chat column shrinks instead; the choice is remembered. Close editor panel hides it. Hover an icon-only button to see its action name. On Windows and Linux the window uses themed native window controls in the title bar.

Chat layout is chosen in Settings → General → Chat layout and restored on next launch:

LayoutBehavior
Center columnChat is the main column
Floating dockChat floats over the editor
Pinned right railChat docks beside the editor

When chat is closed in floating or pinned layout, Hide chat button when closed removes the bottom-right button; open chat again with the chat-dock shortcut. HTML generated in replies can preview in the chat area or the sidebar browser.

Exact layout can change during pre-release; the product model stays multi-pane. No single pane should monopolize the product — chat is a peer, not the whole app.

You can also open the same host in a browser on this computer, or pair another device.

Sessions and attention

You can run more than one session without merging transcripts. The shell derives a primary state so you can scan who needs you:

KindExamplesWhat to do
Needs youPending approval, awaiting input, plan readyOpen the session and resolve the permission, question, or plan
BusyWorking, connecting, monitoringWait or steer if the runtime supports it
ResultCompleted / unreadReview output, then mark settled by visiting or continuing
IdleReadyAvailable for a new prompt

Underlying session status values include idle, running, error, and exited. UI copy stays neutral (“Thinking”, “Using tools”, “Ready for follow-up”) rather than anthropomorphic flourish.

Session list

The sidebar Group and filter sessions menu controls how sessions are listed:

ControlOptions
Group byWorkspace, status, agent, last updated, or no grouping
Sort byRecent activity, created time, or title
FiltersAgent, status, environment (local vs worktree), source, unread
Sessions per groupCap how many root sessions show; Show more reveals the rest
Compact modeDenser rows

Pin keeps a session at the top of the list. Archive hides one session; Archive sessions on a group moves matching sessions to Settings → Archived sessions, skipping pinned, running, and waiting ones — Undo restores them. Nested subagent sessions expand and collapse in the tree.

Execution tree

Execution tree on a session's sidebar menu shows runs, tool calls, subagents, and pending approvals for the session. Expand a row to see what it contains; select a tool call to read its output. Issues only filters to failed calls and waiting approvals. Some provider-native subagents are not observable.

Fork and switch agent

Fork session in the sidebar starts a new session from the current one. On a user message, Fork from here starts the fork through that prompt — useful to try a different path without losing the original. The new title gets a (fork) suffix.

While a session is not running, pick a different agent in the composer: Cocurdex hands conversation context to the new runtime. Claude Agent and Codex can fork onto the provider's own thread; a marker in the transcript can Show / Hide handed-off context. Pi sidebar Chat conversations cannot be forked or switched this way.

Composer

The composer starts every session and every follow-up:

InputDoes
/Pick a skill or an agent-advertised slash command
@Mention workspace files as context
+ → Skill / Issue / NoteInsert a skill, or attach an issue or note as a pill; the agent gets its full content in the prompt
Model menuAgent, provider, model, reasoning effort, permission mode; Save as role stores the setup as an agent role
Worktree checkbox (new session)Run the session in a fresh managed worktree

Follow-ups sent while a turn runs are steered into it when the agent supports steering, or queued until the turn finishes (Settings → General → Follow-up behavior). When a turn settles, its tool calls fold behind a label that shows how long the turn worked; expand it to review every step.

Settings → General → Transcript view chooses how much of that work is visible: Concise (final replies only), Standard (folded summaries), or Verbose (everything expanded).

In a long transcript, a prompt rail jumps to each user message; Jump to latest and Jump to top skip the scroll. The context-window meter on a reply shows token usage; when the runtime compacts context, the transcript records that it happened.

Markdown links in replies that point at files open in the editor, including GitHub-style line anchors such as src/app.ts#L32 or #L10-L20. HTML in replies can be previewed or shown as source; Mermaid diagrams offer Open preview and Download SVG.

Worktrees

Tick Worktree on the new-session composer and Cocurdex creates an isolated checkout when you send: it names the branch cocurdex/<id> and places the checkout under the worktree root. Alternatively, pick an existing worktree from the picker (disabled while the checkbox is on).

  • The workspace's setup script runs in the background. The composer does not block; the first turn waits for setup so its changes are not attributed to the agent, and progress shows as a Prepare worktree row. Stop abandons the wait without killing the script; a failed setup is reported once and the next send continues without it.
  • Workspace actions (for example Dev server) appear in the session's … menu and run in a new terminal tab.
  • Removing a worktree runs the cleanup script, and deletes the app-created branch when it has already been merged.

Reviewing changes

After a turn that changed files finishes, its transcript shows an Edited N files card with each file marked added, modified, deleted, or renamed. Review opens the turn in the Git panel, either for the whole turn or an individual file. Undo restores files to their pre-turn state; it is blocked if a file changed after the turn, unavailable when a file exceeds the checkpoint size or quota, and disabled while the turn is still streaming.

Open the Git tab in the right panel's view switcher. The Diff source menu defaults to Uncommitted and also offers Staged, Unstaged, Committed (choose a commit), Branch (compare source and target branches), and Turn (a session turn's captured snapshot). A turn snapshot can expire.

Stage, unstage, and discard actions are available per file or for all files only in the live Uncommitted, Staged, and Unstaged scopes. Discard cannot be undone. The panel supports split or unified diffs, line wrapping, showing the full file, tree or list file views, and filtering changed files. If the workspace is not in a Git repository, the panel says so.

The commit popover offers Commit and Commit and push. Leave the message blank or choose Generate commit message to have the model selected in Settings → Git write it.

Panes and windows

  • A session pane's Split session menu offers Split Right, Split Down, Close Pane, and Close All.
  • Open in a separate window moves chat into its own window; Move back to main window returns it. The editor panel must be open to detach chat.
  • The terminal supports multiple tabs with New terminal, Find in terminal, and Restart.
  • Use Search files in the editor's file tree. Its context menu offers Add to Chat, Reveal in Finder (where file-manager support is available), Copy Path, and Copy Relative Path.
  • Workspace .md files in the editor toggle Preview / Source in the tab bar. (App-owned notes use the notes editor, not this toggle.)
  • For workspaces with several folders, Edit workspace manages Source folders with Add folder, Make primary, and Remove folder. Drop a folder onto the window to open it as a workspace.

Collaboration and write modes

Per session (when the agent supports it):

ControlMeaning
Collaboration modedefault for normal work; plan when the runtime supports a plan-first loop
Write moderead-only vs native-write — whether the agent may change the workspace through its normal tools
Permission modeHow eagerly the agent auto-approves tools (agent-specific; see Agents)

Prefer the narrowest mode that still completes the task.

Keyboard shortcuts

Defaults are VS Code / Cursor-adjacent where that helps muscle memory. Primary means ⌘ on macOS and Ctrl on Windows/Linux. Customize under Settings → Shortcuts.

ActionDefault
File / quick open searchPrimary+P
Toggle left sidebarPrimary+B
Toggle right panelPrimary+\
Toggle editor fullscreenPrimary+Shift+E
Toggle chat dockPrimary+J
Toggle workspace searchPrimary+Shift+F
Toggle browser design modePrimary+Shift+D

Send-key behavior for chat (Enter vs Primary+Enter for multiline) is configurable in settings. Keys for moving through a slide deck are listed on Slide decks.

Approvals in one place

Everything that needs you surfaces inside the session that asked for it: tool permission cards, agent questions, plan reviews, script-run proposals (with Show script, an agent limit, Run and Discard), and teammates that need input. Nothing runs in the background without a visible state.

Themes

Dark and light are both first-class. Prefer system appearance unless you pin a theme in settings. Theme parity is a product requirement, not a fallback afterthought.

Browser design mode

The browser preview loads your dev server in tabs (New tab opens a blank one). Turn on Design Mode with the shortcut above or from the browser chrome, then:

  • Click an element, or drag a region, to create an annotation with a screenshot.
  • Add a comment and, optionally, a style preview of the change you want.
  • Send the annotations to chat as one formatted message, so the agent sees exactly what you pointed at.

The annotation popover can be dragged out of the way; Clear all annotations resets the page.

PDF reader

PDFs opened from the file tree open in the PDF reader instead of the code editor. It has a table of contents, page thumbnails, search, fit-width / fit-page zoom, page bookmarks, and highlights in four colors. Bookmarks and highlights are saved by the daemon. Select text and choose Add to Note to quote it into a note.

Decks

The Decks tab in the right panel lists slide decks, opens a 16:9 viewer with a filmstrip and speaker notes, and presents fullscreen or in presenter view. Rename, delete, and export from the list. See Slide decks.

What desktop owns

Local product data (notes, issues, decks, views, tags, links, search indexes, and related state) is written through the desktop daemon into app-owned storage. The public website and future team console do not replace that path for on-device work.

See Workspaces and data.

On this page