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.
Keeps agent actions scoped to the cmux workspace and terminal that invoked it, and lays out pane and surface commands that avoid disrupting the user's own focus.
$ npx skills add basicmachines-co/basic-memory --skill cmux-workspace -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install basicmachines-co/basic-memory cmux-workspace --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/basicmachines-co/basic-memory.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/cmux-workspace .claude/skills/cmux-workspace && 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-workspace" agent skill from https://github.com/basicmachines-co/basic-memory/tree/main/.agents/skills/cmux-workspace into .claude/skills/cmux-workspace/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cmux-workspace", 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/basicmachines-co/basic-memory/tree/main/.agents/skills/cmux-workspaceType 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 basicmachines-co/basic-memory --skill cmux-workspace -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install basicmachines-co/basic-memory cmux-workspace --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/basicmachines-co/basic-memory.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/cmux-workspace .agents/skills/cmux-workspace && 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-workspace" agent skill from https://github.com/basicmachines-co/basic-memory/tree/main/.agents/skills/cmux-workspace into .agents/skills/cmux-workspace/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cmux-workspace", 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 basicmachines-co/basic-memory --skill cmux-workspace -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install basicmachines-co/basic-memory cmux-workspace --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/basicmachines-co/basic-memory.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/cmux-workspace .cursor/skills/cmux-workspace && 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-workspace" agent skill from https://github.com/basicmachines-co/basic-memory/tree/main/.agents/skills/cmux-workspace into .cursor/skills/cmux-workspace/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cmux-workspace", 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/basicmachines-co/basic-memory.git --path .agents/skills/cmux-workspace--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 basicmachines-co/basic-memory --skill cmux-workspace -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install basicmachines-co/basic-memory cmux-workspace --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/basicmachines-co/basic-memory.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/cmux-workspace .gemini/skills/cmux-workspace && 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-workspace" agent skill from https://github.com/basicmachines-co/basic-memory/tree/main/.agents/skills/cmux-workspace into .gemini/skills/cmux-workspace/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cmux-workspace", 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 basicmachines-co/basic-memory cmux-workspaceInstalls 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 basicmachines-co/basic-memory --skill cmux-workspace -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/basicmachines-co/basic-memory.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/cmux-workspace .github/skills/cmux-workspace && 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-workspace" agent skill from https://github.com/basicmachines-co/basic-memory/tree/main/.agents/skills/cmux-workspace into .github/skills/cmux-workspace/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cmux-workspace", 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 basicmachines-co/basic-memory --skill cmux-workspace -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install basicmachines-co/basic-memory cmux-workspace --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/basicmachines-co/basic-memory.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/cmux-workspace .opencode/skills/cmux-workspace && 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-workspace" agent skill from https://github.com/basicmachines-co/basic-memory/tree/main/.agents/skills/cmux-workspace into .opencode/skills/cmux-workspace/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cmux-workspace", 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-workspaceKeeps agent actions scoped to the cmux workspace and terminal that invoked it, and lays out pane and surface commands that avoid disrupting the user's own focus.
The skill defines cmux's vocabulary (window, workspace, pane, surface, panel) and sets a default rule: scope actions to the caller's own workspace unless the user explicitly asks for another one, since an agent can be running in a workspace the user isn't currently looking at. It reads CMUX_WORKSPACE_ID, CMUX_SURFACE_ID and CMUX_SOCKET_PATH from the environment, falling back to cmux identify when they are missing and saying explicitly that the currently focused context is being used.
Layout and focus are treated as separate concerns: commands that change focus, like select-workspace or focus-pane, are described as user-affecting actions akin to clicks and are never called speculatively. The agent is told to build a layout additively in one shot with commands that create a pane already populated with the right surface, pass a focus-preserving flag wherever a verb supports it, and reuse one right-side helper pane for auxiliary output such as preview apps or logs rather than spawning new panes freely.
Read from SKILL.md and the folder at commit cb7407f. 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 bash).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom 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 Workspace Scoping loads about 1.7k tokens when it runs, and up to ~2.5k if it reads all its reference files. Until then it costs about 50 tokens; SKILL.md has 681 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 basicmachines-co/basic-memory at commit cb7407f, republished under its AGPL-3.0 licence (© basicmachines-co). 681 words, ~1,665 tokens.
.claude/skills/cmux-workspace/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Scope work to the cmux workspace that invoked the agent.
Scope actions to the current caller workspace unless the user explicitly asks for another workspace, another window, or global state. Do not assume the visually focused workspace is the right target: an agent can run in one workspace while the user looks at another.
printf 'workspace=%s\nsurface=%s\nsocket=%s\n' \
"${CMUX_WORKSPACE_ID:-}" "${CMUX_SURFACE_ID:-}" "${CMUX_SOCKET_PATH:-}"
cmux identify --jsonCMUX_WORKSPACE_ID is the default workspace anchor and CMUX_SURFACE_ID the default caller terminal anchor. If they are missing, fall back to cmux identify --json and say explicitly that you are using the currently focused context.
Treat layout and focus as separate concerns. select-workspace, focus-pane, focus-panel, and focus-changing tab-action verbs are user-affecting actions, like clicks. Never call them speculatively, even inside the caller's own workspace, since the user may be looking elsewhere.
Build layout additively in one shot, using commands that create a pane already populated with the right surface:
cmux new-pane --workspace "${CMUX_WORKSPACE_ID}" --type browser --direction right --url "http://127.0.0.1:8765"
cmux new-pane --workspace "${CMUX_WORKSPACE_ID}" --type terminal --direction downAvoid create-then-move-then-focus chains. Pass --focus false wherever the verb supports it (move-surface --focus false preserves the user's attention; more commands may grow the flag, see https://github.com/manaflow-ai/cmux/issues/1418 and https://github.com/manaflow-ai/cmux/issues/2820). If a layout command rejects a valid surface: or pane: ref, report the bug and stop rather than working around it by focusing.
For auxiliary output (preview apps, TUIs, logs, one-off shells, browser checks), reuse one helper pane to the right of the caller terminal. Inspect first with cmux identify --json, cmux list-panes, and cmux list-pane-surfaces, then:
cmux new-surface --workspace "${CMUX_WORKSPACE_ID:-}" --pane pane:<helper> --type terminal --focus falsecmux new-pane --workspace "${CMUX_WORKSPACE_ID:-}" --type terminal --direction right --focus falseSend commands to the new or reused surface by explicit surface ref. Repeated "open it" requests create tabs inside the existing right helper pane, not more splits.
The surface that invoked the agent is the safest anchor for relative operations.
cmux send "npm test\n" # focused terminal in caller workspace
cmux send --surface "${CMUX_SURFACE_ID:-}" "git status\n" # exact caller surface
cmux send-key --surface "${CMUX_SURFACE_ID:-}" enterDo not send keystrokes, close surfaces, or change focus in another workspace unless the user named that target.
cmux move-surface --surface "${CMUX_SURFACE_ID}" --before surface:3 # also --after, --index
cmux move-surface --surface surface:240 --pane pane:172 --focus false
cmux drag-surface-to-split --surface surface:240 downKnown papercut: drag-surface-to-split routes through V1 and resolves the workspace via UI focus, so it fails with ERROR: Surface not found when the caller's workspace is not the visually focused one (https://github.com/manaflow-ai/cmux/issues/1901, related https://github.com/manaflow-ai/cmux/issues/3189). Until that lands, build layout additively. Never call focus-pane or focus-panel to recover from a failed move; report the failure and stop.
Attach status, progress, and logs to the current workspace so the sidebar reflects this task.
cmux set-status build "running" --workspace "${CMUX_WORKSPACE_ID:-}" --color "#ff9500"
cmux set-progress 0.4 --label "Building" --workspace "${CMUX_WORKSPACE_ID:-}"
cmux log --workspace "${CMUX_WORKSPACE_ID:-}" --level info -- "Started build"
cmux sidebar-state --workspace "${CMUX_WORKSPACE_ID:-}" --jsonFor cmux app/runtime changes in a cmux source checkout, use a tagged reload from the active worktree. It creates an isolated app name, bundle ID, debug socket, and DerivedData path. Never build or launch untagged cmux DEV.
./scripts/reload.sh --tag <short-tag>
CMUX_SOCKET_PATH=/tmp/cmux-debug-<short-tag>.sock cmux identify --jsonUse the socket path cmux provided before any default: SOCK="${CMUX_SOCKET_PATH:-/tmp/cmux.sock}". Socket access can be off, restricted to cmux-spawned processes, or open to all local processes. If a command cannot connect, inspect cmux capabilities --json and cmux ping before changing settings.
--workspace and --surface flags for mutating actions even when env vars are set, so automation is auditable.focus-pane, focus-panel, select-workspace, or focus-changing tab-action verbs unless the user explicitly asked.--focus false on move-surface and any creation verb that supports it.new-pane --type ... --url ..., not create-then-move-then-focus.© basicmachines-co, AGPL-3.0. 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 .agents/skills/cmux-workspace of basicmachines-co/basic-memory.
Open the folder on GitHubat commit cb7407f
We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in basicmachines-co/basic-memory, which our catalogue first saw on October 7, 2026.
cmux Workspace Scoping 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 Workspace Scoping this skillbasicmachines-co/basic-memory | 4.1k | 2 repos | ~1.7k | Automated safety check: Pass | AGPL-3.0 | |
| 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.
basicmachines-co/basic-memory
Views, sets, unsets and validates cmux settings in ~/.config/cmux/cmux.json with a helper script that checks keys against the schema.
basicmachines-co/basic-memory
End-user control of cmux topology and routing (windows, workspaces, panes/surfaces, focus, moves, reorder, identify, trigger flash). Use when automation needs…
basicmachines-co/basic-memory
Opens markdown files in a formatted cmux panel beside the terminal that re-renders on every change, handy for plans and task lists.
basicmachines-co/basic-memory
Produces PR, changelog and two-week retro images for the Basic Memory repository from evidence in PR bodies, saved to fixed paths under docs/assets/infographics.
basicmachines-co/basic-memory
Adds Pydantic Logfire tracing, logging and metrics to Python, JavaScript or TypeScript and Rust projects, with the correct setup order and library extras.
basicmachines-co/basic-memory
Guides a newcomer to Basic Memory through designing a personal knowledge system, then teaches its use and sets up their assistant to load it each session.
Categories
Keeps agent actions scoped to the cmux workspace and terminal that invoked it, and lays out pane and surface commands that avoid disrupting the user's own focus. The skill defines cmux's vocabulary (window, workspace, pane, surface, panel) and sets a default rule: scope actions to the caller's own workspace unless the user explicitly asks for another one, since an agent can be running in a workspace the user isn't currently looking at. It reads CMUX_WORKSPACE_ID, CMUX_SURFACE_ID and CMUX_SOCKET_PATH from the environment, falling back to cmux identify when they are missing and saying explicitly that the currently focused context is being used.
cmux Workspace Scoping fits situations like: opening a terminal or browser pane without disturbing the user's current focus; running an automation scoped to the workspace that invoked the agent; reusing a helper pane for preview output instead of creating new panes.
Run `npx skills add basicmachines-co/basic-memory --skill cmux-workspace -a claude-code`. Or copy the skill folder (.agents/skills/cmux-workspace in basicmachines-co/basic-memory) into .claude/skills/cmux-workspace in your project. Claude Code loads it when a task matches its description.
Run `npx skills add basicmachines-co/basic-memory --skill cmux-workspace -a codex`. Or copy the skill folder (.agents/skills/cmux-workspace in basicmachines-co/basic-memory) into .agents/skills/cmux-workspace 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 basicmachines-co/basic-memory --skill cmux-workspace -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-workspace, .gemini/skills/cmux-workspace, .github/skills/cmux-workspace and .opencode/skills/cmux-workspace in your project.
SKILL.md names no scripts, command-line tools or credentials: cmux Workspace Scoping is instructions for the agent only. Our summary lists: The cmux CLI with CMUX_WORKSPACE_ID and related environment variables set.
SKILL.md names 1 domain. As links in the text: github.com. 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 Workspace Scoping is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.7k 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 875 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with cmux Workspace Scoping: 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.
basicmachines-co (a GitHub organization) maintains it in basicmachines-co/basic-memory, which has 4,115 GitHub stars. The repository holds 49 skills in this directory. The repository was last updated on October 7, 2026.
Source: basicmachines-co/basic-memory on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.