CommunityCodierung & Entwicklunggithub.com

Crabox

Fernsteuerung für Crabbox und Blacksmith Testbox: Isolation, plattformübergreifende E2E-Tests, Diagnose und Bereinigung.

Was ist Crabox?

Crabox ist eine KI-Agenten-Fähigkeit für Remote-Testing und -Isolation, die hauptsächlich für die Nutzung mit Blacksmith Testbox und AWS Crabbox entwickelt wurde. Sie ermöglicht die Durchführung von plattformübergreifenden End-to-End-Tests, Diagnosen und Bereinigungsaufgaben auf vertrauenswürdigen Remote-Hosts, wobei ein strenger Sicherheits- und Richtlinienrahmen eingehalten wird. Die Fähigkeit unterstützt mehrere Backends: Blacksmith Testbox (die bevorzugte, vertrauenswürdige Quelle), direkte AWS-Vermittlung (für frische PR-Überprüfungen), Docker-Container als Fallback und SSH für macOS/Windows/WSL2. Sie priorisiert lokale Tests mit begrenztem Umfang auf einem qualifizierten, verfügbaren Host, es sei denn, die Arbeit ist teuer oder plattformspezifisch. Zu den Hauptmerkmalen gehören die Verwaltung des Lease-Lebenszyklus (TTL, Timeout), autorisierte Ressourcenerstellung und -bereinigung, Routenentscheidungen (Testbox gegenüber AWS) basierend auf Vertrauensstufen (vertrauenswürdiger Quellcode vs. nicht vertrauenswürdiger Code) und eine strenge Isolationsrichtlinie für Anmeldeinformationen und Zustand. Es enthält detaillierte Anweisungen zum Preflight, zur Lease-Verwaltung, zum vertrauenswürdigen und nicht vertrauenswürdigen Betrieb, zur Observability und zur Fehlertriage. Die Fähigkeit wird durch eine Reihe detaillierter Referenzdokumente (Proof Policy, Observability, E2E-Verfahren, Desktop/Cross-OS, direkte Anbieter) unterstützt, die Integrität und Best Practices gewährleisten. Sie ist als hochstrukturierter Guide konzipiert und nicht als generisches Tool, mit klaren Regeln gegen das Erfinden von Befehlen oder das Kopieren von Einrichtungen aus anderen Kontexten.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/crabbox

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Crabox?

  • Gezielter Remote-Nachweis: Befolgen Sie die Proof Policy. Bevorzugen Sie begrenzte lokale Tests auf einem qualifizierten, verfügbaren Host. Teure oder plattformspezifische Arbeiten können Remote-Kapazitäten nutzen. Warteschlange: Stoppen Sie die eigene Zuordnung; verwenden Sie PR CI oder einen sicheren lokalen Bereich und melden Sie nicht abgedeckte Anforderungen. Erforderlicher Build vor Veröffentlichung nicht verfügbar: Verwenden Sie die Entwurfs-/CI-Proof-Policy der Testfähigkeit.
  • Warten Sie niemals auf Warteschlangen oder verketten Sie Anbieter-Fallbacks.

Backends:

  • blacksmith-testbox: vertrauenswürdige Maintainer-Quelle. Vorbereitetes CI. tbx_....
  • aws: direkte vermittelte Crabbox. Frische PRs. Benutzerdefiniertes Sync/Env/Capture. cbx_....
  • local-container: Docker-Fallback. Kein Remote-Nachweis.
  • ssh: Vorhandener Operator-Host. macOS/Windows/WSL2.

Melden Sie immer Anbieter, ID, Run-URL, Befehl, Ergebnis. Nennen Sie Testbox niemals "AWS Crabbox."

Repository-Vertrag

  • Lösen Sie Beispielbefehle, Bootstrap, Container-Image, PR gemäß den Anweisungen des vertrauenswürdigen Nutzers auf. Erfinden Sie niemals Befehle oder kopieren Sie die Einrichtung eines anderen Nutzers.
  • Nutzerspezifische Einrichtung bleibt außerhalb der portablen Fähigkeit. Siehe Platzhalter-Definitionen.

Autorisierung und Isolation

  • Aufgabenerforderliche Erstellung, Wiederverwendung, Bereinigung, temporärer Zustand, saubere Checkouts: vorab genehmigt. Vorhandene Branches, Checkouts, nicht zusammenhängende Änderungen beibehalten.
  • Quellvertrauen, Anmeldeinformationen, Produktionszugriff, Budget, Veröffentlichung bleiben Autoritätsgrenzen. Isolierter Zustand; niemals das Operator-Gateway ohne aufgabenbezogene Genehmigung berühren.

