CLI-Befehle

Die surfpool CLI startet lokale Surfnets, führt Runbooks aus, listet Runbooks aus einem Workspace-Manifest auf, generiert Shell-Vervollständigungen und startet den Surfpool MCP-Server.

Befehle

BefehlBeschreibung
surfpool startStartet ein lokales Surfnet. Alias: surfpool simnet
surfpool runFührt ein Runbook aus
surfpool lsListet Runbooks im aktuellen Workspace auf
surfpool completionsGeneriert Shell-Vervollständigungsskripte
surfpool mcpStartet den Surfpool MCP-Server

surfpool start

Startet ein lokales Surfnet. Wenn Sie es in einem Solana-Programmverzeichnis ausführen, kann Surfpool Runbooks generieren und ausführen, die Ihre Programme deployen.

surfpool start [OPTIONS]

Netzwerk & Ports

FlagKurzTypStandardBeschreibung
--port <PORT>-pinteger8899Bindet den JSON-RPC-Server an diesen Port.
--ws-port <PORT>-winteger8900Bindet den WebSocket-Server an diesen Port.
--host <HOST>-ostring127.0.0.1Bindet RPC-, WebSocket- und Studio-Dienste an diesen Host.
--rpc-url <RPC_URL>-ustringnoneFork von dieser Datasource-RPC-URL. Konflikt mit --network. Kann auch mit SURFPOOL_DATASOURCE_RPC_URL gesetzt werden.
--network <NETWORK>-nenumnoneFork von einem vordefinierten Solana-Netzwerk. Werte: mainnet, devnet, testnet. Konflikt mit --rpc-url.
--offlinenonebooleanfalseAusführung ohne Remote-RPC-Datasource.

Projekt & Deployment

FlagShortTypeDefaultBeschreibung
--manifest-file-path <MANIFEST_PATH>-mpath./txtx.ymlPfad zum Runbook-Manifest.
--no-deploynonebooleanfalseAutomatische Programm-Deployments deaktivieren.
--runbook <RUNBOOK>-rstring[]deploymentRunbook-ID, die nach dem Start ausgeführt werden soll. Wiederholbar.
--runbook-input <INPUT_PATH>-ipath[]noneEingabedatei für die Runbook-Ausführung. Wiederholbar.
--yes-ybooleanfalseRunbook-Generierungsabfragen überspringen.
--watchnonebooleanfalseBei Änderungen an Programmartefakten neu deployen.
--artifacts-path <ARTIFACTS_PATH>nonepathnoneVerzeichnis mit .so-Programmartefakten. Standardmäßig target/deploy, wenn nicht angegeben.
--legacy-anchor-compatibilitynonebooleanfalseStandardwerte für Legacy-Anchor-Test-Suites verwenden.
--anchor-test-config-path <TEST_TOML>nonepath[]noneAnchor-Test.toml-Datei zur Inspektion. Wiederholbar.

Konten & Zustand

FlagShortTypeDefaultBeschreibung
--airdrop <PUBKEY>-apubkey[]nonepubkey, an den beim Start SOL per Airdrop gesendet wird. Wiederholbar.
--airdrop-keypair-path <KEYPAIR_PATH>-kpath[]~/.config/solana/id.jsonkeypair-Pfad, dessen pubkey einen Airdrop erhalten soll. Wiederholbar.
--airdrop-amount <LAMPORTS>-qinteger10000000000000lamport, die beim Start an jedes Konto per Airdrop gesendet werden.
--snapshot <SNAPSHOT_PATH>nonepath[]noneJSON-Konten-Snapshot zum Vorladen. Wiederholbar. Spätere Dateien überschreiben frühere Dateien bei doppelten Schlüsseln.
--db <DB_URL>nonestringnoneDatenbankverbindungs-URL für persistenten Surfnet-Zustand. Verwende :memory: für In-Memory-SQLite, eine .sqlite-Datei für On-Disk-SQLite oder eine PostgreSQL-URL, wenn mit dem Feature postgres kompiliert.
--surfnet-id <SURFNET_ID>nonestringdefaultSpeicher-Namespace für diese Surfnet-Instanz.

