What does this skill do, and when should you use it?
This skill, one of 25 bundled in the manaflow-ai/cmux repository at skills/cmux-custom-sidebar/SKILL.md, guides an AI coding agent to author and enable a custom cmux sidebar from a user's verbal description such as "a sidebar showing my workspaces." It writes a SwiftUI-style file into ~/.config/cmux/sidebars/ that cmux interprets at runtime, hot-reloads on save, binds to live state (workspaces, tabs, git, PRs, ports, clock), and runs real cmux commands on tap. The prerequisite is the cmux app on macOS with the Custom sidebars beta flag enabled.
- Writes a SwiftUI-style sidebar file at ~/.config/cmux/sidebars/<name>.swift from a plain-language description (single view expression, no struct/imports)
- Directs enabling the beta flag under Settings > Beta features > Custom sidebars (customSidebars.beta.enabled)
- Runs cmux sidebar validate <name> and cmux sidebar select <name>, then iterates via hot reload on save
- Binds to a read-only live context refreshing about once per second: workspaces (branch, PRs, ports, status, tabs), clock, and scalars
- Wires Button/onTapGesture to cmux("workspace.select", ...) style actions so rows are tappable
- Uses Reorderable for persisted drag-and-drop reordering and respects the supported subset with list capping (e.g. .prefix(20))
- A macOS developer running parallel Claude Code / Codex sessions who wants one sidebar overviewing all workspaces with one-click jumping
- A user who wants to see each workspace's git branch, PR status, listening ports, and unread notifications at a glance
- A user who wants a custom clock or date display at the top of their sidebar
- A heavy cmux user who wants drag-and-drop workspace reordering that persists
- Someone who does not want to learn SwiftUI or install Xcode and just wants to describe the sidebar they want
- Non-macOS users: cmux is macOS-only and this skill entirely depends on the cmux app
- Situations requiring two-way editing inside the sidebar: @State and input controls (TextField, Toggle, Slider, Picker) are not yet supported
- Users unwilling to enable beta features or accept the GPL-3.0-or-later licensing
How do you install this skill?
- Sidebar files hot-reload on save and can run real cmux commands; review generated content manually before enabling it.
- The skill fetches docs from raw.githubusercontent.com, which may be unreachable from mainland China networks; prefer the local `cmux docs sidebars` command.
- The host app is macOS-only and custom sidebars are a beta feature; unsuitable for non-macOS or beta-disabled environments.
- Repository license metadata is NOASSERTION (actually a GPL-3.0 + BUSL mix); verify licensing boundaries before commercial use.
- This was a static review with nothing executed; validate/hot-reload behavior is independently unverified.
- Shell / CLI
- Network access
- Local filesystem
cmux app (macOS)cmux CLI~/.config/cmux/sidebars/ directory
The skill lives at skills/cmux-custom-sidebar/SKILL.md in the manaflow-ai/cmux repo. The source does not document a dedicated install command for this skill (no marketplace or CLI one-liner, and no stated copy-into-agent-skills-directory steps); consult the repo's contributor guide or your agent's skill-installation docs for actual steps. The prerequisite is installing the cmux app itself:
macOS (Homebrew, the cmux app)
brew tap manaflow-ai/cmux
brew install --cask cmuxmacOS (DMG)
# Download cmux-macos.dmg from GitHub Releases and drag to ApplicationsAfter installing cmux, enable the beta inside cmux
# Settings > Beta features > Custom sidebars (customSidebars.beta.enabled)How do you use this skill?
Once installed, send your agent any of these to trigger it:
- Build me a sidebar that shows all my cmux workspaces and unread notifications, with one-click jumping
- Make a cmux sidebar with a clock and the current workspace's git branch
- I want a sidebar showing each workspace's PR status that I can drag to reorder
- Cap my sidebar list to the first 20 rows and sort by status
Describe the sidebar you want in plain language (e.g. "a sidebar that shows my workspaces, PRs, and the clock"); the agent triggers this skill and follows this flow:
cmux docs sidebars
cmux sidebar validate <name>
cmux sidebar select <name>
cmux sidebar reloadThe flow: confirm the beta flag is on; write a kebab-case-named .swift file directly under ~/.config/cmux/sidebars/ (prefer .swift over static . for dynamic content); validate and select; saving hot-reloads in place, and you verify real data and tap behavior before declaring done. Options include Reorderable for persisted reordering, .prefix(20) to cap long lists (the sidebar re-evaluates about once a second), and openURL for links. The full supported view/modifier/data-field contract is available via cmux docs sidebars.
What are this skill's strengths and limitations?
- No Xcode, build step, or signing — a single SwiftUI-style file is interpreted at runtime
- Hot reload on save, with inline validation errors and last-working render preserved on a broken save
- Binds to real cmux state (workspaces, git, PRs, ports, clock) refreshing about once per second
- Rows run actual cmux commands on tap instead of being static display
- Hard dependency on the cmux app and its Custom sidebars beta flag; unusable off macOS
- No support yet for @State, input controls (TextField/Toggle/Slider/Picker), custom struct/View, sheet/popover, or AsyncImage — two-way editing does not work
- Unsupported syntax is skipped gracefully, which can yield a half-blank sidebar
- The source provides no dedicated install commands or test suite for this skill
How does this skill compare with similar options?
Side by side with related skills; every score comes from the same FSRS standard.
| Skill | FS score | Stars | Last updated | License |
|---|---|---|---|---|
| cmux Custom Sidebar this page | 50 · Use with care | ★ 28k | 1d ago | NOASSERTION |
| cmux Workspace Skill | 64 · Recommended | ★ 28k | 1d ago | NOASSERTION |
| cmux Debugging Skill | 56 · Use with care | ★ 28k | 1d ago | NOASSERTION |
| cmux Customization | 55 · Use with care | ★ 28k | 1d ago | NOASSERTION |
| cmux Core Control | 47 · Use with care | ★ 28k | 1d ago | NOASSERTION |
The repo contrasts cmux with tmux: tmux is a multiplexer running inside any terminal, while cmux is a native macOS app with built-in vertical tabs, splits, an embedded browser, and a socket API. On top of that, this skill offers something tmux lacks: a customizable sidebar UI authored from SwiftUI-style files.
How did FollowSkills review this skill?
Skill only writes to the user's own ~/.config/cmux/sidebars/, small and reversible surface (delete the file to roll back); the curl to docs/custom-sidebars.md is an external fetch but same-repo sourced, so data flow is mostly transparent; sidebar taps execute real cmux(...) commands but that is user-authored content with no malicious indicators. Deductions: hot reload makes saves take effect immediately with no explicit confirmation step; the doc-fetch step mixes `cmux docs` with a public curl without cache/integrity explanation; no verifiable publisher attribution.
SKILL.md is highly self-consistent: naming, beta flag, validate/select, hot reload, and troubleshooting map item-by-item; 'unsupported syntax is skipped gracefully' and 'broken save keeps last working render' describe controlled failure modes. Deductions: static review cannot execute `cmux sidebar validate` or other key paths; repo CI does not cover the sidebar interpreter's consistency with this doc; failure-message quality is only a textual promise.
Frontmatter trigger description is precise (custom sidebar, workspaces/tabs/PRs/clock, ~/.config/cmux/sidebars/ path) and the unsupported subset (@State, TextField, two-way editing, etc.) is explicitly listed, giving clear boundaries. Deductions: hard dependency on the macOS-only cmux app; no Chinese-language support declared; distribution channels for the host app may be hard to reach from mainland China.
Good layering: workflow summary plus pointer to the full contract (cmux docs sidebars), quick-start example, live data field tables, and four troubleshooting entries. Deductions: repo metadata shows License NOASSERTION (actual GPL-3.0 + BUSL mix, ownership of the skill file itself not fully explicit); no version/changelog for the skill; stability and deprecation path of the beta feature unstated.
Clear goal (generate a usable sidebar file from plain language), a directly copyable quick-start example, and a validate command checking against real data shapes give real marginal value over manual authoring. Deductions: static review cannot confirm the example renders correctly in the real cmux renderer; output completeness depends on a beta flag, so evidence is limited.
Auditable primary material exists: full SKILL.md, example code, and field schemas are all checkable in-repo, and the repo has real CI and test suites. Deductions: CI/tests do not cover this skill's key paths (sidebar interpreter vs. doc consistency); no independent third-party corroboration of rendered results; fact/inference boundaries rest on a single source.
Open a dimension to read why it scored that way
Evidence confidence:Low — Mostly static review, author material or a limited demo; useful for discovery, not high-risk decisions.
See the full review method →