MCPInstall

cmux-groups

Manage cmux sidebar workspace groups via the CLI and /.config/cmux/cmux.json. Trigger on workspace group, group sidebar, tab group, anchor workspace, cmux workspace group, cmux workspace-group, or any cmux.json workspaceGroups key.

Installs
55
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/manaflow-ai/cmux-skills --skill cmux-groups
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads cmux-groups automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

cmux workspace groups

Workspace groups are collapsible named sections in the cmux sidebar. Each group is owned by an anchor workspace. The group header is the anchor's sidebar representation, so there is no separate row for the anchor. Closing the anchor dissolves the group while preserving the other members as ungrouped workspaces.

CLI

Prefer the canonical noun form:

cmux workspace group list [--json]
cmux workspace group create --name <name> [--cwd <path>] [--from <id>,<id>]
cmux workspace group ungroup <group-id>
cmux workspace group delete <group-id>
cmux workspace group rename <group-id> --name <new>
cmux workspace group collapse <group-id>
cmux workspace group expand <group-id>
cmux workspace group pin <group-id>
cmux workspace group unpin <group-id>
cmux workspace group add --group <group-id> --workspace <workspace-id>
cmux workspace group remove --workspace <workspace-id>
cmux workspace group set-anchor --group <group-id> --workspace <workspace-id>
cmux workspace group new-workspace <group-id> [--placement afterCurrent|top|end]
cmux workspace group set-color <group-id> [--hex #RRGGBB]
cmux workspace group set-icon <group-id> [--symbol <sf-symbol>]
cmux workspace group move <group-id> --to-index <n> | --before <group-id> | --after <group-id>
cmux workspace group focus <group-id>

cmux workspace-group ... is a compatibility alias for the same operations. <group-id> accepts UUIDs or refs such as workspace_group:1. All commands honor --json.

create inserts a fresh anchor workspace. It does not promote an existing workspace into the anchor. --from lists workspaces that become children under the new anchor. When --from is omitted, cmux uses the active sidebar selection or caller workspace when available.

ungroup dissolves a group while keeping every member workspace alive, including the anchor, which becomes a regular ungrouped workspace. delete is destructive and closes every workspace in the group.

new-workspace runs the group's new-workspace behavior: a new workspace is created at the anchor cwd and joined to the group. Placement can be passed explicitly, resolved from per-cwd config, or resolved from the global group default.

Socket methods

The CLI is a thin wrapper over the v2 JSON socket API. Anything callable via CLI is also callable directly:

workspace.group.list
workspace.group.create        { name, cwd?, child_workspace_ids? }
workspace.group.ungroup       { group_id }
workspace.group.delete        { group_id }
workspace.group.rename        { group_id, name }
workspace.group.collapse      { group_id }
workspace.group.expand        { group_id }
workspace.group.pin           { group_id }
workspace.group.unpin         { group_id }
workspace.group.add           { group_id, workspace_id }
workspace.group.remove        { workspace_id }
workspace.group.set_anchor    { group_id, workspace_id }
workspace.group.new_workspace { group_id, placement? }
workspace.group.set_color     { group_id, hex? }
workspace.group.set_icon      { group_id, symbol? }
workspace.group.move          { group_id, to_index? | before_group_id? | after_group_id? }
workspace.group.focus         { group_id }

All accept the standard window_id / window_ref parameter to target a non-focused window.

Configuration (~/.config/cmux/cmux.json)

Per-group settings are keyed by the anchor cwd. Keys with * or ? are fnmatch globs with ~ expansion. Other keys are path prefixes. Longest match wins.

{
  "workspaceGroups": {
    "newWorkspacePlacement": "afterCurrent",
    "byCwd": {
      "/abs/path/to/repo": {
        "color": "#7A4FD8",
        "icon": "ladybug.fill",
        "newWorkspacePlacement": "top",
        "contextMenu": [
          { "action": "newWorktreeAction", "title": "New Worktree" },
          { "action": "newWorkspace" }
        ]
      },
      "~/projects/*": {
        "icon": "leaf.fill",
        "newWorkspacePlacement": "end"
      }
    }
  }
}

workspaceGroups.newWorkspacePlacement and workspaceGroups.byCwd[...].newWorkspacePlacement accept:

  • afterCurrent: after the active in-group workspace. It falls back to top when there is no active member reference.
  • top: second slot, right after the anchor.
  • end: after the last member.

Resolution order for group new-workspace placement:

  1. Explicit --placement afterCurrent|top|end on the CLI, or "placement" in workspace.group.new_workspace.
  2. Per-cwd workspaceGroups.byCwd[...].newWorkspacePlacement.
  3. Global workspaceGroups.newWorkspacePlacement.
  4. Built-in default afterCurrent.

Cmd-N inside a group uses the active group workspace as the placement reference. The group header + button and CLI path use the anchor as the reference, so afterCurrent behaves like top there.

Group context-menu items use the same schema as ui.newWorkspace.contextMenu; actions must be defined in the global actions block or be built-in actions such as newWorkspace.

Keyboard

Default shortcut: Cmd-Shift-G groups the sidebar-selected workspaces. It falls back to the focused workspace when no sidebar selection exists. Rebind it in Settings > Keyboard.

Anchor semantics

  • Anchor identity lives on the group (anchorWorkspaceId), not as a flag on the workspace.
  • The anchor renders as the group header, with no separate sidebar row.
  • Closing the anchor dissolves the group after a confirm dialog.
  • set-anchor reassigns which member is the anchor; the previously-anchor workspace becomes a regular member with its own sidebar row.

Persistence

Groups and membership round-trip through ~/Library/Application Support/cmux/session-<bundle-id>.json via the existing SessionPersistenceStore. Atomic rename-into-place writes; no WAL.

Rules

  • Prefer CLI or socket operations over editing session JSON.
  • Do not write unsupported future config keys. Check web/data/cmux.schema.json in cmux when unsure.
  • Preserve anchor semantics when scripting: moving a group means moving the anchor section, not only a child workspace row.
  • Use ungroup when workspaces should survive; use delete only when every workspace in the group should close.

FAQ

What does the cmux-groups skill do?

Manage cmux sidebar workspace groups via the CLI and /.config/cmux/cmux.json. Trigger on workspace group, group sidebar, tab group, anchor workspace, cmux workspace group, cmux workspace-group, or any cmux.json workspaceGroups key.

How do I install cmux-groups?

Run npx skills add https://github.com/manaflow-ai/cmux-skills --skill cmux-groups in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/cmux-groups/ (personal) or .claude/skills/cmux-groups/ (project).

Which AI agents can use cmux-groups?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is cmux-groups safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains cmux-groups?

It is published by manaflow-ai in manaflow-ai/cmux-skills. It has 55 recorded installs.

More from manaflow-ai/cmux-skills

View all →

cmux-cli

manaflow-ai/cmux-skills

Comprehensive cmux CLI usage guide. Use when the user asks about cmux CLI, cmux --help, socket commands, command discovery, workspaces, panes, surfaces, browser CLI, hooks, feed, settings, or automation through the cmux command.

cmux-workspace

manaflow-ai/cmux-skills

Work inside the current cmux workspace and terminal. Use for cmux workspace, current workspace, caller surface, panes, surfaces, tagged reloads, socket targeting, and non-interfering cmux automation.

cmux-browser

manaflow-ai/cmux-skills

Automate the browser inside cmux. Use for cmux browser, browser surface, webview, current workspace browser, snapshot refs, DOM actions, waits, screenshots, cookies, storage, tabs, downloads, console, errors, and browser session state.

cmux-ref

manaflow-ai/cmux-skills

Interpret pasted cmux workspace, pane, surface, or window refs and IDs. Use for cmux-ref, cmux-id, workspaceref, workspaceid, paneref, paneid, surfaceref, surfaceid, windowref, or windowid context blocks.

718 installs

cmux-config

manaflow-ai/cmux-skills

Configure cmux through /.config/cmux/cmux.json: settings (appearance, sidebar, notifications, automation, browser, shortcuts, set/get/validate by JSON path), customization (tab bar buttons, plus-button click and right-click menus, custom actions/commands/menus, right sidebar), and sidebar workspace groups (anchor workspaces, group CLI/socket ops, per-cwd group config). Triggers: 'cmux config', 'cmux.json', 'change cmux setting', 'set in cmux', 'rebind a cmux shortcut', 'cmux-customize', 'customize cmux', 'tab bar button', 'add cmux action', 'workspace group', 'group sidebar', 'anchor workspace', 'workspaceGroups'.

cmux-artifact

manaflow-ai/cmux-skills

Create durable HTML walkthrough artifacts for cmux dogfood, verification, demos, evidence pages, artifact previews, and open helpful tabs or splits in the current cmux workspace.

Frontend & Design665 installs

Popular other skills

View category →

hyperframes-cli

heygen-com/hyperframes

The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.

1.3M installs

triage

mattpocock/skills

Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.

1M installs

ask-matt

mattpocock/skills

Ask which skill or flow fits your situation. A router over the skills in this repo.

778.4K installs

to-questionnaire

mattpocock/skills

Turn a decision you can't fully answer into a questionnaire for someone else to fill in.

508.9K installs

wait-what

mattpocock/skills

Stop. That last message did not land: re-pitch it.

459.7K installs

loop-me

mattpocock/skills

Grill me about specs for the workflows I want to build, within this workspace.

447.9K installs