Laufzeit & Benutzeroberfläche

FlagShortTypeDefaultBeschreibung
--no-tuinonebooleanfalseProtokolle ausgeben, anstatt die Terminal-Benutzeroberfläche zu starten.
--no-studiononebooleanfalseSurfpool Studio deaktivieren.
--studio-port <PORT>-sinteger18488Studio an diesen Port binden.
--daemonnonebooleanfalseSurfpool als Hintergrundprozess ausführen. Der Daemon-Modus ist nur unter Linux verfügbar.
--cinonebooleanfalseEinstellungen verwenden, die für CI geeignet sind. Dadurch werden TUI, Studio, Anweisungs-Profiling und Protokollausgabe deaktiviert.

SVM-Verhalten

FlagShortTypeDefaultBeschreibung
--slot-time <MILLISECONDS>-tinteger400slot-Zeit in Millisekunden.
--block-production-mode <MODE>-benumclockBlockproduktionsmodus.
--feature <FEATURE_PUBKEY>-fpubkey[]noneEine SVM-Funktion per pubkey aktivieren. Wiederholbar. Funktionsnamen sind veraltet, werden aber für zuvor unterstützte Namen noch akzeptiert.
--disable-feature <FEATURE_PUBKEY>nonepubkey[]noneEine SVM-Funktion per pubkey deaktivieren. Wiederholbar. Funktionsnamen sind veraltet, werden aber für zuvor unterstützte Namen noch akzeptiert.
--features-allnonebooleanfalseAlle SVM-Funktionen von agave-feature-set aktivieren.
--skip-signature-verificationnonebooleanfalseTransaktionssignaturprüfung überspringen.
--skip-blockhash-checknonebooleanfalseTransaktions-Blockhash-Validierung überspringen.

Observierbarkeit & Leistung

FlagShortTypeDefaultDescription
--geyser-plugin-config <PLUGIN_CONFIG_PATH>-gpath[]noneGeyser-Plugin-Konfigurationsdatei zum Laden. Wiederholbar.
--disable-instruction-profilingnonebooleanfalseAnweisungs-Profiling deaktivieren.
--max-profiles <COUNT>-cinteger200Im Speicher zu behaltende Transaktionsprofile. Höhere Werte erhöhen den Speicherverbrauch.
--log-bytes-limit <BYTES>noneinteger10000Maximale gespeicherte Bytes pro Transaktionsprotokoll. Auf 0 setzen für unbegrenzte Protokolle.
--log-level <LEVEL>-lenuminfoSimnet-Protokollebene. Werte: trace, debug, info, warn, error, none.
--log-path <LOG_DIR>nonepath.surfpool/logsVerzeichnis für Simnet-Protokolle.
--metrics-enablednonebooleanenv: SURFPOOL_METRICS_ENABLEDPrometheus-Metriken-Endpunkt aktivieren. Verfügbar, wenn Surfpool mit dem Feature prometheus erstellt wurde.
--metrics-addr <METRICS_ADDR>nonestring127.0.0.1:9000Adresse des Prometheus-Metriken-Endpunkts. Kann auch mit SURFPOOL_METRICS_ADDR gesetzt werden. Verfügbar, wenn Surfpool mit dem Feature prometheus erstellt wurde.

Veraltete Kompatibilität

FlagShortTypeDefaultDescription
--subgraph-db <SUBGRAPH_DB>-dstring:memory:Veraltet und in surfpool start --help ausgeblendet. Bestehende Skripte können es weiterhin zur Kompatibilität übergeben.

Beispiele

Mit Standardeinstellungen starten:

surfpool start

Devnet forken:

surfpool start --network devnet

Eine benutzerdefinierte Datenquellen-RPC-URL verwenden:

surfpool start --rpc-url https://api.mainnet-beta.solana.com

Protokolle ausgeben statt die TUI zu starten:

surfpool start --no-tui

Ohne Remote-RPC-Datenquelle starten:

surfpool start --offline

SOL an mehrere Konten airdroppen:

surfpool start --airdrop <PUBKEY> --airdrop <PUBKEY>

Konten-Status aus Snapshots laden:

surfpool start --snapshot ./snapshot1.json --snapshot ./snapshot2.json

