sandstorm — for Claude Code sandstorm, sandstorm-desktop, community, for Claude Code, ide skills, mcp__sandstorm-tools__*, sandstorm up, sandstorm task, mcp__sandstorm-tools__create_stack, mcp__sandstorm-tools__list_stacks

v1.0.0

Acerca de este Skill

Escenario recomendado: Ideal for AI agents that need sandstorm — mcp tools reference. Resumen localizado: # Sandstorm — MCP Tools Reference Sandstorm manages isolated Docker agent stacks. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

Características

Sandstorm — MCP Tools Reference
Available MCP Tools
------ -------------
mcp sandstorm-tools create stack Create and start a new stack
mcp sandstorm-tools list stacks List all stacks with status and services

# Core Topics

onomojo onomojo
[1]
[0]
Updated: 4/1/2026

Killer-Skills Review

Decision support comes first. Repository text comes second.

Reference-Only Page Review Score: 10/11

This page remains useful for operators, but Killer-Skills treats it as reference material instead of a primary organic landing page.

Original recommendation layer Concrete use-case guidance Explicit limitations and caution Quality floor passed for review
Review Score
10/11
Quality Score
55
Canonical Locale
en
Detected Body Locale
en

Escenario recomendado: Ideal for AI agents that need sandstorm — mcp tools reference. Resumen localizado: # Sandstorm — MCP Tools Reference Sandstorm manages isolated Docker agent stacks. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

¿Por qué usar esta habilidad?

Recomendacion: sandstorm helps agents sandstorm — mcp tools reference. Sandstorm — MCP Tools Reference Sandstorm manages isolated Docker agent stacks. This AI agent skill supports Claude Code, Cursor, and Windsurf

Mejor para

Escenario recomendado: Ideal for AI agents that need sandstorm — mcp tools reference.

Casos de uso accionables for sandstorm

Caso de uso: Applying Sandstorm — MCP Tools Reference
Caso de uso: Applying Available MCP Tools
Caso de uso: Applying ------ -------------

! Seguridad y limitaciones

  • Limitacion: If any FAIL → present specific gaps to the user, enter a refinement loop (do NOT dispatch)
  • Limitacion: Requires repository-specific context from the skill documentation
  • Limitacion: Works best when the underlying tools and dependencies are already configured

Why this page is reference-only

  • - Current locale does not satisfy the locale-governance contract.

Source Boundary

The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.

After The Review

Decide The Next Action Before You Keep Reading Repository Material

Killer-Skills should not stop at opening repository instructions. It should help you decide whether to install this skill, when to cross-check against trusted collections, and when to move into workflow rollout.

Labs Demo

Browser Sandbox Environment

⚡️ Ready to unleash?

Experience this Agent in a zero-setup browser environment powered by WebContainers. No installation required.

Boot Container Sandbox

FAQ & Installation Steps

These questions and steps mirror the structured data on this page for better search understanding.

? Frequently Asked Questions

What is sandstorm?

Escenario recomendado: Ideal for AI agents that need sandstorm — mcp tools reference. Resumen localizado: # Sandstorm — MCP Tools Reference Sandstorm manages isolated Docker agent stacks. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

How do I install sandstorm?

Run the command: npx killer-skills add onomojo/sandstorm-desktop/sandstorm. It works with Cursor, Windsurf, VS Code, Claude Code, and 19+ other IDEs.

What are the use cases for sandstorm?

Key use cases include: Caso de uso: Applying Sandstorm — MCP Tools Reference, Caso de uso: Applying Available MCP Tools, Caso de uso: Applying ------ -------------.

Which IDEs are compatible with sandstorm?

This skill is compatible with Cursor, Windsurf, VS Code, Trae, Claude Code, OpenClaw, Aider, Codex, OpenCode, Goose, Cline, Roo Code, Kiro, Augment Code, Continue, GitHub Copilot, Sourcegraph Cody, and Amazon Q Developer. Use the Killer-Skills CLI for universal one-command installation.

Are there any limitations for sandstorm?

Limitacion: If any FAIL → present specific gaps to the user, enter a refinement loop (do NOT dispatch). Limitacion: Requires repository-specific context from the skill documentation. Limitacion: Works best when the underlying tools and dependencies are already configured.

How To Install

  1. 1. Open your terminal

    Open the terminal or command line in your project directory.

  2. 2. Run the install command

    Run: npx killer-skills add onomojo/sandstorm-desktop/sandstorm. The CLI will automatically detect your IDE or AI agent and configure the skill.

  3. 3. Start using the skill

    The skill is now active. Your AI agent can use sandstorm immediately in the current project.

! Reference-Only Mode

This page remains useful for installation and reference, but Killer-Skills no longer treats it as a primary indexable landing page. Read the review above before relying on the upstream repository instructions.

Upstream Repository Material

The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.

Upstream Source

sandstorm

# Sandstorm — MCP Tools Reference Sandstorm manages isolated Docker agent stacks. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

SKILL.md
Readonly
Upstream Repository Material
The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.
Supporting Evidence

Sandstorm — MCP Tools Reference

