Skyvern Browser Automation
Skyvern-AI/skyvern
Picks the right Skyvern CLI command for a web task, from quick yes/no checks to reusable multi-page workflows, instead of falling back to plain page fetching.
Customizes cmux for a user by editing cmux.json actions, workspace layouts, dock controls, tab bar buttons, settings and Ghostty terminal preferences.
$ npx skills add disler/learning-cmux-with-agents --skill cmux-customization -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install disler/learning-cmux-with-agents cmux-customization --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/disler/learning-cmux-with-agents.git skills-src && mkdir -p .claude/skills && cp -r skills-src/ai_docs/cmux-skills/cmux-customization .claude/skills/cmux-customization && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "cmux-customization" agent skill from https://github.com/disler/learning-cmux-with-agents/tree/main/ai_docs/cmux-skills/cmux-customization into .claude/skills/cmux-customization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cmux-customization", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/disler/learning-cmux-with-agents/tree/main/ai_docs/cmux-skills/cmux-customizationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add disler/learning-cmux-with-agents --skill cmux-customization -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install disler/learning-cmux-with-agents cmux-customization --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/disler/learning-cmux-with-agents.git skills-src && mkdir -p .agents/skills && cp -r skills-src/ai_docs/cmux-skills/cmux-customization .agents/skills/cmux-customization && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cmux-customization" agent skill from https://github.com/disler/learning-cmux-with-agents/tree/main/ai_docs/cmux-skills/cmux-customization into .agents/skills/cmux-customization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cmux-customization", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add disler/learning-cmux-with-agents --skill cmux-customization -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install disler/learning-cmux-with-agents cmux-customization --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/disler/learning-cmux-with-agents.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/ai_docs/cmux-skills/cmux-customization .cursor/skills/cmux-customization && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cmux-customization" agent skill from https://github.com/disler/learning-cmux-with-agents/tree/main/ai_docs/cmux-skills/cmux-customization into .cursor/skills/cmux-customization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cmux-customization", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/disler/learning-cmux-with-agents.git --path ai_docs/cmux-skills/cmux-customization--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add disler/learning-cmux-with-agents --skill cmux-customization -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install disler/learning-cmux-with-agents cmux-customization --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/disler/learning-cmux-with-agents.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/ai_docs/cmux-skills/cmux-customization .gemini/skills/cmux-customization && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cmux-customization" agent skill from https://github.com/disler/learning-cmux-with-agents/tree/main/ai_docs/cmux-skills/cmux-customization into .gemini/skills/cmux-customization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cmux-customization", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install disler/learning-cmux-with-agents cmux-customizationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add disler/learning-cmux-with-agents --skill cmux-customization -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/disler/learning-cmux-with-agents.git skills-src && mkdir -p .github/skills && cp -r skills-src/ai_docs/cmux-skills/cmux-customization .github/skills/cmux-customization && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cmux-customization" agent skill from https://github.com/disler/learning-cmux-with-agents/tree/main/ai_docs/cmux-skills/cmux-customization into .github/skills/cmux-customization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cmux-customization", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add disler/learning-cmux-with-agents --skill cmux-customization -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install disler/learning-cmux-with-agents cmux-customization --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/disler/learning-cmux-with-agents.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/ai_docs/cmux-skills/cmux-customization .opencode/skills/cmux-customization && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cmux-customization" agent skill from https://github.com/disler/learning-cmux-with-agents/tree/main/ai_docs/cmux-skills/cmux-customization into .opencode/skills/cmux-customization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cmux-customization", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cmux-customizationCustomizes cmux for a user by editing cmux.json actions, workspace layouts, dock controls, tab bar buttons, settings and Ghostty terminal preferences.
Edits to cmux keep the user's existing config intact, favor schema-backed changes and are validated before the agent reports completion. The skill covers reusable actions defined in cmux.json that can appear in the command palette, surface tab bars, shortcuts and the plus-button right-click menu, plus ui.newWorkspace settings to replace the plus button's click or context menu and ui.surfaceTabBar.buttons to replace the default tab bar buttons.
It also handles commands with workspace definitions that open worktrees, checkouts, local services, browser previews or SSH sessions in a chosen split layout, and dock controls in .cmux/dock.json or a user-level dock.json for logs, test watchers, git TUIs and dev servers. Related surfaces are sent to companions: cmux-settings for app preferences, cmux-workspace for workspace metadata, and cmux hooks setup for Feed and notifications.
Project-local .cmux/cmux.json and dock.json files can share worktree, SSH, review, dev, CI and docs layouts with a repo. For imports, exports and resets it backs up the current config, applies the smallest diff, validates and keeps a rollback path, and terminal fonts, themes, cursor style and keybindings go through the Ghostty config.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 6eaacab. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json and bash).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
cmux Customization loads about 2.4k tokens when it runs, and up to ~4.5k if it reads all its reference files. Until then it costs about 86 tokens; SKILL.md has 822 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from disler/learning-cmux-with-agents at commit 6eaacab, republished under its MIT licence (© disler). 822 words, ~2,446 tokens.
.claude/skills/cmux-customization/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Use this skill for user-facing cmux customization. Keep the user's config intact, prefer schema-backed edits, and validate before reporting completion.
actions in cmux.json. Actions can appear in Cmd+Shift+P, surface tab bars, shortcuts, and the plus-button right-click menu.ui.newWorkspace.action to replace the normal plus-button click, and ui.newWorkspace.contextMenu to control right-click actions. ui.newWorkspace.rightClick is accepted as an alias, but new examples should use contextMenu.ui.surfaceTabBar.buttons to replace the default tab bar buttons. Include built-in IDs such as cmux.newTerminal, cmux.newBrowser, cmux.splitRight, and cmux.splitDown only when they should stay visible.commands with workspace definitions to open a worktree, multiple checkouts, local services, browser previews, or SSH sessions in a deliberate split layout..cmux/dock.json or ~/.config/cmux/dock.json for right-sidebar terminal controls such as logs, test watchers, git TUIs, dev servers, queues, or cmux feed tui --opentui.cmux-settings for supported settings such as appearance, sidebar display, notification behavior, browser routing, automation, shortcuts, and new-workspace placement.cmux-workspace for workspace names, descriptions, colors, read state, and sidebar metadata updates.cmux hooks setup for Feed event sources, notification settings for delivery behavior, and notification hooks in cmux.json for filtering or post-processing banners..cmux/cmux.json and .cmux/dock.json to share worktree, SSH, review, dev, CI, and docs workspace patterns with a repo.cmux-settings for global ~/.config/cmux/cmux.json settings such as appearance, sidebar, notifications, browser behavior, automation, and shortcuts.~/.config/cmux/cmux.json globally or .cmux/cmux.json in the project. Project-local actions and commands override global entries with the same ID or name..cmux/dock.json in the project or ~/.config/cmux/dock.json globally. Run cmux docs dock when available.~/.config/ghostty/config. This includes fonts, cursor style, copy-on-select, shell integration, themes, and terminal keybindings..cmux/cmux.json in the project so actions, commands, UI action wiring, and notification hooks travel with the repo. Do not put global app preferences there.If a request can be handled by Ghostty config, say that and use Ghostty config instead of inventing cmux UI settings.
For reusable patterns such as worktree agents, full-stack dev layouts, SSH
devboxes, PR review workspaces, docs workspaces, quick agent tab buttons, and
CI watches, read references/examples.md. Load it when the user asks for examples, presets,
templates, starter configs, or a known workflow shape.
Inspect existing config before editing.
test -f ~/.config/cmux/cmux.json && sed -n '1,220p' ~/.config/cmux/cmux.json
test -f .cmux/cmux.json && sed -n '1,220p' .cmux/cmux.jsonPick global or project-local scope. Ask only when the choice changes behavior meaningfully. Default to project-local for repo-specific commands and global for app preferences.
Before editing, back up the target file when it already exists:
stamp="$(date +%Y%m%d-%H%M%S)"
test -f ~/.config/cmux/cmux.json && cp -p ~/.config/cmux/cmux.json ~/.config/cmux/cmux.json."$stamp".bak
test -f .cmux/cmux.json && cp -p .cmux/cmux.json .cmux/cmux.json."$stamp".bakUse the applicable path only. Do not create a backup for a missing file.
For app settings and cmux-owned shortcuts, use the settings helper from the installed skill or checkout:
~/.agents/skills/cmux-settings/scripts/cmux-settings list-supported
~/.agents/skills/cmux-settings/scripts/cmux-settings set browser.openTerminalLinksInCmuxBrowser true
~/.agents/skills/cmux-settings/scripts/cmux-settings validateIf the user installed with skills.sh, use ~/.codex/skills/cmux-settings/scripts/cmux-settings instead.
For actions, UI wiring, workspace layouts, notification hooks, and Dock controls, edit JSONC or JSON carefully. Preserve unrelated sections such as vault, rightSidebar, commands, actions, ui, and notifications.
Reload config after successful edits:
cmux reload-configVerify the configured entrypoint exists. For shortcuts, read back the binding. For custom actions, confirm the action ID and where it should appear.
Add a Command Palette action that opens Codex in a new tab. It will appear in Cmd+Shift+P unless palette is false:
{
"actions": {
"codex-new-tab": {
"type": "agent",
"agent": "codex",
"title": "Codex",
"subtitle": "Start Codex in this workspace",
"target": "newTabInCurrentPane",
"palette": true
}
}
}Replace the plus-button click and define the plus-button right-click menu.
This is the pattern for "bring your own worktree, multiple checkouts, or SSH
setup". The workspaceCommand action ID is worktree-agents, and its
commandName must match a command named Worktree Agents in the same config:
{
"actions": {
"worktree-agents": {
"type": "workspaceCommand",
"title": "Worktree Agents",
"commandName": "Worktree Agents",
"icon": { "type": "symbol", "name": "folder.badge.plus" }
}
},
"ui": {
"newWorkspace": {
"action": "worktree-agents",
"contextMenu": [
{ "action": "worktree-agents", "title": "Worktree Agents" },
{ "type": "separator" },
{ "action": "cmux.newTerminal", "title": "New Terminal" },
{ "action": "cmux.newBrowser", "title": "New Browser" }
]
}
},
"commands": [
{
"name": "Worktree Agents",
"description": "Create a worktree and open agents inside it",
"workspace": {
"name": "Worktree Agents",
"cwd": "../worktrees/my-feature",
"layout": {
"direction": "horizontal",
"children": [
{
"pane": {
"surfaces": [
{ "type": "terminal", "name": "Codex", "command": "codex" }
]
}
},
{
"pane": {
"surfaces": [
{ "type": "terminal", "name": "SSH", "command": "ssh devbox" }
]
}
}
]
}
}
}
]
}Add a project workspace layout:
{
"commands": [
{
"name": "dev",
"workspace": {
"name": "Dev",
"cwd": ".",
"layout": {
"direction": "horizontal",
"children": [
{ "pane": { "surfaces": [{ "type": "terminal", "command": "bun dev" }] } },
{ "pane": { "surfaces": [{ "type": "browser", "url": "http://localhost:3000" }] } }
]
}
}
}
]
}Replace surface tab bar buttons:
{
"ui": {
"surfaceTabBar": {
"buttons": [
"cmux.newTerminal",
"cmux.newBrowser",
{
"action": "codex-new-tab",
"title": "Codex",
"icon": { "type": "symbol", "name": "terminal" }
}
]
}
}
}Add project Dock controls:
{
"controls": [
{
"id": "git",
"title": "Git",
"command": "lazygit",
"cwd": ".",
"height": 300
},
{
"id": "feed",
"title": "Feed",
"command": "cmux feed tui --opentui",
"height": 260
}
]
}cmux-settings validate..cmux/dock.json or ~/.config/cmux/dock.json with a JSON parser before reporting completion.cmux reload-config when the CLI is available.© disler, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in ai_docs/cmux-skills/cmux-customization of disler/learning-cmux-with-agents.
Open the folder on GitHubat commit 6eaacab
cmux Customization next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| cmux Customization this skilldisler/learning-cmux-with-agents | 115 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Skyvern Browser AutomationSkyvern-AI/skyvern | 23k | 1 repos | ~2.9k | Automated safety check: Pass | AGPL-3.0 | |
| N8n CLIn8n-io/n8n | 207k | — | ~3k | Automated safety check: Pass | Custom licence | |
| CUAWright Web Task Automationmicrosoft/CUAWright | 6k | — | ~2k | Automated safety check: Notes | MIT | |
| Skyvern Browser AutomationSkyvern-AI/skyvern | 23k | — | ~1.9k | Automated safety check: Pass | AGPL-3.0 | |
| Piece Builderactivepieces/activepieces | 25k | — | ~3.1k | Automated safety check: Notes | Custom licence |
Skyvern-AI/skyvern
Picks the right Skyvern CLI command for a web task, from quick yes/no checks to reusable multi-page workflows, instead of falling back to plain page fetching.
n8n-io/n8n
Use the n8n CLI to manage workflows, credentials, executions, and more on an n8n instance.
microsoft/CUAWright
Solves web tasks by driving a local Playwright browser one bash command at a time, saving a reusable script, screenshots and an action log for each run.
Skyvern-AI/skyvern
Automates websites with Skyvern's AI browser agent to fill forms, extract data, download files, log in and run multi-step workflows through SDKs, REST, MCP or a CLI.
activepieces/activepieces
Build and edit Activepieces pieces (integrations) — creating new pieces, adding actions or triggers, or fixing bugs in existing ones.
n8n-io/n8n
Answers n8n product, setup, credential, node, hosting, API, and usage questions from current n8n docs.
disler/learning-cmux-with-agents
Drives browser surfaces inside cmux from the command line: open sites, snapshot elements, act on refs, wait for state changes and extract data.
disler/learning-cmux-with-agents
Contributor rules for the cmux repo: tagged Debug builds through reload.sh, first-time setup, Xcode project normalization and per-tag sidebar extension points.
disler/learning-cmux-with-agents
Drives the cmux terminal multiplexer from natural language to open, inspect, prompt, read and close windows, workspaces, panes, surfaces and agent sessions.
disler/learning-cmux-with-agents
Testing rules for the cmux Swift codebase: Swift Testing as the default framework, a two-commit regression policy, and tests that check runtime behavior, not source text.
Categories
Customizes cmux for a user by editing cmux.json actions, workspace layouts, dock controls, tab bar buttons, settings and Ghostty terminal preferences. Edits to cmux keep the user's existing config intact, favor schema-backed changes and are validated before the agent reports completion.buttons to replace the default tab bar buttons.
cmux Customization fits situations like: adding a custom action or command palette entry to cmux; replacing the new workspace button's behavior or right-click menu; setting up a dock with test watchers and dev server logs; sharing a team workspace layout through a project .cmux folder.
Run `npx skills add disler/learning-cmux-with-agents --skill cmux-customization -a claude-code`. Or copy the skill folder (ai_docs/cmux-skills/cmux-customization in disler/learning-cmux-with-agents) into .claude/skills/cmux-customization in your project. Claude Code loads it when a task matches its description.
Run `npx skills add disler/learning-cmux-with-agents --skill cmux-customization -a codex`. Or copy the skill folder (ai_docs/cmux-skills/cmux-customization in disler/learning-cmux-with-agents) into .agents/skills/cmux-customization in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add disler/learning-cmux-with-agents --skill cmux-customization -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cmux-customization, .gemini/skills/cmux-customization, .github/skills/cmux-customization and .opencode/skills/cmux-customization in your project.
SKILL.md names no scripts, command-line tools or credentials: cmux Customization is instructions for the agent only. Our summary lists: cmux installed, with its cmux.json configuration.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
cmux Customization is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.1k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with cmux Customization: Skyvern Browser Automation (Skyvern-AI/skyvern, 23k stars), N8n CLI (n8n-io/n8n, 207k stars), CUAWright Web Task Automation (microsoft/CUAWright, 6k stars) and Skyvern Browser Automation (Skyvern-AI/skyvern, 23k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
disler (a GitHub user) maintains it in disler/learning-cmux-with-agents, which has 115 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on June 29, 2026.
Source: disler/learning-cmux-with-agents on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.