claude-code-plugin-ref…
Explain plugin, skill, command, agent, and hook mechanics used here. Use when authoring or debugging plugins. Do not use for ops; use night-market-operations.
Automates desktop GUI workflows via computer use API with screenshot capture. Use when scripting GUI interactions or recording browser sessions for tutorials.
$ npx -y skills add athola/claude-night-market --skill computer-control --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/computer-controlContext preview
The summary Claude sees to decide when to auto-load this skill.
Automates desktop GUI workflows via computer use API with screenshot capture. Use when scripting GUI interactions or recording browser sessions for tutorials.
name: computer-control description: Automates desktop GUI workflows via computer use API with screenshot capture. Use when scripting GUI interactions or recording browser sessions for tutorials. alwaysApply: false model_hint: standard
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:
1. **Display Toolkit** (`phantom.display`) - executes OS-level actions via xdotool/scrot on the real or virtual display 2. **Agent Loop** (`phantom.loop`) - manages the conversation cycle between Claude API and the display toolkit 3. **CLI** (`phantom.cli`) - command-line interface for running tasks 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:**
**Enhanced (20250124+):**
**Latest (20251124):**
Computer use carries risks. Follow these guidelines:
1. **Use a sandbox**: Run in Docker or a VM, not your main OS 2. **Limit access**: Do not provide login credentials unless necessary, and never for banking or sensitive services 3. **Set iteration caps**: Always use `max_iterations` to prevent runaway API costs 4. **Human approval**: For actions with real-world consequences, add confirmation callbacks via `on_action` 5. **Close sensitive apps**: Claude sees the full screen via 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
1. Be specific about each step of the task 2. Add "After each step, take a screenshot and verify" to catch mistakes early 3. Use keyboard shortcuts when UI elements are hard to click 4. Provide example screenshots for repeatable workflows 5. Set a system prompt with domain-specific instructions
task is launched; if it fails, required OS tools (xdotool, scrot, xclip) are installed or Xvfb is started before proceeding
launched without an explicit iteration cap to prevent runaway API costs
`result.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
A plugin marketplace for Claude Code. Install only the plugins you need to run git workflows, code review, spec-driven development, and autonomous agents from inside your Claude Code session.
Explain plugin, skill, command, agent, and hook mechanics used here. Use when authoring or debugging plugins. Do not use for ops; use night-market-operations.
States load-bearing decisions, invariants, and weak points. Use when judging a design change. Do not use for gating; use night-market-change-control.
Rebuild the dev environment: uv, Python tiers, pins, traps. Use when onboarding or toolchain breaks. Do not use for daily commands; use night-market-operations.
Classify, gate, and review changes. Use when landing a PR, releasing, or amending rules. Do not use for failure triage; use night-market-debugging-playbook.
Search and record project memory (Discussions, journal, ADRs). Use before re-investigating anything. Do not use for settled battles; see failure-archaeology.
Bind loop 'done' to unfakeable gates. Use to harden egregore/herald loops or promote completion_integrity. Not for QA gates; use night-market-validation-and-qa.