# ghostex-help

Adopt this skill: https://proskills.md/skills/other/maddada-ghostex-skills-ghostex-help

Page: https://proskills.md/skills/other/maddada-ghostex-skills-ghostex-help
This document is the public skill bundle for that page. It contains SKILL.md and every helper file the catalog carries. No login is required.

## File: skills/ghostex-help/SKILL.md
size: 5039
sha: d29ad29e449ffd064d8d382c648672e0f45de293
upstream: https://github.com/maddada/ghostex/blob/main/skills/ghostex-help/SKILL.md

````text
---
name: ghostex-help
description: >-
  Use this skill whenever the user asks how Ghostex works, what a Ghostex
  feature, view, button, or setting does, how to do something in Ghostex
  ("how do I", "where is", "can Ghostex"), or asks you to change the app for
  them ("make the terminal match the chat width", "move the sidebar", "turn
  off the completion sound", "set up an automation"). It reads the built-in
  guide through `ghostex guide`, inspects and changes settings through
  `ghostex settings`, and opens the right Settings page for anything an agent
  must not change itself.
disable-model-invocation: true
---

# ghostex-help

You are the in-app helper for Ghostex, the agent workspace the user is running
right now. Answer from the built-in guide and the live settings catalog, never
from memory of other terminals or IDEs, and make the change for the user when
they ask for one.

## Core Workflow

1. Read the guide before answering anything about the app. Start with the
   overview, then the chapter that covers the question:

   ```bash
   ghostex guide             # what Ghostex is, its views, and where things live
   ghostex guide features    # every feature: views, sidebar, sessions, chat, agents, remote, board
   ghostex guide settings    # every setting: key, type, allowed values, default, what it does
   ghostex guide hotkeys     # every shortcut and its default binding
   ```

   The guide is printed by the installed `ghostex` binary, so it always matches
   the app version on this machine. Prefer it over the copies in this skill's
   `references/` folder when both are available.

2. For a "what does X do" or "how do I" question, answer in a few sentences
   using the guide's wording for view, button, and setting names, and tell the
   user exactly where to click or which shortcut to press. If the answer is a
   setting, name it and offer to change it.

3. For a "change X for me" request, find the setting first:

   ```bash
   ghostex settings list --json --writable   # keys, current values, types, options
   ghostex settings get <key>                 # one setting with its description
   ```

   Then apply it and read the result back:

   ```bash
   ghostex settings set <key> <value>
   ghostex settings reset <key>
   ```

   `set` sends the change through the running desktop app, so it is applied
   exactly like a save in the Settings modal and the command prints the old and
   new value once the app has written it. Report that line to the user.

4. Hotkeys have their own commands. Find the action id with `list` (it
   searches titles too), then change it; `none` unassigns and `reset` restores
   the default. `set` refuses keys another hotkey already uses unless you add
   `--replace`, so tell the user which hotkey loses them before using it:

   ```bash
   ghostex settings hotkeys list [search] [--changed]
   ghostex settings hotkeys set <id> cmd+shift+o
   ghostex settings hotkeys reset <id>        # or --all
   ```

   These need a Ghostex newer than 10.2.1. If the command is unknown, open
   Settings > Hotkeys with `ghostex settings open --tab hotkeys` instead.

   While a terminal has the keyboard, a hotkey's Terminal focused binding
   applies instead of its normal one. Add `--terminal` to `list`, `get`, `set`
   or `reset` to work on those (`reset --terminal` makes the key follow the
   normal one again). `--terminal` needs a Ghostex newer than 10.36.0; on an
   older one, change Terminal focused keys in Settings > Hotkeys.

5. When a row is not agent-writable (accounts, remote pairing, structured
   values such as tag lists, or rows that are only buttons in the UI), do not
   try to edit files or JSON. Open the right Settings page with the row already
   searched and tell the user what to click:

   ```bash
   ghostex settings open <key>
   ```

6. For anything beyond settings (start or steer agents, sessions, automations,
   the project board, prompt history, servers, diagnostics), route to the
   `$ghostex-cli` skill and its `ghostex --help` catalog. Use `$ghostex-help`
   to explain, `$ghostex-cli` to operate.

## Rules

- Confirm before changing more than one setting at once, before changing a
  setting the user only asked about, and before anything under Advanced or
  Debugging.
- Never edit `native-sidebar-settings.json`, the Ghostty config, or any other
  Ghostex file directly. If `ghostex settings set` says the desktop app is not
  running, tell the user to open Ghostex and offer to retry.
- Use the app's own names: Agents, Code, Browser, Kanban, Automate, and Files
  are the titlebar views; Quick Access is Cmd+Shift+P; Session Chat is the chat
  view of a terminal session. Say "computer", not "Mac", unless the feature is
  macOS-only.
- Do not guess a setting key, value, or hotkey when `ghostex settings list` or
  `ghostex guide` can tell you. Values are validated: booleans, numbers within
  the listed range, or one of the listed options.
- Keep answers short. One question, one answer, one change, one verification.
````

## File: skills/ghostex-help/references/features.md
size: 356380
sha: 71b49c721fc9498c7397b0efb702c20bb11cc515
upstream: https://github.com/maddada/ghostex/blob/main/skills/ghostex-help/references/features.md

Content is not inlined in the catalog. Read the upstream file: https://github.com/maddada/ghostex/blob/main/skills/ghostex-help/references/features.md

## File: skills/ghostex-help/references/hotkeys.md
size: 20830
sha: 3aa1f45b661b8eaebef8941f3f9d5a9691a613bb
upstream: https://github.com/maddada/ghostex/blob/main/skills/ghostex-help/references/hotkeys.md

```text
# Ghostex hotkeys reference

Generated by `packages/settings-catalog` from the hotkey catalog. Do not edit by hand; run `cargo xtask help-generate`.

Default bindings are listed for macOS (`cmd`) with the Windows/Linux default where it differs. Users rebind them in Settings > Hotkeys, and agents change them with `ghostex settings hotkeys list`, `ghostex settings hotkeys set <id> <keys>` (`none` unassigns) and `ghostex settings hotkeys reset <id>|--all`; use the Id column below.

While a terminal has the keyboard, the Terminal focused binding applies instead (Settings > Hotkeys > Terminal focused, saved under `terminalHotkeys`). Its defaults equal the normal ones on macOS; on Windows and Linux they leave the plain Ctrl keys to the program in the terminal. Until the Terminal focused binding is set, it follows the normal key when the user changed that, and otherwise the Terminal focused default listed below. Both bindings can be changed or cleared on their own, and the same keys may be used in both. "none" in the Terminal focused column means the hotkey has no Terminal focused binding; "terminal only" in the Default column means it has only that one. Add `--terminal` to `ghostex settings hotkeys list`, `get`, `set` or `reset` for the Terminal focused bindings (Ghostex newer than 10.36.0).

| Action | Default | Windows/Linux | Terminal focused | Terminal focused on Windows/Linux | What it does | Id |
| --- | --- | --- | --- | --- | --- | --- |
| Scroll Chat to Bottom | `ctrl+shift+down` | `cmd+shift+down` | none |  | Scroll chat to the bottom, including while typing in the composer. | `scrollChatToBottom` |
| Focus Chat Box | unassigned |  | none |  | Move the keyboard to the chat box of the chat session you are in. | `focusChatComposer` |
| Copy Last Code Block | `cmd+shift+;` |  | none |  | Copy the last code block the agent wrote in the chat session you are in. | `copyLastChatCodeBlock` |
| Copy Last Reply | `cmd+shift+c` |  | none |  | Copy the agent's last reply in the chat session you are in. | `copyLastChatReply` |
| Toggle Summary Mode | `ctrl+alt+s` | `cmd+alt+shift+s` | none |  | Turn Summary mode on or off in the chat session you are in. | `toggleChatSummaryMode` |
| Maximize Chat Box | `ctrl+alt+m` | `cmd+alt+shift+m` | none |  | Maximize the chat box of the chat session you are in, or restore it. | `toggleChatComposerMaximized` |
| Files and Links | `ctrl+alt+l` | `cmd+alt+shift+l` | none |  | Show or hide the files and links mentioned in the chat session you are in. | `toggleChatFilesLinks` |
| Toggle Voice Agent | `ctrl+alt+v` | `cmd+alt+shift+v` | `ctrl+alt+v` | `cmd+alt+shift+v` | Start a spoken conversation with the voice agent, or end the one that is running. | `toggleVoiceAgent` |
| Voice Call About This Session | unassigned |  | unassigned |  | Start a voice call about the session you are looking at, or move the open call to it. | `voiceCallAboutSession` |
| Hold to Talk | unassigned |  | unassigned |  | During a voice call, hold to talk to the voice agent and let go to send; in a muted Regular call, hold to unmute. Works even while you're typing. | `holdToTalk` |
| Dictate | `ctrl+alt+d` | `cmd+alt+shift+d` | none |  | Start dictating into the chat box of the chat session you are in; press again to stop and type what you said. | `toggleDictation` |
| Read Last Reply Aloud | unassigned |  | none |  | Read the agent's newest reply in the chat you are looking at aloud, from the start. | `readAloudLastReply` |
| Stop Reading | unassigned |  | unassigned |  | Stop Read aloud, whichever reply it is reading. | `readAloudStop` |
| New Agent Session | `cmd+shift+o` |  | `cmd+shift+o` | `cmd+shift+d` | Start your last-used agent in the active project, in your default interface. | `createAgentSession` |
| New Terminal | `cmd+shift+t` |  | `cmd+shift+t` |  | Create a terminal session. | `createSession` |
| Open Quick Access: Commands | `cmd+shift+p` |  | `cmd+shift+p` |  | Open Ghostex Quick Access on Commands. | `openCommandPalette` |
| Open Quick Access: Recent Sessions | `cmd+p` |  | `cmd+p` | `cmd+alt+shift+p` | Open Ghostex Quick Access on Recent Sessions. | `openSessionSearchPalette` |
| Open Quick Access: Recent Projects | `cmd+alt+shift+o` |  | `cmd+alt+shift+o` |  | Open Ghostex Quick Access on Recent Projects. | `openProjectSearchPalette` |
| Open Quick Access: Files | `cmd+o` |  | `cmd+o` | `cmd+shift+y` | Open Ghostex Quick Access on Files to find a file in your projects and open it. | `openQuickAccessFiles` |
| New Thread in Active Project | `cmd+n` |  | `cmd+n` | `cmd+alt+shift+n` | Pick an agent, Browser, or Terminal to start in the active project. | `openNewThreadPalette` |
| Open Commands Panel | `cmd+j` | `f12` | `cmd+j` | `f12` | Open the project command terminal panel (F12 always works too). When the pane is already focused, hide it; press again to show it. | `openCommandsPanel` |
| Open Commands Panel (Second Key) | `shift+escape` |  | `shift+escape` |  | A second key that opens or hides the Commands panel, like Open Commands Panel. | `openCommandsPanelSecondKey` |
| Open Settings | `cmd+,` |  | `cmd+,` |  | Open app settings. | `openSettings` |
| Open Extensions | unassigned |  | unassigned |  | Open Settings > Extensions to manage built-in features and installed extensions. | `openExtensions` |
| Ask Ghostex Help | unassigned |  | unassigned |  | Open the Ghostex Help menu: sample questions an agent can answer and settings it can change for you. | `openGhostexHelp` |
| Open File | unassigned |  | unassigned |  | Open the Files view with its search box ready: type a file name, or paste the path of any file on this computer, and press Enter. | `openFileInFiles` |
| Hotkeys | `cmd+/` |  | `cmd+/` | `cmd+alt+/` | Open app hotkeys. | `openHotkeys` |
| Toggle Sidebar | `cmd+b` |  | `cmd+b` | `cmd+shift+b` | Collapse or expand the sidebar. | `toggleSidebarCollapsed` |
| Toggle View Panel | `cmd+alt+b` |  | `cmd+alt+b` |  | Open or close the view panel beside your sessions. | `toggleViewPanel` |
| Expand Side Panel | `cmd+ctrl+e` |  | `cmd+ctrl+e` |  | Expand the side panel over the Agents Panel, or bring the Agents Panel back. | `expandViewPanel` |
| Expand Side Panel Fully | `cmd+ctrl+shift+e` |  | `cmd+ctrl+shift+e` |  | Expand the side panel over the Agents Panel and hide the sidebar, or bring both back. | `expandViewPanelFully` |
| Rename Active Session | `cmd+r` | `cmd+shift+r` | `cmd+r` | `cmd+shift+r` | Rename the focused session. | `renameActiveSession` |
| Open Browser Pane | `cmd+t` |  | `cmd+t` | `cmd+shift+l` | Open a browser tab beside the focused tab. | `openBrowserPane` |
| Switch to Agents | unassigned |  | unassigned |  | Switch to Agents view. | `switchAgentsView` |
| Switch to VS Code | unassigned |  | unassigned |  | Switch to VS Code view. | `switchSourceView` |
| Switch to Browser | unassigned |  | unassigned |  | Switch to Browser view. | `switchGitHubView` |
| Switch to Kanban | unassigned |  | unassigned |  | Switch to Kanban view. | `switchKanbanView` |
| Switch to Files | unassigned |  | unassigned |  | Switch to Files view. | `switchManageView` |
| Switch to Automate | unassigned |  | unassigned |  | Switch to Automate view. | `switchAutomateView` |
| Switch to Changes | unassigned |  | unassigned |  | Switch to Changes view. | `switchChangesView` |
| Switch to Terminal | unassigned |  | unassigned |  | Switch to Terminal view. | `switchTerminalView` |
| Switch to View Tab 1 | `alt+1` |  | `alt+1` |  | Open tab 1 in the view panel's tab strip. | `switchTitlebarView1` |
| Switch to View Tab 2 | `alt+2` |  | `alt+2` |  | Open tab 2 in the view panel's tab strip. | `switchTitlebarView2` |
| Switch to View Tab 3 | `alt+3` |  | `alt+3` |  | Open tab 3 in the view panel's tab strip. | `switchTitlebarView3` |
| Switch to View Tab 4 | `alt+4` |  | `alt+4` |  | Open tab 4 in the view panel's tab strip. | `switchTitlebarView4` |
| Switch to View Tab 5 | `alt+5` |  | `alt+5` |  | Open tab 5 in the view panel's tab strip. | `switchTitlebarView5` |
| Switch to View Tab 6 | `alt+6` |  | `alt+6` |  | Open tab 6 in the view panel's tab strip. | `switchTitlebarView6` |
| Switch to View Tab 7 | `alt+7` |  | `alt+7` |  | Open tab 7 in the view panel's tab strip. | `switchTitlebarView7` |
| Switch to View Tab 8 | `alt+8` |  | `alt+8` |  | Open tab 8 in the view panel's tab strip. | `switchTitlebarView8` |
| Switch to View Tab 9 | `alt+9` |  | `alt+9` |  | Open tab 9 in the view panel's tab strip. | `switchTitlebarView9` |
| Rotate Panes Clockwise | `ctrl+shift+l` | `cmd+alt+l` | `ctrl+shift+l` | `cmd+alt+l` | Rotate panes clockwise in the focused group. | `rotatePanesClockwise` |
| Merge All Tabs | `ctrl+shift+m` | `cmd+alt+m` | `ctrl+shift+m` | `cmd+alt+m` | Merge the focused group's panes into one tabbed pane. | `mergeAllTabs` |
| Delayed Actions | `ctrl+shift+s` | `cmd+alt+s` | `ctrl+shift+s` | `cmd+alt+s` | Open delayed actions for the focused terminal session. | `delayedSend` |
| Close After Done | unassigned |  | unassigned |  | Toggle Close After Done for the focused terminal session. | `closeAfterDone` |
| Model & Effort Picker | `alt+p` |  | `alt+p` |  | Open the model picker: arrows choose a model and its reasoning, Enter saves it as the default, Option+Enter uses it in this session only. | `openModelPicker` |
| Prompt Editor | `ctrl+g` | `cmd+shift+g` | `ctrl+g` | `cmd+shift+g` | Open the prompt editor for the focused terminal, or maximize the chat box of the chat you are in (press again to restore it). | `promptEditor` |
| Attach File or Folder | `cmd+alt+p` |  | `cmd+alt+p` |  | Attach a file or folder to the focused terminal. | `attachFileOrFolder` |
| Session Note | `cmd+alt+n` |  | `cmd+alt+n` |  | Open the note attached to the focused agent conversation. | `sessionNote` |
| Stash Prompt | `alt+s` |  | `alt+s` |  | Stash the current prompt in the focused agent terminal. | `stashPrompt` |
| Saved Prompts | `cmd+alt+s` | `cmd+shift+s` | `cmd+alt+s` | `cmd+shift+s` | Open saved prompts for the focused agent session. | `stashedPrompts` |
| Handoff / Export | unassigned |  | unassigned |  | Export the focused agent session's transcript and hand it off to another agent. | `exportTranscript` |
| Toggle Agent Actions | `cmd+alt+a` |  | `cmd+alt+a` |  | Show or hide the focused terminal's Agent Actions buttons. | `toggleAgentActions` |
| Toggle Chat View | `alt+g` |  | `alt+g` |  | Toggle between the terminal and chat view for the focused agent session. | `toggleChatView` |
| Find Prompts | `cmd+shift+f` |  | `cmd+shift+f` | `cmd+alt+h` | Search every prompt you have sent to an agent, then resume or fork it. | `openFindPrompts` |
| Search in Files | `cmd+shift+f` |  | none |  | While the Files view has focus, search the text of every file in the project, like VS Code's Search. Elsewhere the same keys open Find Prompts. | `searchProjectFiles` |
| Scroll Terminal to Top | unassigned |  | unassigned |  | Scroll the focused terminal to the top. | `scrollTerminalToTop` |
| Scroll Terminal to Bottom | unassigned |  | unassigned |  | Scroll the focused terminal to the bottom. | `scrollTerminalToBottom` |
| Split Right | `alt+shift+d` |  | `alt+shift+d` |  | Move the focused session into a pane to the right. | `splitSessionRight` |
| Fork Session | `cmd+ctrl+shift+f` | `cmd+alt+shift+f` | `cmd+ctrl+shift+f` | `cmd+alt+shift+f` | Fork the focused session. | `forkSession` |
| Reload Session | unassigned |  | unassigned |  | Reload the focused session. | `reloadSession` |
| Sleep Focused Session | `cmd+shift+a` |  | `cmd+shift+a` | unassigned | Sleep the focused terminal session. | `sleepFocusedSession` |
| Wake Focused Session | unassigned |  | unassigned |  | Wake the focused sleeping terminal session. | `wakeFocusedSession` |
| Close Focused Session | `cmd+shift+backspace` |  | `cmd+shift+backspace` |  | Close the focused pane or session. | `closeFocusedSession` |
| Pop Out Pane | `ctrl+shift+o` | `cmd+alt+o` | `ctrl+shift+o` | `cmd+alt+o` | Pop out or restore the focused pane. | `popOutPane` |
| Previous Group | unassigned |  | unassigned |  | Focus the previous group. | `focusPreviousGroup` |
| Next Group | unassigned |  | unassigned |  | Focus the next group. | `focusNextGroup` |
| Back | `cmd+[` | `cmd+alt+shift+[` | `cmd+[` | `cmd+alt+shift+[` | Go back to the previously active session or project. | `navigateHistoryBack` |
| Forward | `cmd+]` | `cmd+alt+shift+]` | `cmd+]` | `cmd+alt+shift+]` | Go forward again after going back. | `navigateHistoryForward` |
| Open Notifications | `cmd+i` |  | `cmd+i` | `cmd+shift+i` | Open the Notifications panel under the bell in the sidebar's top row. | `openNotifications` |
| Jump to Latest Unread Notification | `cmd+shift+u` |  | `cmd+shift+u` |  | Jump to the session of the latest unread notification and mark it read. | `jumpToLatestUnreadNotification` |
| Mark as Oldest Unread and Jump to Next | `cmd+ctrl+u` |  | `cmd+ctrl+u` |  | Push the current session to the back of the unread queue and jump to the next unread notification. | `deferNotificationAndJumpNext` |
| Previous Session | `ctrl+shift+tab` | `cmd+shift+tab` | `ctrl+shift+tab` | `cmd+shift+tab` | Select the previous session shown in the sidebar. | `focusPreviousSession` |
| Next Session | `ctrl+tab` | `cmd+tab` | `ctrl+tab` | `cmd+tab` | Select the next session shown in the sidebar. | `focusNextSession` |
| Previous Tab in Pane | `cmd+alt+[` |  | `cmd+alt+[` |  | Select the previous tab in the focused split pane. | `focusPreviousPaneTab` |
| Next Tab in Pane | `cmd+alt+]` |  | `cmd+alt+]` |  | Select the next tab in the focused split pane. | `focusNextPaneTab` |
| Focus Up | `cmd+alt+up` |  | `cmd+alt+up` |  | Move focus up between the session panes and the Commands pane. | `focusUp` |
| Focus Right | `cmd+alt+right` |  | `cmd+alt+right` |  | Move focus right between the session panes and the Commands pane. | `focusRight` |
| Focus Down | `cmd+alt+down` |  | `cmd+alt+down` |  | Move focus down between the session panes and the Commands pane. | `focusDown` |
| Focus Left | `cmd+alt+left` |  | `cmd+alt+left` |  | Move focus left between the session panes and the Commands pane. | `focusLeft` |
| Jump to Project 1 | `cmd+ctrl+1` | `cmd+alt+1` | `cmd+ctrl+1` | `cmd+alt+1` | Jump to project 1 as shown in the sidebar. | `jumpToProject1` |
| Jump to Project 2 | `cmd+ctrl+2` | `cmd+alt+2` | `cmd+ctrl+2` | `cmd+alt+2` | Jump to project 2 as shown in the sidebar. | `jumpToProject2` |
| Jump to Project 3 | `cmd+ctrl+3` | `cmd+alt+3` | `cmd+ctrl+3` | `cmd+alt+3` | Jump to project 3 as shown in the sidebar. | `jumpToProject3` |
| Jump to Project 4 | `cmd+ctrl+4` | `cmd+alt+4` | `cmd+ctrl+4` | `cmd+alt+4` | Jump to project 4 as shown in the sidebar. | `jumpToProject4` |
| Jump to Project 5 | `cmd+ctrl+5` | `cmd+alt+5` | `cmd+ctrl+5` | `cmd+alt+5` | Jump to project 5 as shown in the sidebar. | `jumpToProject5` |
| Jump to Project 6 | `cmd+ctrl+6` | `cmd+alt+6` | `cmd+ctrl+6` | `cmd+alt+6` | Jump to project 6 as shown in the sidebar. | `jumpToProject6` |
| Jump to Project 7 | `cmd+ctrl+7` | `cmd+alt+7` | `cmd+ctrl+7` | `cmd+alt+7` | Jump to project 7 as shown in the sidebar. | `jumpToProject7` |
| Jump to Project 8 | `cmd+ctrl+8` | `cmd+alt+8` | `cmd+ctrl+8` | `cmd+alt+8` | Jump to project 8 as shown in the sidebar. | `jumpToProject8` |
| Jump to Project 9 | `cmd+ctrl+9` | `cmd+alt+9` | `cmd+ctrl+9` | `cmd+alt+9` | Jump to project 9 as shown in the sidebar. | `jumpToProject9` |
| Go to Space 1 | `cmd+alt+shift+1` |  | `cmd+alt+shift+1` |  | Switch to Space 1 as shown in the sidebar. | `goToSpace1` |
| Go to Space 2 | `cmd+alt+shift+2` |  | `cmd+alt+shift+2` |  | Switch to Space 2 as shown in the sidebar. | `goToSpace2` |
| Go to Space 3 | `cmd+alt+shift+3` |  | `cmd+alt+shift+3` |  | Switch to Space 3 as shown in the sidebar. | `goToSpace3` |
| Go to Space 4 | `cmd+alt+shift+4` |  | `cmd+alt+shift+4` |  | Switch to Space 4 as shown in the sidebar. | `goToSpace4` |
| Go to Space 5 | `cmd+alt+shift+5` |  | `cmd+alt+shift+5` |  | Switch to Space 5 as shown in the sidebar. | `goToSpace5` |
| Go to Space 6 | `cmd+alt+shift+6` |  | `cmd+alt+shift+6` |  | Switch to Space 6 as shown in the sidebar. | `goToSpace6` |
| Go to Space 7 | `cmd+alt+shift+7` |  | `cmd+alt+shift+7` |  | Switch to Space 7 as shown in the sidebar. | `goToSpace7` |
| Go to Space 8 | `cmd+alt+shift+8` |  | `cmd+alt+shift+8` |  | Switch to Space 8 as shown in the sidebar. | `goToSpace8` |
| Go to Space 9 | `cmd+alt+shift+9` |  | `cmd+alt+shift+9` |  | Switch to Space 9 as shown in the sidebar. | `goToSpace9` |
| Focus Session 1 | `cmd+1` |  | `cmd+1` |  | Focus session slot 1. | `focusSessionSlot1` |
| Focus Session 2 | `cmd+2` |  | `cmd+2` |  | Focus session slot 2. | `focusSessionSlot2` |
| Focus Session 3 | `cmd+3` |  | `cmd+3` |  | Focus session slot 3. | `focusSessionSlot3` |
| Focus Session 4 | `cmd+4` |  | `cmd+4` |  | Focus session slot 4. | `focusSessionSlot4` |
| Focus Session 5 | `cmd+5` |  | `cmd+5` |  | Focus session slot 5. | `focusSessionSlot5` |
| Focus Session 6 | `cmd+6` |  | `cmd+6` |  | Focus session slot 6. | `focusSessionSlot6` |
| Focus Session 7 | `cmd+7` |  | `cmd+7` |  | Focus session slot 7. | `focusSessionSlot7` |
| Focus Session 8 | `cmd+8` |  | `cmd+8` |  | Focus session slot 8. | `focusSessionSlot8` |
| Focus Session 9 | `cmd+9` |  | `cmd+9` |  | Focus session slot 9. | `focusSessionSlot9` |
| Start Action 1 | `ctrl+shift+1` | `cmd+shift+1` | `ctrl+shift+1` | `cmd+shift+1` | Start action 1 from the Actions list. | `runActionSlot1` |
| Start Action 2 | `ctrl+shift+2` | `cmd+shift+2` | `ctrl+shift+2` | `cmd+shift+2` | Start action 2 from the Actions list. | `runActionSlot2` |
| Start Action 3 | `ctrl+shift+3` | `cmd+shift+3` | `ctrl+shift+3` | `cmd+shift+3` | Start action 3 from the Actions list. | `runActionSlot3` |
| Start Action 4 | `ctrl+shift+4` | `cmd+shift+4` | `ctrl+shift+4` | `cmd+shift+4` | Start action 4 from the Actions list. | `runActionSlot4` |
| Start Action 5 | `ctrl+shift+5` | `cmd+shift+5` | `ctrl+shift+5` | `cmd+shift+5` | Start action 5 from the Actions list. | `runActionSlot5` |
| Split Sideways | `cmd+d` |  | `cmd+d` | `cmd+shift+o` | Create a terminal beside the focused pane. | `splitMore` |
| Split Downwards | `cmd+shift+d` |  | `cmd+shift+d` | `cmd+shift+e` | Create a terminal below the focused pane. | `splitMoreDown` |
| Paste | `cmd+v` |  | `cmd+v` | `cmd+shift+v` | Paste the clipboard into the focused terminal. | `pasteIntoTerminal` |
| Find | `cmd+f` |  | `cmd+f` | `cmd+shift+f` | Find text in the focused terminal, browser page, chat or file. On Windows and Linux, Ctrl+F also finds anywhere but in a terminal. | `findInFocusedView` |
| Find Next | `cmd+g` |  | none |  | Go to the next match of Find in a browser page. | `findNextInBrowser` |
| Find Previous | `cmd+shift+g` |  | none |  | Go to the previous match of Find in a browser page. | `findPreviousInBrowser` |
| Zoom In | `cmd+=` |  | `cmd+=` |  | Make the focused terminal, browser page or picture bigger. | `zoomInFocusedView` |
| Zoom Out | `cmd+-` |  | `cmd+-` |  | Make the focused terminal, browser page or picture smaller. | `zoomOutFocusedView` |
| Reset Zoom | `cmd+0` |  | `cmd+0` |  | Return the focused terminal, browser page or picture to its normal size. | `resetFocusedViewZoom` |
| Close Tab | `cmd+w` |  | `cmd+w` | `cmd+shift+w` | Close the focused terminal tab, browser tab or view tab. | `closeFocusedSurface` |
| New Window | `cmd+shift+n` |  | `cmd+shift+n` |  | Open another Ghostex window. | `openNewWindow` |
| Focus Mode | `cmd+ctrl+f` |  | `cmd+ctrl+f` |  | Show only the focused pane of the Agents view, or bring the other panes back. | `toggleAgentsFocusMode` |
| Copy | terminal only |  | `cmd+c` | `cmd+shift+c` | Copy the text selected in the terminal. With nothing selected, the key goes on to the program. | `terminalCopy` |
| Select All | terminal only |  | `cmd+a` | `cmd+shift+a` | Select everything in the terminal, its scrollback included. | `terminalSelectAll` |
| Browser History | `cmd+y` | `cmd+h` | none |  | Show the history of the browser page you are on. | `openBrowserHistory` |
| Reload Page | `cmd+r` |  | none |  | Reload the browser page you are on (F5 also reloads it). | `reloadBrowserPage` |
| Sleep Focused Session (Second Key) | `alt+shift+s` |  | `alt+shift+s` |  | A second key that sleeps the focused terminal session. | `sleepFocusedSessionSecondKey` |
| Unfocus Terminal | terminal only |  | `cmd+shift+m` |  | Take the keyboard out of the terminal, so the hotkeys that apply outside a terminal work next. | `unfocusTerminal` |
| Focus Last Terminal | `cmd+shift+m` |  | none |  | Put the keyboard back in the terminal that had it last, bringing its session forward if it is not on screen. | `focusLastTerminal` |
```

## File: skills/ghostex-help/references/overview.md
size: 6771
sha: e3b3889113b28b6a513d2094404b992872cd8075
upstream: https://github.com/maddada/ghostex/blob/main/skills/ghostex-help/references/overview.md

```text
# Ghostex overview

Ghostex is a desktop workspace for running AI coding agents (Claude Code, Codex,
Gemini CLI, OpenCode, Pi, and other agent CLIs) side by side across many
projects. Every agent runs in a real, persistent terminal session; Ghostex adds
the sidebar, the chat view, the browser, the editor, the board, and the
automation and remote-access layers around those sessions.

Run `ghostex guide <chapter>` for the details:

features Views, sidebar, sessions, chat, agents and orchestration, coordinators, browser,
editor, board, docs, automations, remote and mobile, notifications
settings Every setting with its key, type, allowed values, default, and
the page it lives on (use with `ghostex settings`)
hotkeys Every shortcut and its default binding

## The window

- **Work area header**: the window has no separate title bar. The first row of
  the work area shows Hide sidebar, Back/Forward, and the project icon, project
  name and current session title as one breadcrumb. On the right are the
  **Voice** (headset) button that starts and ends a spoken conversation with the voice
  agent, the **Start**, **Open** and **Commit** buttons (Quick Actions, Open In and Git
  actions, each with a caret for its menu; Start and Open show only while the
  Actions and Open In extensions are on, and Actions is off by default), a **⋯** menu holding Ask Ghostex,
  Tips & Tricks, Resources, Dev servers, Extensions and Customize, and the command terminal
  and view panel toggles. The header covers your sessions only: when a view panel
  is open, the panel's own tabs take the rest of that same row, so the tabs sit
  over the view and the header's buttons over your sessions. Narrow the Agents
  Panel and the buttons drop their labels and the breadcrumb drops the project
  name. There is no line under the header: your chat fades out beneath it. Drag
  the header, or the sidebar's Search row, to move the window.
- **Sidebar** (left by default): projects, their sessions, tags and filters,
  remote machines, and the More Options menu under the button at
  the top right (Add Project, Sort & Filter, Sessions, Import Sessions, Search by
  Prompt, Agents Hub, All Automations, Mobile & Remote, Join Discord, Send
  Bug / Feedback, then
  New Window, Check for Updates, Restart Ghostex, Quit Ghostex, and Quit Ghostex
  & BG Service, which also stops the background service and every session). The
  Notifications bell is in its top row. The bar at the bottom carries the
  workspace button on the left (when Workspaces is on) and, on the right, the
  Commands lightning button, a chart button that shows or hides your account
  usage meters above it, and the Settings gear, which is where Settings and its
  Hotkeys page open from. Search and Commands are icon buttons that keep their
  names and shortcuts in their tooltips.
- **Work area**: your sessions, and the views open beside them. The sessions are
  a grid of terminal panes and tabs; each pane can show the raw terminal or the
  Session Chat rendering of the same agent conversation. Opening Code, Browser,
  Kanban, Automate or Files puts it in a panel on the right with a divider you can
  drag, and your agents keep running on the left. The panel's tab strip shares
  the header's row: several views can be open at once, the **+** opens another,
  and the two buttons at its end pop the view out into its own window or expand
  it over the Agents Panel. With nothing open it shows **Open a view**, a picker of
  everything this project can open. Project views load on demand and sleep when unused.
  The view panel toggle at the right end of the header, or Cmd+Option+B, opens
  and closes the whole panel.
- **More windows**: File > New Window (Cmd+Shift+N) opens another full window
  on the same projects and sessions, for a second monitor or Space; each window
  keeps its own sidebar selection, panes and views, and every open window comes
  back at the next launch.
- **Quick Access** (Cmd+Shift+P): search every command, pane action, settings
  shortcut, and recent session. Cmd+P opens it on Recent Sessions.
- **Settings** (Cmd+,): an App tier of pages (Chat, Sidebar & Sessions, Terminal, Theme,
  Notifications, Files & Links, Power & Sleep, Hotkeys), a Setup tier (Agents, Accounts,
  Integrations, Remote, Projects, About), then **Extensions** at the bottom (the built-in feature
  switches and the extensions you can install), with a chevron under it that folds the
  add-on pages (Voice agent, Workspaces, Cloud Boxes, Connectors, Actions, Open In, OS
  Integration and Debugging while each is shown), and one search box that finds rows on
  every page.
- **Dialogs** such as Quick Access, Settings, Search by Prompt and Add Project open
  over the middle of the window and stay open when you click somewhere else. Close
  one with Escape or the round × in its top-right corner, which appears while the
  pointer is over the dialog.

## Key concepts

- **Project**: a folder (or git worktree) in the sidebar. Projects can be
  grouped, reordered, and given per-project agents, actions, and defaults.
- **Session**: one terminal pane, usually running one agent conversation.
  Sessions persist across app restarts (the terminal host keeps the process alive), can be
  slept to free RAM and woken later, pinned, tagged, renamed, forked, and
  resumed from history.
- **Session Chat**: the GUI rendering of an agent session, with a composer,
  prompt queue, transcript, tool cards, and image paste. Toggle between chat and
  terminal for the same session with one click or hotkey.
- **Agents**: the configured agent buttons per project (built-in CLIs plus
  custom commands), Global Actions, and the Agents Hub catalog.
- **Coordinator**: an agent session you talk to that hands the work to
  threads (agent sessions it starts, shown indented under it in the sidebar)
  and reports back when they finish or need you. Start one from a project's
  Select Agent menu with New Coordinator.
- **Extensions**: optional views and panels (Code, Browser, Kanban, Automate,
  Files, and third-party ones) installed from Settings > Extensions.
- **gxserver**: the local daemon that owns sessions, projects, settings sync,
  automations, and the HTTP API the `ghostex` CLI, the web app, and the mobile
  app talk to. A remote machine runs its own gxserver; the desktop app connects
  to it over SSH or Easy Connect.

## The `ghostex` CLI

`ghostex` (alias `gx`) is installed with the app. Agents use it to list and
control sessions, create agent sessions and send them prompts, read output,
manage automations and the board, search prompt history, and now to read this
guide and change settings. `ghostex --help` is the command catalog; the
`$ghostex-cli` skill teaches the help-first workflow.
```

## File: skills/ghostex-help/references/settings-catalog.json
size: 373624
sha: 95dede5e7ee9ccedb7858fc326d9659e59adade3
upstream: https://github.com/maddada/ghostex/blob/main/skills/ghostex-help/references/settings-catalog.json

Content is not inlined in the catalog. Read the upstream file: https://github.com/maddada/ghostex/blob/main/skills/ghostex-help/references/settings-catalog.json

## File: skills/ghostex-help/references/settings.md
size: 127480
sha: 38d3618e8354ff5b6a6e0f2542d08d4e8069558e
upstream: https://github.com/maddada/ghostex/blob/main/skills/ghostex-help/references/settings.md

Content is not inlined in the catalog. Read the upstream file: https://github.com/maddada/ghostex/blob/main/skills/ghostex-help/references/settings.md

## File: skills/ghostex-help/agents/openai.yaml
size: 271
sha: 1556967cde76ef71c8d8119d624a297b78659eb2
upstream: https://github.com/maddada/ghostex/blob/main/skills/ghostex-help/agents/openai.yaml

```text
interface:
  display_name: 'Ghostex Help'
  short_description: 'Explain Ghostex features and change settings'
  default_prompt: 'Use $ghostex-help to answer from the built-in Ghostex guide and help with the requested setting.'

policy:
  allow_implicit_invocation: false
```

## File: README.md
upstream: https://github.com/maddada/ghostex/blob/main/README.md

```text
<div align="center">

# <a href="https://ghostex.dev"><img src="media/ghostex-marketplace-icon.png" alt="Ghostex" width="72" valign="middle" /></a> Ghostex <br>The Best Native Agents Workspace
</div>

<p align="center">
<a href="https://discord.gg/df7b3G92CS"><picture><source media="(prefers-color-scheme: dark)" srcset="https://shieldcn.dev/badge/Discord-Join%20the%20community.svg?variant=branded&logo=discord&mode=dark" /><img src="https://shieldcn.dev/badge/Discord-Join%20the%20community.svg?variant=branded&logo=discord&mode=light" alt="Join the Discord" /></picture></a>
</p>

<p align="center">
  <a href="https://github.com/maddada/Ghostex/stargazers"><picture><source media="(prefers-color-scheme: dark)" srcset="https://shieldcn.dev/github/stars/maddada/Ghostex.svg?variant=secondary&mode=dark" /><img src="https://shieldcn.dev/github/stars/maddada/Ghostex.svg?variant=secondary&mode=light" alt="GitHub stars" /></picture></a>
  <a href="https://github.com/maddada/Ghostex/releases/latest"><picture><source media="(prefers-color-scheme: dark)" srcset="https://shieldcn.dev/github/release/maddada/Ghostex.svg?variant=secondary&mode=dark" /><img src="https://shieldcn.dev/github/release/maddada/Ghostex.svg?variant=secondary&mode=light" alt="Latest release" /></picture></a>
  <a href="LICENSE"><picture><source media="(prefers-color-scheme: dark)" srcset="https://shieldcn.dev/github/license/maddada/Ghostex.svg?variant=secondary&mode=dark" /><img src="https://shieldcn.dev/github/license/maddada/Ghostex.svg?variant=secondary&mode=light" alt="License" /></picture></a>
  <br />
  <a href="#install"><picture><source media="(prefers-color-scheme: dark)" srcset="https://shieldcn.dev/badge/platforms-macOS%20%C2%B7%20Windows%20%C2%B7%20Linux%20%C2%B7%20Android%20%C2%B7%20iOS.svg?variant=secondary&mode=dark" /><img src="https://shieldcn.dev/badge/platforms-macOS%20%C2%B7%20Windows%20%C2%B7%20Linux%20%C2%B7%20Android%20%C2%B7%20iOS.svg?variant=secondary&mode=light" alt="Supported platforms: macOS, Windows, Linux, Android, iOS" /></picture></a>
</p>

<h3 align="center"><a href="#install"><ins>Download Ghostex</ins></a> &nbsp;·&nbsp; <a href="https://ghostex.dev">Website</a> &nbsp;·&nbsp; <a href="https://youtu.be/QzjFB4J6-8E">Watch the 3-minute tour</a>  &nbsp;·&nbsp; <a href="https://www.youtube.com/watch?v=cJgogrS4mao">Watch the Demo</a></h3>

<p align="center">
  <a href="media/readme/gx-hero-1.webp">
    <picture>
      <img width="960" src="media/readme/gx-hero-1.webp" />
    </picture>
  </a>
</p>

<p align="center">
  <a href="media/readme/gx-hero-2.webp">
    <picture>
          <img width="960" src="media/readme/gx-hero-2.webp" />
    </picture>
  </a>
</p>

<p align="center">
  <a href="media/readme/gx-hero-3.webp">
    <picture>
      <img width="960" src="media/readme/gx-hero-3.webp" />
    </picture>
  </a>
</p>

Ghostex is built for developers who keep many agents alive at once. A chat view for every agent, a native Rust/GPUI shell, embedded Chromium panes, and a mobile app share one workspace, and every session survives restarts.

## Features

<h3 align="center">📱 iOS and Android apps with Easy Connect&nbsp;or&nbsp;Tailscale</h3>

<p align="center">Your agents in your pocket. Easy Connect pairs your phone with a single scan, no extra accounts needed, or join through your Tailscale tailnet if you already have one. Read transcripts, send follow-ups, preview localhost pages, and get a push when an&nbsp;agent&nbsp;finishes.</p>

<p align="center"><img src="media/readme/gx-phone.gif" alt="Pairing the phone app, then sessions and a chat on the phone" width="70%" /></p>

<br/>

<h3 align="center">💬 Chat &amp;&nbsp;CLI&nbsp;views</h3>

<p align="center">Talk to Claude Code, Codex, or any other agent in a proper chat GUI: clickable images, readable diffs, queued prompts, sub-agents in view, and a full editor for long messages. If you ever need the raw CLI, it is one hotkey away and your draft comes&nbsp;with&nbsp;you.</p>

<p align="center"><img src="media/readme/gx-diff.png" alt="A chat showing the agent's code change as a diff" width="70%" /></p>

<br/>

<h3 align="center">🔀 Any agent, swap on&nbsp;the&nbsp;fly</h3>

<p align="center">Claude Code, Codex, OpenCode, Pi, Gemini, Grok, Cursor, and more. Pick the model and effort from the chat box, or hand a session from one agent to&nbsp;another&nbsp;mid‑task.</p>

<p align="center"><img src="media/readme/gx-agent-picker.png" alt="The model picker switching between agents" width="70%" /></p>

<br/>

<h3 align="center">📝 Annotate Markdown, HTML&nbsp;and&nbsp;diagrams</h3>

<p align="center">Open plans, HTML prototypes, and Excalidraw diagrams next to your agent, select anything, and leave a note or mark it Looks good, Clarify, or Needs tests. One click sends every note to the agent's prompt as numbered feedback with&nbsp;line&nbsp;numbers.</p>

<p align="center"><img src="media/readme/gx-annotate.png" alt="A Markdown plan in the Files view with a comment, a Clarify mark and a Needs tests mark in the Annotations list" width="70%" /></p>

<br/>

<h3 align="center">🤖 Agents that&nbsp;run&nbsp;agents</h3>

<p align="center">Agents can open sessions, send prompts, and read replies from other agents through the <code>ghostex</code> command. Ask Claude Code to spin up Codex sub-agents and steer them, or hand the work to a coordinator that keeps track of them&nbsp;for&nbsp;you.</p>

<p align="center"><img src="media/readme/gx-threads.png" alt="A coordinator with its threads in the sidebar and the Workers panel" width="70%" /></p>

<br/>

<h3 align="center">📊 Charts and tables in&nbsp;the&nbsp;chat</h3>

<p align="center">Ask for <code>$ghostex-visuals</code> and agents answer with charts, tables, and stat tiles drawn right in the chat, or publish an HTML page that opens as a card. Same look on desktop, web,&nbsp;and&nbsp;phone.</p>

<p align="center"><img src="media/readme/gx-visuals.png" alt="A chat reply with stat tiles, a bar chart and a table of failing tests" width="70%" /></p>

<br/>

<h3 align="center">⏭️ Queue your&nbsp;next&nbsp;prompts</h3>

<p align="center">Keep typing while the agent works. Press <kbd>Tab</kbd> to queue a prompt and it waits above the input until the agent is free; drag to reorder, or press play on a message you already sent to interrupt and deliver it&nbsp;right&nbsp;away.</p>

<p align="center"><img src="media/readme/gx-queue.png" alt="An agent at work with two queued prompts waiting above the chat input" width="70%" /></p>

<br/>

<h3 align="center">🔎 Find any&nbsp;past&nbsp;session</h3>

<p align="center">Fuzzy search every prompt you ever sent, across all your agents, and press <kbd>Enter</kbd> to resume the conversation. Star favourites and filter by agent or project. Also available as <code>gx f</code> for&nbsp;command‑line&nbsp;fans.</p>

<p align="center"><img src="media/readme/gx-search.png" alt="Searching every past prompt" width="70%" /></p>

### Also in the box

- **Built-in IDE**: an optional VS Code editor that loads on demand and sleeps when you are not using it.
- **Remote machines**: connect another computer with an Easy Connect code or SSH and it shows up in the sidebar.
- **Usage and accounts**: Claude and Codex limits at a glance, with automatic account switching.
- **Worktrees, splits, and spaces**: a worktree per task, split panes, Arc-style spaces.
- **Automations**: scheduled prompts, plus menu bar and sound notifications.
- **Optional plugins**: browser, Kanban, IDE, Docs, and more load only when you use them. Or write your own.

---

## Supported agents

Works with **any coding agent**. Bring the one you already use.

<p>
  <a href="https://docs.anthropic.com/claude/docs/claude-code"><kbd><img src="https://www.google.com/s2/favicons?domain=anthropic.com&sz=64" alt="" width="16" valign="middle" /> Claude Code</kbd></a> &nbsp;
  <a href="https://github.com/openai/codex"><kbd><img src="https://www.google.com/s2/favicons?domain=openai.com&sz=64" alt="" width="16" valign="mi
```
