Navigation, files, and browser
Navigation and file actions remain tied to the active worktree. Opening a result, terminal, external editor, or browser preview should operate on the same task directory whose diff you will review.
Search across the app
Section titled “Search across the app”Press ⌘P to open the command palette.
The command palette can search:
- Commands.
- Files in the active Git-backed worktree or materialized Shared Context children.
- Worktrees across your workspaces.
- Open tabs.
- Conversation history across every workspace.
The palette opens in Global mode, which merges every enabled source into one ranked list. Jump straight to a single source, or press ⇧⇥ to cycle modes:
| Shortcut | Palette mode |
|---|---|
| ⌃G | Global |
| ⌃C | Commands |
| ⌃F | Files |
| ⌃W | Worktrees |
| ⌃T | Tabs |
| ⌃S | Conversations |
Configure sources and breadcrumbs under Settings → Command Palette. Breadcrumbs are especially useful when several projects contain files with the same name.
Search worktree files
Section titled “Search worktree files”Git-backed file results come from a local per-worktree index. A newly opened repository may briefly show Indexing files… before its full results appear.
At a Shared Context branch group, file search aggregates materialized children and labels each result with its repository. Plain non-Git folders remain available in the Files tree, but command-palette file search is disabled for them.
Changed files include additions and deletions in their result row. Use file search to jump from an agent message to source, inspect an unexpected generated file, or open one changed file before loading the full diff.
Ignored files are hidden by default. Enable the Ignored filter when you deliberately need generated output, dependencies, or another ignored artifact. Opening an ignored file does not add it to Git.
Search conversation history
Section titled “Search conversation history”Press ⌃S in the palette to search past agent conversations by their full text. The index covers conversation titles and visible chat content—your prompts and the agent’s replies. Tool calls, tool output, and thinking blocks stay out of it, so a search for a file name returns the messages that discussed it rather than every run that touched it.
Conversation search is not scoped to the active worktree. It reaches every workspace, which makes it the way to find a decision from a project you are not currently in.
With an empty query, the palette lists conversations already open in a tab, followed by the most recent ones. Typing switches to keyword results, each row showing the matched phrase highlighted in a snippet and the worktree or Shared Context group it belongs to.
Press ⌘Y on a conversation result to expand it into a reader that renders the transcript around the match. esc closes the reader and returns to the result list before it closes the palette.
Press ↩ to open the result. If the conversation is already open in a tab, the app activates that tab. Otherwise it selects the owning workspace and worktree and restores the conversation there.
A conversation whose worktree no longer exists is marked Archived. It still opens, but read-only: the transcript is fully readable and there is no composer, because no session remains to resume. A conversation that outlived its provider session opens the same way, as a transcript only.
In Global mode, conversation hits appear beside other results, followed by a Search conversations for ”…” row that switches to Conversations mode and keeps what you typed.
Find worktrees and tabs
Section titled “Find worktrees and tabs”Worktree search distinguishes multiple branches from the same repository. Tab search reaches chats, terminals, files, diffs, and browser tabs within their saved worktree context.
From an app-launched terminal, give a long-running tab a recognizable title:
sc tab title "Fix Login Redirect"Activity status also appears beside tab titles, so a working or waiting session remains visible when its content is not selected.
Open the worktree in another app
Section titled “Open the worktree in another app”Open In sends the current worktree path—not the main checkout unless it is selected—to an external editor, terminal, IDE, or Finder.
The app detects common macOS tools, including Ghostty, Zed, Cursor, VS Code, Finder, Warp, Terminal, iTerm2, Xcode, Sublime Text, Android Studio, and JetBrains IDEs.
Under Settings → General → Open In Apps, you can:
- Show or hide detected apps.
- Reorder the picker.
- Add a custom application.
Changes made by an external tool appear in the same worktree’s file index, change counts, and review diff.
Native browser tabs
Section titled “Native browser tabs”Open a browser tab from an empty-view tool card or a link action. Browser tabs use macOS WebKit and belong to the selected worktree, so they restore with the rest of its layout.
The toolbar provides Back, Forward, Reload, an address field, Copy URL, Open External, and Inspect. Useful shortcuts include:
| Shortcut | Browser action |
|---|---|
| ⌘L | Focus the address field |
| ⌘R | Reload the current page |
Inspect opens the WebKit/Safari inspector. Open the page in an external Chromium browser when a workflow specifically requires Chrome DevTools, a Chrome extension, or Chrome-only performance tooling.
An agent can read and drive the same tab with the sc browser commands once you enable the experimental feature and grant the workspace permission. See Agent browser control.
Preview HTML from the worktree
Section titled “Preview HTML from the worktree”HTML files offer Preview in Browser. The preview stays scoped to the current worktree and can reload as the file changes, which makes it useful for generated reports, prototypes, and static pages.
For full applications, use a configured named run target and open its local URL in a browser tab. The app does not guess the correct server command or port.
Annotate a page for an agent
Section titled “Annotate a page for an agent”Browser annotation turns a visual issue into structured chat context:
- Open the page in an in-app browser tab.
- Choose Annotate element.
- Select one or more page elements and add optional comments.
- Send the annotation batch to the intended Chat UI tab.
Use Clear annotations to discard the current batch. If no compatible chat exists, the app asks you to open or enable one before sending.
Annotations identify selected page elements and your comments; they do not authorize an agent to control the page or approve a proposed code change. Review the resulting prompt and diff normally.
Import external files
Section titled “Import external files”Drop files or folders onto the file tree to copy them into the active worktree. The app rejects destinations outside that worktree and asks before replacing an existing path. Canceling the replacement prompt cancels the entire drop.
Use imports for repository artifacts such as fixtures, screenshots, or supplied examples. Use chat attachments or pasted context when the file should inform an agent without becoming part of the worktree.
See Files, mentions, and context for attachment, paste, and mention behavior.