Automates desktop GUI workflows via computer use API with screenshot capture. Use when scripting GUI interactions or recording browser sessions for tutorials.
npx skills add https://github.com/athola/claude-night-market --skill computer-control
Use Claude's Computer Use API to see and control desktop
environments through screenshots and mouse/keyboard actions.
> Why this stays opt-in. Per
> [docs/inclusive-defaults.md][inc] (TRUE-exception
> category 4), Computer Use takes screenshots and
> synthesizes keyboard/mouse input: cross-process side
> effects that must always be explicitly invoked, never
> default-on.
[inc]: ../../../../docs/inclusive-defaults.md
The computer use system has three layers:
phantom.display) - executes OS-levelactions via xdotool/scrot on the real or virtual display
phantom.loop) - manages the conversationcycle between Claude API and the display toolkit
phantom.cli) - command-line interface for runningtasks or checking environment readiness
User Task
|
v
Agent Loop <----> Claude API (beta)
| |
v v
Display Toolkit tool_use responses
| (click, type, screenshot)
v
OS Commands (xdotool, scrot)
|
v
Display (X11 / Xvfb / WSLg)
cd plugins/phantom
uv run python -m phantom.cli --check
export ANTHROPIC_API_KEY="sk-ant-..."
uv run python -m phantom.cli "Open Firefox and search for Claude AI"
from phantom.display import DisplayConfig, DisplayToolkit
from phantom.loop import LoopConfig, run_loop
result = run_loop(
task="Take a screenshot of the desktop",
api_key="sk-ant-...",
loop_config=LoopConfig(
model="claude-sonnet-5",
max_iterations=10,
),
display_config=DisplayConfig(width=1920, height=1080),
)
print(f"Done in {result.iterations} iterations")
print(result.final_text)
| Model | Tool Version | Beta Flag |
|-------|-------------|-----------|
| Opus 4.6, Sonnet 4.6, Opus 4.5 | computer_20251124 | computer-use-2025-11-24 |
| Sonnet 4.5, Haiku 4.5, older | computer_20250124 | computer-use-2025-01-24 |
The resolve_tool_version() function handles this mapping
automatically based on the model name.
All versions:
screenshot - capture displayleft_click - click at [x, y]type - type text stringkey - press key combo (e.g., ctrl+s)mouse_move - move cursorEnhanced (20250124+):
scroll - scroll with direction and amountleft_click_drag - drag between coordinatesright_click, middle_click, double_click, triple_clickhold_key - hold key for durationwait - pause between actionsLatest (20251124):
zoom - inspect screen region at full resolutionComputer use carries risks. Follow these guidelines:
necessary, and never for banking or sensitive services
max_iterations toprevent runaway API costs
add confirmation callbacks via on_action
screenshots; close anything private before starting
Linux (native or WSL2 with WSLg):
sudo apt install xdotool scrot xclip
Headless (Docker/CI):
# Install Xvfb for virtual display
sudo apt install xvfb xdotool scrot xclip
Xvfb :1 -screen 0 1920x1080x24 &
export DISPLAY=:1
catch mistakes early
uv run python -m phantom.cli --check exits 0 before anytask is launched; if it fails, required OS tools (xdotool,
scrot, xclip) are installed or Xvfb is started before
proceeding
max_iterations set on every run_loop() call; no tasklaunched without an explicit iteration cap to prevent runaway
API costs
result.iterations count andresult.final_text confirming the task outcome; empty
final_text treated as failure, not success
files) closed before task starts; task prompt does not contain
raw credentials
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
Use this skill to query your Google NotebookLM notebooks directly from Claude Code for source-grounded, citation-backed answers from Gemini. Browser automation, library management, persistent auth. Drastically reduced hallucinations through document-only responses.
Complete browser automation with Playwright. Auto-detects dev servers, writes clean test scripts to /tmp. Test pages, fill forms, take screenshots, check responsive design, validate UX, test login flows, check links, automate any browser task. Use when user wants to test websites, automate browser interactions, validate web functionality, or perform any browser-based testing.
Automate Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify, etc.) using agent-browser via Chrome DevTools Protocol. Use when the user needs to interact with an Electron app, automate a desktop app, connect to a running app, control a native app, or test an Electron application. Triggers include "automate Slack app", "control VS Code", "interact with Discord app", "test this Electron app", "connect to desktop app", or any task requiring automation of a native Electron application.
Automate Anchor Browser tasks via Rube MCP (Composio). Always search tools first for current schemas.
Automate Browser Tool tasks via Rube MCP (Composio). Always search tools first for current schemas.
Get Image [from] Internet Link - Zero-setup CLI for downloading full-resolution images from iCloud, Dropbox, Google Photos, and Google Drive share links. Four-tier capture strategy, browser automation, HEIC conversion, album support. Node.js/Playwright.
Expert in building browser extensions that solve real problems - Chrome, Firefox, and cross-browser extensions. Covers extension architecture, manifest v3, content scripts, popup UIs, monetization strategies, and Chrome Web Store publishing. Use when: browser extension, chrome extension, firefox addon, extension, manifest v3.
Take athola/computer-control from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.