Zuerst Routen

  • Behalten Sie den aufgelösten Anbieter bei: Testbox für vertrauenswürdige Quelle; direktes AWS, wenn dessen Semantik erforderlich ist; geheimnisloses CI/AWS für nicht vertrauenswürdigen Code. Führen Sie niemals nicht vertrauenswürdige Wrapper/Konfiguration lokal aus oder hydrieren Sie einen nicht vertrauenswürdigen Lease.
  • Beschaffen Sie, wenn der Befehl bereit ist; verwenden Sie die eigene ID wieder; stoppen Sie danach.
  • Kleinstes nachgewiesenes Profil. Größer: aufgezeichneter Speichernachweis oder gemessener Gesamtkostenvorteil erforderlich, nicht generischer Fehler/Verzögerung/Timeout. Erhöhen Sie keine Worker-Anzahlen zum Ausgleich.
  • Testbox-Größenanpassung: --blacksmith-workflow, niemals direkt --class/--type; Profiländerungen erfordern frische Leases.
  • Blacksmith-Runner-Labels fordern eine Stufe an, garantieren jedoch keine CPU oder RAM. Blacksmith kann abhängig von der Serviceverfügbarkeit kleinere Maschinen zuweisen. Für ressourcenempfindliche Tests oder Benchmarks messen Sie verfügbare CPUs, Affinitäten/Kontingente und nutzbaren RAM auf der zugewiesenen Maschine. Dimensionieren Sie Worker und Workloads basierend auf diesen Messungen. Zeichnen Sie die angeforderte Stufe und die beobachteten Ressourcen separat auf. Qualifizieren Sie Hardware oder Leistung nicht allein anhand von Labels.
  • Größe, Dauer, Hydrierungsfehler, Kapazität autorisieren niemals Anbieterüberschreibungen; explizite Benutzerauswahl oder erforderliche Backend-Semantik tun dies.

Preflight

Vertrauenswürdiges Repository-Root: Lesen Sie .crabbox.yaml, lösen Sie installierte Binärdatei auf, überprüfen Sie Anbieter/Befehle:

export CRABBOX="$(command -v crabbox)"
test -n "$CRABBOX"
"$CRABBOX" --version
"$CRABBOX" config show --json | jq '{provider, profile, target}'
"$CRABBOX" run --help
  • Verwenden Sie die vertrauenswürdigen Wrapper/Installationsanweisungen des Nutzers.
  • Der Nachweis des nativen Linux/WSL-Befehlslebenszyklus und der -unterbrechung erfordert eine vollständige passende Crabbox-Distribution oder ein verifiziertes Laufzeitmanifest, das mit CRABBOX_RUNTIME_ARTIFACTS ausgewählt wurde. Passen Sie die Begleiter an die eingefrorene Quelle an und verifizieren Sie, dass das Manifest den exakt ausgewählten Controller bindet. Eine Entwicklungs-CLI ohne Laufzeitpaket verwendet legacy SSH-Überwachung; --version allein begründet keine native Überwachung. Verifizieren Sie das ausgewählte Paket vor der Zuordnung; zählen Sie CLI-only-Nachweis nicht als nativen Lebenszyklus-Nachweis. Befolgen Sie die Upstream- Laufzeitartikel-Anweisungen.
  • Reparaturen: Überprüfen Sie Upstream; verwenden Sie sauberen, aufgabeneigenen Checkout; bewahren Sie installierte Binärdatei + nicht zusammenhängende Quelle auf. Vertrauen Sie niemals einem Geschwister-Checkout nur aufgrund des Namens.

