# Cmux Custom Sidebar

Build a custom cmux sidebar from a plain-language request.

- Repository: https://github.com/manaflow-ai/cmux (28635 stars)
- Category: Mobile
- License: see repository
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add manaflow-ai/cmux --skill cmux-custom-sidebar -g -a claude-code -y`
Codex: `npx skills add manaflow-ai/cmux --skill cmux-custom-sidebar -g -a codex -y`
Cursor: `npx skills add manaflow-ai/cmux --skill cmux-custom-sidebar -g -a cursor -y`
Gemini CLI: `npx skills add manaflow-ai/cmux --skill cmux-custom-sidebar -g -a gemini-cli -y`

## Description

Build a custom cmux sidebar from a plain-language request. Use when the user asks for a custom sidebar, a sidebar that shows their workspaces/tabs/PRs/clock, a vibe-coded sidebar, or anything involving files in ~/.config/cmux/sidebars/. Covers authoring the interpreted SwiftUI-style file, enabling the beta flag, selecting it, and iterating with hot reload.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# cmux Custom Sidebar

cmux renders custom sidebars from a small SwiftUI-style file at runtime: no Xcode, no build step, no signing. The file hot-reloads on save, binds to live cmux state (workspaces, tabs, git, PRs, clock), and runs real cmux commands on tap.

The person asking is describing a result ("a sidebar that shows my workspaces and lets me jump between them"), not an implementation. Make the engineering decisions for them; do not ask them about SwiftUI, files, or syntax.

This skill is the workflow summary. Read the complete authoring contract (every supported view, modifier, language feature, and data field) before writing a non-trivial sidebar:

```bash
cmux docs sidebars
curl -fsSL https://raw.githubusercontent.com/manaflow-ai/cmux/main/docs/custom-sidebars.md
```

## Workflow

1. **Enable the beta** (once): Settings > Beta features > Custom sidebars (`customSidebars.beta.enabled`). If a written sidebar does not appear in the picker, check this first.
2. **Write a named file** at `~/.config/cmux/sidebars/<name>.swift`. The name becomes the menu label; use short kebab-case. The file is a single SwiftUI-style view expression (no `struct`, no `var body`, no imports). A `.json` variant exists for static layouts; prefer `.swift` for anything dynamic.
3. **Validate and select:**
   ```bash
   cmux sidebar validate <name>   # parse/interpret check with real data shapes
   cmux sidebar select <name>
   ```
   The user can also right-click the sidebar toggle button to pick it.
4. **Iterate.** Saving hot-reloads in place (`cmux sidebar reload` forces it). Verify rows show real data and taps do the right thing before declaring it done.

## Authoring rules

The rest: https://github.com/manaflow-ai/cmux/blob/HEAD/skills/cmux-custom-sidebar/SKILL.md