Programme neu deployen, wenn sich target/deploy ändert:

surfpool start --watch

Surfnet-Status in einer SQLite-Datenbank auf der Festplatte speichern:

surfpool start --db ./surfnet.sqlite --surfnet-id local-dev

surfpool run

Führt ein Runbook aus. Sie können eine .tx-Datei direkt ausführen oder auf ein Runbook verweisen, das in einem txtx.yml-Manifest deklariert ist.

surfpool run [OPTIONS] <RUNBOOK>

Argumente

ArgumentTypBeschreibung
<RUNBOOK>stringRunbook-ID aus txtx.yml oder Pfad zu einer .tx-Datei.

Projekt

FlagKurzTypStandardBeschreibung
--manifest-file-path <MANIFEST_PATH>-mPfad./txtx.ymlPfad zum Runbook-Manifest.
--env <ENVIRONMENT>keinestringkeineUmgebung aus txtx.yml, die verwendet werden soll.

Ausführungsmodus

Diese Flags schließen sich gegenseitig aus. Wenn keines angegeben ist, verwendet Surfpool die Browser-Überwachung.

FlagKurzTypStandardBeschreibung
--unsupervised-ubooleanfalseAusführung ohne Supervisor-UI.
--browser-bbooleanStandardmodusAusführung mit Überwachung in der Browser-UI.
--terminal-tbooleanfalseAusführung mit Überwachung in der Terminal-Konsole.

Eingaben & Ausgaben

FlagShortTypStandardBeschreibung
--output-json [<OUTPUT_DIR>]keineoptionaler PfadkeineRunbook-Ausgaben als JSON ausgeben oder speichern. Bei Angabe eines Verzeichnisses wird die Ausgabe in eine Datei in diesem Verzeichnis geschrieben.
--output <OUTPUT_NAME>keineZeichenkettekeineEine benannte Ausgabe am Ende der Ausführung ausgeben. Konflikt mit --output-json.
--input <INPUT_PATH>keinePfad[]keineEingabedatei für die Stapelverarbeitung. Wiederholbar.

Ausführung

FlagShortTypStandardBeschreibung
--explainkeineBooleanfalseErläutert, wie das Runbook ausgeführt wird.
--force-fBooleanfalseZwischengespeicherten Ausführungsstatus ignorieren.

Supervisor-Benutzeroberfläche

Diese Flags sind verfügbar, wenn Surfpool mit dem supervisor_ui Feature erstellt wurde.

FlagShortTypStandardBeschreibung
--port <PORT>-pGanzzahl8488Web-UI-Port.
--ip <IP_ADDRESS>-iZeichenkette127.0.0.1Web-UI-IP-Adresse.

Protokollierung

FlagShortTypStandardBeschreibung
--log-level <LEVEL>-lEnuminfoProtokollierungsstufe der Runbook-Ausführung. Werte: trace, debug, info, warn, error.
--log-path <LOG_DIR>keinePfad.surfpool/logsVerzeichnis für Runbook-Ausführungsprotokolle.

Beispiele

Ein Manifest-Runbook mit Browser-Überwachung ausführen:

surfpool run deployment

Ohne Überwachung ausführen und JSON-Ausgaben schreiben:

surfpool run deployment --unsupervised --output-json .surfpool/runbook-outputs

Eine .tx-Datei direkt ausführen:

surfpool run ./runbooks/deployment.tx

surfpool ls

Listet alle im Workspace-Manifest deklarierten Runbooks auf.

surfpool ls [OPTIONS]
FlagShortTypeDefaultDescription
--manifest-file-path <MANIFEST_PATH>-mpath./txtx.ymlPfad zum Runbook-Manifest.

surfpool completions

Generiert Shell-Completion-Skripte.

surfpool completions <SHELL>
ArgumentTypeDescription
<SHELL>enumShell, für die Completions generiert werden sollen. Werte: bash, elvish, fish, powershell, zsh.

surfpool mcp

Startet den Surfpool-MCP-Server für die KI-Tool-Integration.

surfpool mcp

Is this page helpful?

© 2026 Solana Foundation. Alle Rechte vorbehalten.