Lease-Lebensdauer

  • TTL zählt ab Erstellung, einschließlich Hydrierung; Leerlauf-Timeout zählt Inaktivität. Früheres Ablaufdatum gewinnt. Standardwerte: 30m pro Stück, maximal 4h. Besitzer-/Organisationsüberschreibungen können bis zu 24h erlauben; verwenden Sie effektive Richtlinie und bereinigte Klemmhinweise, nicht angeforderte Dauern. Richtlinienverschärfung gilt auch für laufende Leases.
  • --keep und stop: never verhindern kein Ablaufen. Fordern Sie explizite begrenzte TTL und Leerlauf für beibehaltene direkte Leases an. Einfacher Heartbeat, Setup, Sync, SSH und Desktop-Nutzung verlängern die Gesamt-TTL nicht; run fordert begrenzte automatische Verlängerung nur während der Ausführung eines Befehls, innerhalb der Richtlinie, des Budgets und der Anbieterfähigkeit.
  • Überprüfen Sie vor langer quellabhängiger Arbeit die verbleibende Gesamtlebensdauer. Wenn erlaubt, fordern Sie eine begrenzte extend <id> --ttl <gewünschte-gesamt> --json an; Verlängerung setzt Leerlauf nicht zurück. Abgelehnte/Budget/nicht unterstützte/nicht fortschreitende/inaktive Ergebnisse erfordern eine sichtbare Überspringung oder einen Fehler, niemals Anbieterwechsel oder unendliche Leases-Ketten. Erstellungsfeste Anbieter wie Daytona benötigen ausreichend TTL bei der Zuordnung.
  • Ein direkter Guest-Refresh-Fehler kann eine längere Anbieterfrist mit der alten lokalen Frist hinterlassen. Behalten Sie denselben lokalen Zustand bei und wiederholen Sie dieselbe feste Gesamt-TTL nur zur Abgleichung; behandeln Sie die fehlgeschlagene Verlängerung nicht als Schutz.
  • Beachten Sie vertrauenswürdiges directLeases: deny und directLeaseAllow. Ein verweigerter Anbieter erfordert die konfigurierte Koordinator-Route; umgehen Sie es niemals mit direkten Anmeldeinformationen. Testbox behält seine nativen Job- und Leerlaufgrenzen bei; --ttl verlängert keinen delegierten Workflow.
  • list zeigt laufende Koordinator-Leases; list --retained fügt beibehaltene terminale Ressourcen hinzu, deren Bereinigung unbestätigt ist. Verwenden Sie exakte ID-Überprüfung/Stopp für die Wiederherstellung. Behalten Sie Beanspruchungen und Wiederherstellungszustand bei, bis ein blockierender Stopp den Abschluss bestätigt.

Vertrauenswürdige Testbox

Aufgelöster Anbieter = Testbox (oder explizit angefordert): Befehle bewahren es. Fügen Sie --provider blacksmith-testbox nur für explizite Überschreibung hinzu:

"$CRABBOX" run --timing-json -- CI=1 <check-command>

Mehrere Befehle: einmal aufwärmen, ID speichern, wiederverwenden, stoppen.

"$CRABBOX" warmup --keep --timing-json
"$CRABBOX" run --id <tbx_id> --timing-json -- <check-command>
"$CRABBOX" stop <tbx_id>

Regeln:

  • Ein Lease, ein aktiver Befehl. Kein Sync/Reclaim während des Laufs.
  • Bevorzugen Sie bash -c; Login-Profile können Verzeichnisse ändern. In der ausführenden Shell stellen Sie physischen Checkout + erwartete Quelle/Patch sicher; HEAD allein ≠ Dirty-Sync-Nachweis. Befolgen Sie den dokumentierten Hydrierungs-Shell-Vertrag des Nutzers.
  • Native Testbox führt eigenen Sync durch, einschließlich wiederverwendeter --id-Läufe. Verlassen Sie sich niemals auf --no-sync für Remote-Baseline: Blacksmith hat keinen nativen Bypass; freigegebene Crabbox-Versionen können das Flag stillschweigend ignorieren. Unveränderter absichtlicher Neulauf ≠ Ausnahme.
  • --reclaim nur für bewusste Checkout-Pfad-Besitzübertragung.
  • Befolgen Sie den Zuordnungsbeleg des Nutzers für die Wiederverwendung. Kompatible Source-Commits können einen Lease wiederverwenden, wenn Aufgabe, physischer Checkout, Basis, Abhängigkeiten, Vorbereitung und Workflow/Job/Ref unverändert bleiben. Behalten Sie die ursprüngliche Zuordnungsherkunft. Inkompatibler Beleg: Stopp; erneut aufwärmen. Keine stale-Lease-Überschreibung.
  • Roher SHA unzuverlässig für warmup --ref; verwenden Sie Branch/Tag.
  • blacksmith testbox list verbirgt Zustände. Verwenden Sie list --all oder status --id <tbx_id>.
  • Testbox-Status/Stopp: --id. Kein Status --json.
  • Delegierter Anbieter lehnt --fresh-pr, --full-resync, --script*, --env-helper, Capture/Download-Flags ab.

Blacksmith-Verzeichnis-Downloads

Rekursive Downloads + erforderlicher Remote-Trailing-Slash: Verzeichnis-Downloads.

Nicht vertrauenswürdiges AWS

  • Sauberer, vertrauenswürdiger default-Branch-Checkout. Installierte vertrauenswürdige Crabbox-Binärdatei.
  • Frischer Lease pro überprüfter vollständiger Head-SHA. Keine Instanzrolle, Tailscale, Hydrierung.
  • Weiterleiten nur CI. Vertrauenswürdigen Bootstrap neben --fresh-pr hochladen.
