OpenClaw
Deploy a managed OpenClaw agent in 60 seconds
Launch on Hostinger →
Hermes Agent
Run your Hermes agent, fully managed
Launch on Hostinger →
Apify
6,000+ web scrapers for your agent, free to start
Try Apify free →
Firecrawl
Crawl and scrape any site into clean data
Try Firecrawl free →
Context.dev
One API to scrape, enrich, and extract the web
Start building free →
SetupClaw
Done-for-you OpenClaw for founders and teams
Get it set up for you →
DataForSEO
SEO data APIs for your agent, $1 free credit
Try DataForSEO free →
Your product here
Reach thousands of AI builders a month
Learn more →
Claude Market
Menu
SkillsMCPPluginsSubmit MCPSkillPluginMCPMCP, plugin, or skillAdvertise
Claude Market
SkillsMCPPluginsSubmit MCPSkillPluginMCPMCP, plugin, or skillAdvertise
Skills/manaflow-ai/cmux/cmux-custom-sidebar
cmux-custom-sidebar logo

cmux-custom-sidebar

manaflow-ai/cmux
665 installs23K stars
Run it on Hostinger, 20% off →Your friend gets 20% off too, using this linkFree API →|External DownloadsCommand ExecutionPrompt Injection|View on GitHub|Create your own skill →

Installation

npx skills add https://github.com/manaflow-ai/cmux --skill cmux-custom-sidebar

Summary

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

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 can run real cmux commands on tap.

The person asking is usually describing a result ("a sidebar that shows my workspaces and lets me jump between them"), not an implementation. Turn that into a clean, native-looking sidebar and make the engineering decisions for them. Do not ask them about SwiftUI, files, or syntax.

Full reference

This skill is the workflow summary. The complete authoring contract (every supported view, modifier, language feature, and data field) is one command away; read it before writing a non-trivial sidebar:

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

Workflow

  1. Enable the beta (once). Custom sidebars are behind Settings → Beta features → Custom sidebars (customSidebars.beta.enabled). If a written sidebar does not appear in the picker, this flag is the first thing to check.
  2. Write a named file. The name becomes the menu label; use short kebab-case:
   ~/.config/cmux/sidebars/<name>.swift

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.

  1. Validate and select it:
   cmux sidebar validate <name>   # parse/interpret check with real data shapes
   cmux sidebar select <name>     # switch the sidebar to it

The user can also pick it manually: right-click the sidebar toggle button.

  1. Iterate. Saving the file hot-reloads the sidebar in place (cmux sidebar reload forces it). Look at the result, fix what looks off, and verify rows show real data and taps do the right thing before declaring it done.

Authoring rules

  • Default to live data. Bind to the workspaces context instead of hard-coding text so the sidebar stays correct on its own.
  • Make it interactive by default. Rows that represent something openable should run the matching cmux(...) action on tap. A list that just displays text is rarely what they wanted.
  • Prefer Reorderable for workspace-like lists. It gives persisted drag-and-drop reordering for free.
  • Keep it native and uncluttered: a title, a divider, then the content.
  • Cap long lists (.prefix(20), filter/sort before rendering). The sidebar re-evaluates about once a second; do not render hundreds of rows.
  • Stay inside the supported subset. Unsupported syntax is skipped gracefully (never crashes), but choose the closest supported approach rather than shipping a half-blank sidebar.

Quick start

cat > ~/.config/cmux/sidebars/mine.swift <<'SWIFT'
VStack(alignment: .leading, spacing: 8) {
    Text("My sidebar").font(.title3).bold()
    Text(clock.time).font(.caption).foregroundColor(.secondary)
    Divider()
    Reorderable(workspaces, move: "workspace.reorder") { w in
        Button(action: { cmux("workspace.select", workspace_id: w.id) }) {
            HStack {
                Text(w.selected ? "●" : "○").foregroundColor(w.selected ? "#FF8800" : .secondary)
                Text(w.title)
                Spacer()
            }.padding(4)
        }
    }
}
SWIFT
cmux sidebar validate mine && cmux sidebar select mine

Live data context (read-only, refreshes ~1s)

  • workspaces: array with id, title, selected, pinned, index, directory, ports + portCount, unread, tabs + tabCount; plus, when present: description, color, branch + dirty, pr / prs ({number, label, url, status, stale, branch}), progress ({value, label}), latestMessage, latestPrompt, latestAt, remote ({target, state, connected}).
  • workspaces[i].tabs: id, title, focused, pinned; plus directory, branch + dirty, ports when available.
  • clock: {time, hour, minute, second, weekday, epoch}.
  • Scalars: workspaceCount, selectedTitle, selectedId, unreadTotal.

Optional fields are omitted when absent; guard with if let b = w.branch { ... } or w.pr != nil ? ... : ....

Actions

A button or .onTapGesture body calls cmux("<method>", param: value), dispatched through the same surface as the cmux CLI. Common methods: workspace.select (workspace_id), surface.focus (surface_id), workspace.reorder (workspace_id + index). openURL("https://...") opens links. Discover the full command surface with cmux docs api.

Supported subset at a glance