Sandstorm manages isolated Docker agent stacks. Each stack is a full clone of the project repo with its own containers, ports, and an inner Claude agent.

IMPORTANT: Always use the MCP tools (mcp__sandstorm-tools__*) to manage stacks. Never use CLI commands (sandstorm up, sandstorm task, etc.) directly — the MCP tools go through the Electron app's control plane, which tracks stacks in the database and keeps the UI in sync.

Available MCP Tools

ToolDescription
mcp__sandstorm-tools__create_stackCreate and start a new stack
mcp__sandstorm-tools__list_stacksList all stacks with status and services
mcp__sandstorm-tools__dispatch_taskSend a task to inner Claude in a stack
mcp__sandstorm-tools__get_task_statusCheck task state (running, completed, failed, idle)
mcp__sandstorm-tools__get_task_outputView latest task output
mcp__sandstorm-tools__get_diffView uncommitted changes in a stack
mcp__sandstorm-tools__get_logsView container logs for a stack
mcp__sandstorm-tools__push_stackCommit and push changes from a stack
mcp__sandstorm-tools__teardown_stackTear down a stack (stops containers, cleans up)

Critical Rules

  • NEVER set branch to main. Omit the branch parameter — it defaults to the stack name, which becomes a feature branch. Setting branch: "main" causes pushes to go directly to main, bypassing code review. This has caused loss of work.
  • NEVER tear down stacks unless the user explicitly asks. No inference, no cleanup, no "let me tear this down first." The ONLY valid trigger is the user directly requesting teardown.
  • Always create PRs after pushing. Use .sandstorm/scripts/create-pr.sh to open a pull request from the feature branch.
  • NEVER rewrite, summarize, or embellish ticket text when dispatching. Pass the ticket body verbatim. See the "Verbatim Ticket Dispatch" section below.

Workflows

Spec quality gate (mandatory for tickets)

Before calling create_stack or dispatch_task for a ticket:

  1. Fetch the ticket body using the project's fetch-ticket script:
    bash
    1.sandstorm/scripts/fetch-ticket.sh <N>
    If the script doesn't exist, warn the user: "No fetch-ticket script configured. Run sandstorm init to set up a ticket provider."
  2. Read the project's .sandstorm/spec-quality-gate.md
  3. Evaluate each criterion — PASS or FAIL
  4. If any FAIL → present specific gaps to the user, enter a refinement loop (do NOT dispatch)
  5. If all PASS → show your assumptions list, ask the user to approve
  6. On approval → call create_stack with gateApproved: true

If you skip this step, the backend will reject the call with GATE_CHECK_REQUIRED and you will need to run the gate check anyway. Always run it proactively.

If the user explicitly says to skip the gate (e.g., "just start it", "skip the gate"), use forceBypass: true instead.

Typical flow: ticket to PR

  1. Run spec quality gate (see above) — required before dispatch
  2. create_stack — name, projectDir, ticket, gateApproved: true (do NOT pass branch — it defaults to the stack name)
  3. dispatch_task — pass the verbatim ticket body as the task prompt (see Verbatim Ticket Dispatch below)
  4. get_task_status — check when done
  5. get_diff — review changes
  6. push_stack — commit and push to the feature branch
  7. Create a pull request:
    bash
    1.sandstorm/scripts/create-pr.sh --title "Fix auth token expiry" --body "Fixes #28"

Do NOT tear down stacks — only the user decides when to tear down.

Verbatim Ticket Dispatch

When the user says "start issue #N", "spin up a stack for issue #N", or any variation:

  1. Fetch the full ticket body using the project's fetch-ticket script:
    bash
    1.sandstorm/scripts/fetch-ticket.sh <N>
  2. Pass the ticket body verbatim as the task parameter to create_stack or dispatch_task
  3. Do NOT summarize, rewrite, add implementation details, or "improve" the ticket text
  4. Never add file paths, class names, or implementation steps that aren't in the ticket

If the user gives verbal instructions that differ from the ticket, update the ticket first using the project's update-ticket script:

bash
1.sandstorm/scripts/update-ticket.sh <N> "<updated body>"

Then fetch and dispatch the updated body. The ticket is the single source of truth.

Why this matters:

  • The inner Claude has full repo context — it can figure out implementation details itself
  • The inner Claude reads CLAUDE.md, understands the codebase, and makes appropriate decisions
  • Adding implementation specifics from the outer Claude constrains the inner Claude and can steer it wrong
  • Summarizing loses important details and nuance from the original ticket

Create stack and dispatch work (for a ticket)

bash
1# 1. Fetch the ticket body verbatim 2TICKET_BODY=$(.sandstorm/scripts/fetch-ticket.sh 28) 3 4# 2. Create stack with the unmodified ticket body as the task 5mcp__sandstorm-tools__create_stack({ 6 name: "issue-28-fix-auth-bug", 7 projectDir: "/path/to/project", 8 ticket: "28", 9 gateApproved: true, 10 task: <TICKET_BODY — the full, unmodified ticket text> 11})

NEVER pass branch: "main". Omit the branch parameter entirely.

The task parameter dispatches work immediately after creation — no need to call dispatch_task separately.