cd <sauberer-vertrauenswürdiger-default-branch-checkout>
env -u CRABBOX_AWS_INSTANCE_PROFILE \
  "$CRABBOX" config show --json | \
  jq -e '.aws.instanceProfile == ""' >/dev/null

env -u CRABBOX_AWS_INSTANCE_PROFILE \
  -u CRABBOX_TAILSCALE \
  -u CRABBOX_TAILSCALE_AUTH_KEY \
  -u CRABBOX_TAILSCALE_AUTH_KEY_ENV \
  -u CRABBOX_TAILSCALE_EXIT_NODE \
  -u CRABBOX_TAILSCALE_EXIT_NODE_ALLOW_LAN_ACCESS \
  -u CRABBOX_TAILSCALE_HOSTNAME_TEMPLATE \
  -u CRABBOX_TAILSCALE_TAGS \
  "$CRABBOX" warmup \
  --provider aws --network public --tailscale=false \
  --tailscale-exit-node= \
  --tailscale-exit-node-allow-lan-access=false \
  --ttl 4h --idle-timeout 90m --keep --timing-json

"$CRABBOX" inspect --provider aws --id <cbx_id> --json | \
  jq -e '.network == "public" and .tailscale == null' >/dev/null

env -u CRABBOX_AWS_INSTANCE_PROFILE \
  CRABBOX_ENV_ALLOW=CI \
  "$CRABBOX" run \
  --provider aws --id <cbx_id> \
  --fresh-pr <besitzer/repo#nummer> \
  --no-hydrate --timing-json \
  --script <vertrauenswürdiges-bootstrap-script> -- \
  <erwartete_vollständige_head_sha> <check-command>

env -u CRABBOX_AWS_INSTANCE_PROFILE \
  "$CRABBOX" stop --provider aws <cbx_id>
  • Vertrauenswürdiger Bootstrap muss nachweisen, dass IMDSv2-IAM-Anmeldeinformationen 404 zurückgeben; SHA überprüfen; Laufzeitinjektionsvariablen entfernen; Toolchain festlegen; HOME vor Installation/Test isolieren.
  • Geänderter Head: frischer Lease. Fehlende Remote-PR oder kein-Rolle-Nachweis: geheimnisloses Fork-CI.

Direktes AWS

  • Vertrauenswürdige AWS-Befehle, Auth-Diagnose, Resync, saubere PR/Container-Läufe: Lesen Sie direkte Anbieter.
  • --no-hydrate bei Container-Läufen beibehalten; lokalen Container-Nachweis als lokal melden.

Beobachtbarkeit

  • Artefakte sammeln/Anmeldeinformationen injizieren: Lesen Sie Capture- und Umgebungsflags.
  • Exakter Schlüssel, ein Befehl. Niemals Geheimnisse drucken, im Repository schreiben oder in die Shell-Historie setzen.
  • Kein sicherer Injektionspfad: Live-Auth blockiert; Fake-Key-Nachweis unzureichend.

Echtes E2E

  • Angeforderten Benutzereinstiegspunkt mit isoliertem Nutzerzustand ausführen, nicht nur Remote-Komponententests.
  • Für Install-/Provider-/Interaktionsnachweis + sicheren Revisionsvergleich: Lesen Sie E2E-Verfahren.

Desktop / Plattformübergreifend

SSH-Ziele, bezahltes macOS-Preflight, WebVNC, App-Übergabeverifikation: Lesen Sie Desktop- und plattformübergreifende Befehle.

Fehlertriage

Identifizieren Sie Wrapper-, Anbieter-, Hydrierungs-, Sync-, SSH- oder Befehlsfehler:

"$CRABBOX" doctor
"$CRABBOX" status --id <id>
"$CRABOX" inspect --id <id> --json
"$CRABOX" logs <run_id>
"$CRABOX" results <run_id>
blacksmith testbox list --all
blacksmith testbox status --id <tbx_id>
  • Warteschlangenkapazität: Stoppen Sie eigene Zuordnungen; befolgen Sie die Proof Policy. Kein Wiederholungssturm oder Anbieterwechsel.
  • Stale-Sync: --debug --timing-json, dann --full-resync einmalig bei direkten Anbietern.
  • Fehlerhafte Phase/JUnit vor gezieltem Neulauf lesen. Defekter Wrapper: Diagnose mit installierter CLI auf demselben Anbieter; Update über den vertrauenswürdigen Pfad des Nutzers.
  • Nur eigene IDs stoppen; stop nimmt kein --timing-json.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

Verwandte Skills