Containers: stacks (incl. lazy), Group, List, Section, grids, ViewThatFits, ScrollView, HSplitView (two resizable columns). Content: Text, Label, Image(systemName:), Button (title and label form), Menu, ProgressView, Gauge, Spacer, Divider, shapes, gradients via .background. Modifiers: full typography set, colors as hex strings or tokens, .padding/.frame/layout, .background/.overlay/.mask/.contextMenu with arbitrary nested views, shadows/borders/opacity/effects, .onTapGesture, .help, .disabled. Language: let, user func helpers, for/ForEach, if/else, ternary, string interpolation, arithmetic, array methods (filter/map/sorted/prefix/...), string and number formatting.

Not yet supported (write the natural Swift anyway; it degrades gracefully): @State and input controls (TextField, Toggle, Slider, Picker), custom struct/View definitions, navigation (sheet/popover), AsyncImage. Two-way editing does not work yet; taps that run cmux(...) do.

Troubleshooting

  • Sidebar missing from the right-click picker: the beta flag is off, or the file is not directly under ~/.config/cmux/sidebars/.
  • Blank or partial render: run cmux sidebar validate <name>; errors show inline in the sidebar with the failing location. A broken save keeps the last working render on screen, so re-save after fixing.
  • Rows not tappable: wrap the row in Button(action: { cmux(...) }) { ... } or add .onTapGesture { cmux(...) }.
  • Reorder not persisting: use Reorderable(data, move: "workspace.reorder"), not List/.onMove/.draggable.

Score

0–100
65/ 100

Grade

C

Popularity17/30

665 installs — growing adoption. Source repo has 23,313 GitHub stars.

Completeness27/30

Documented: full SKILL.md body, description, one-line install. Missing: category/license metadata.

Trust15/25

Community skill with a public GitHub source repository you can review.

Freshness6/15

No update timestamp is tracked for this skill in our catalog.

Scored automatically from popularity, completeness, trust, and freshness — computed only from data in our catalog, never fabricated.

Proud of your score? Add this badge to your README.

Paste a snippet into your GitHub README. The badge updates automatically and links back to this page.

Cmux Custom Sidebar skill score badge previewScore badge

Markdown

[![Cmux Custom Sidebar skill](https://www.claudemarket.ai/skills/manaflow-ai/cmux/cmux-custom-sidebar/badges/score.svg)](https://www.claudemarket.ai/skills/manaflow-ai/cmux/cmux-custom-sidebar)

HTML

<a href="https://www.claudemarket.ai/skills/manaflow-ai/cmux/cmux-custom-sidebar"><img src="https://www.claudemarket.ai/skills/manaflow-ai/cmux/cmux-custom-sidebar/badges/score.svg" alt="Cmux Custom Sidebar skill"/></a>

Cmux Custom Sidebar FAQ

How do I install the Cmux Custom Sidebar skill?

Run “npx skills add https://github.com/manaflow-ai/cmux --skill cmux-custom-sidebar” in your terminal. The skill is added to your agent's skills directory and picked up automatically on the next run — no restart or extra configuration needed.

What does the Cmux Custom Sidebar skill do?

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. The full SKILL.md on this page shows the exact instructions the skill gives your agent.

Is the Cmux Custom Sidebar skill free?

Yes. Cmux Custom Sidebar is a free, open-source skill published from manaflow-ai/cmux. As with any third-party skill, review the source repository before installing it into an agent with sensitive access.

Does Cmux Custom Sidebar work with Claude Code and OpenClaw?

Yes. Skills use the portable SKILL.md format, so Cmux Custom Sidebar works with Claude Code, OpenClaw, Codex, Hermes, and any other agent that reads SKILL.md skills.

Recommended skills

Browse all →
find-skills logo

find-skills

vercel-labs/skills

2.8M installsInstall
grill-me logo

grill-me

mattpocock/skills

766K installsInstall
frontend-design logo

frontend-design

anthropics/skills

746K installsInstall
grill-with-docs logo

grill-with-docs

mattpocock/skills

651K installsInstall
agent-browser logo

agent-browser

vercel-labs/agent-browser

633K installsInstall
improve-codebase-architecture logo

improve-codebase-architecture

mattpocock/skills

626K installsInstall

Related guides

Hand-picked reading to help you choose, install, and use agent skills.

Guide10 Openclaw Skills Every Nextjs Developer NeedsGuideHow To Build Your First Openclaw SkillGuideBest Openclaw Skills 2026

Skills by category

FrontendBackend & APIsTesting & QASecurityDevOps & CI/CDMCP & ToolingAutomationData & Analysis+20 more

MCP servers by category

AI & MLDeveloper ToolsVector & MemoryFiles & DocsDatabasesFinance & PaymentsBrowser & ScrapingCommunication+8 more

Plugins by category

developmentproductivitycommunicationdesignsecuritydatabaseworkflowcompliance+34 more

The Agent Stack

Weekly Claude Code, Agent SDK, and MCP moves worth your time — free.

Claude Market

AI agent skills directory, marketplace, and workflow hub for OpenClaw, Hermes Agent, Claude Code, Codex, and MCP-powered operator stacks.

Independent project, not affiliated with Anthropic.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Plugins

More

  • Submit a Tool
  • Create a Skill
  • Advertise
  • Free Tools
  • API
  • Shipping
  • Contact
  • Terms
  • Privacy
© 2026 Claude Market · Not affiliated with Anthropic
Fazier badgeFeatured on Twelve ToolsFeatured on Wired BusinessRemote OpenClaw - Featured on AI Agents DirectoryListed on Turbo0Featured on Uneed