Monitor and iterate

mcp__sandstorm-tools__get_task_status({ stackId: "issue-28-fix-auth-bug" })
mcp__sandstorm-tools__get_task_output({ stackId: "issue-28-fix-auth-bug" })
mcp__sandstorm-tools__get_diff({ stackId: "issue-28-fix-auth-bug" })
mcp__sandstorm-tools__dispatch_task({ stackId: "issue-28-fix-auth-bug", prompt: "Looks good but add limit/offset params" })

Review, push, create PR

bash
1mcp__sandstorm-tools__get_diff({ stackId: "issue-28-fix-auth-bug" }) 2mcp__sandstorm-tools__push_stack({ stackId: "issue-28-fix-auth-bug", message: "Fix auth token expiry with user-facing error" }) 3.sandstorm/scripts/create-pr.sh --title "Fix auth token expiry" --body "Fixes #28"

Tool Details

create_stack

ParameterRequiredDescription
nameYesStack name — becomes the stack ID (e.g., fix-auth-bug)
projectDirYesAbsolute path to the project directory
ticketNoAssociated ticket ID (e.g., PROJ-123)
branchNoGit branch name (defaults to stack name). NEVER set to main.
descriptionNoShort description of the work
runtimeNodocker (default) or podman
taskNoTask to dispatch immediately after creation. When working on a ticket, this MUST be the verbatim ticket body — never a summary or rewrite.
gateApprovedNoSet to true after running /spec-check and getting user approval. Required when ticket is set or task references a ticket.
forceBypassNoSet to true to skip the spec quality gate. Only when the user explicitly requests it.

The stack builds in the background. Use get_task_status or list_stacks to check when it's ready.

dispatch_task

ParameterRequiredDescription
stackIdYesTarget stack ID
promptYesTask description for inner Claude. When working on a ticket, this MUST be the verbatim ticket body.
gateApprovedNoSet to true after running /spec-check and getting user approval. Required when the stack has a ticket or the prompt references a ticket.
forceBypassNoSet to true to skip the spec quality gate. Only when the user explicitly requests it.

Write goal-oriented prompts. Describe WHAT to achieve, not HOW. The inner Claude has the full repo context.

When dispatching for a ticket: Pass the ticket body verbatim. Do not summarize, rewrite, or add implementation details.

For follow-up tasks (not initial ticket dispatch): goal-oriented prompts are fine.

Good follow-up: "Looks good but add limit/offset params to the list endpoint"

Bad initial dispatch: Rewriting "Fix auth bug" into "Open src/auth.ts, find line 42, change the catch block..."

get_task_status

Returns the current task state for a stack: running, completed, failed, or idle.

get_task_output

ParameterRequiredDescription
stackIdYesTarget stack ID
linesNoNumber of lines to return (default: 50)

get_diff

Returns the full git diff of uncommitted changes in the stack's workspace. Always review before pushing.

get_logs

ParameterRequiredDescription
stackIdYesTarget stack ID
serviceNoService name (e.g., claude, app). Omit for all services.

push_stack

ParameterRequiredDescription
stackIdYesTarget stack ID
messageNoCommit message

teardown_stack

Stops containers, removes workspace, archives stack to history. This is irreversible. Always check for unpushed changes first with get_diff.

Important Rules

  • Use MCP tools only. Never bypass with raw sandstorm CLI commands or docker commands.
  • No polling loops. Run get_task_status as a one-shot check when the user asks. Never write sleep/poll loops.
  • Review before pushing. Always get_diff before push_stack.
  • Check before teardown. Always get_diff before teardown_stack to avoid losing work.
  • Verbatim ticket dispatch. When dispatching work for a ticket, pass the ticket body verbatim as the task prompt. Never summarize, rewrite, add file paths, class names, or implementation steps that aren't in the ticket. If the user's instructions differ from the ticket, update the ticket first, then dispatch.
  • Stacks appear in the UI. Because MCP tools go through the Electron control plane, every stack you create will be visible in the Sandstorm Desktop UI.
  • NEVER use main as the branch. Omit the branch parameter so stacks always work on feature branches.
  • NEVER tear down stacks unless the user explicitly requests it. No automatic cleanup.
  • Always create PRs. After push_stack, use .sandstorm/scripts/create-pr.sh to open a pull request.
  • Spec quality gate. Always run /spec-check before dispatching work for a ticket. The backend enforces this — calls without gateApproved: true will be rejected with GATE_CHECK_REQUIRED.

Habilidades relacionadas

Looking for an alternative to sandstorm or another community skill for your workflow? Explore these related open-source skills.

Ver todo

openclaw-release-maintainer

Logo of openclaw
openclaw

Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

333.8k
0
Inteligencia Artificial

widget-generator

Logo of f
f

Generar complementos de widgets personalizables para el sistema de feeds de prompts.chat

149.6k
0
Inteligencia Artificial

flags

Logo of vercel
vercel

El Marco de React

138.4k
0
Navegador

pr-review

Logo of pytorch
pytorch

Tensores y redes neuronales dinámicas en Python con fuerte aceleración de GPU

98.6k
0
Desarrollador