Comandos CLI

A CLI surfpool inicia Surfnets locais, executa Runbooks, lista Runbooks de um manifesto de workspace, gera completions de shell e inicia o servidor MCP do Surfpool.

Comandos

ComandoDescrição
surfpool startIniciar uma Surfnet local. Alias: surfpool simnet
surfpool runExecutar um Runbook
surfpool lsListar Runbooks no workspace atual
surfpool completionsGerar scripts de completion de shell
surfpool mcpIniciar o servidor MCP do Surfpool

surfpool start

Inicia uma Surfnet local. Se executado em um diretório de programa Solana, o Surfpool pode gerar e executar Runbooks que fazem o deploy dos seus programas.

surfpool start [OPTIONS]

Rede & Portas

FlagShortTipoPadrãoDescrição
--port <PORT>-pinteiro8899Vincular o servidor JSON-RPC a esta porta.
--ws-port <PORT>-winteiro8900Vincular o servidor WebSocket a esta porta.
--host <HOST>-ostring127.0.0.1Vincular os serviços de RPC, WebSocket e Studio a este host.
--rpc-url <RPC_URL>-ustringnenhumRealizar fork a partir desta URL de RPC de datasource. Conflita com --network. Também pode ser definido com SURFPOOL_DATASOURCE_RPC_URL.
--network <NETWORK>-nenumnenhumRealizar fork a partir de uma rede Solana predefinida. Valores: mainnet, devnet, testnet. Conflita com --rpc-url.
--offlinenenhumbooleanofalseExecutar sem uma fonte de dados RPC remota.

Projeto & Implantação

FlagShortTypeDefaultDescription
--manifest-file-path <MANIFEST_PATH>-mpath./txtx.ymlCaminho para o manifesto do runbook.
--no-deploynonebooleanfalseDesativar implantações automáticas de programas.
--runbook <RUNBOOK>-rstring[]deploymentID do runbook a executar após a inicialização. Repetível.
--runbook-input <INPUT_PATH>-ipath[]noneArquivo de entrada a fornecer à execução do runbook. Repetível.
--yes-ybooleanfalseIgnorar prompts de geração do runbook.
--watchnonebooleanfalseReimplantar quando os artefatos do programa forem alterados.
--artifacts-path <ARTIFACTS_PATH>nonepathnoneDiretório contendo os artefatos do programa .so. Usa target/deploy como padrão quando omitido.
--legacy-anchor-compatibilitynonebooleanfalseUsar padrões adequados para suites de teste legadas do Anchor.
--anchor-test-config-path <TEST_TOML>nonepath[]noneArquivo Test.toml do Anchor a inspecionar. Repetível.

Contas & Estado

FlagShortTypeDefaultDescription
--airdrop <PUBKEY>-apubkey[]nonepubkey para airdrop de SOL na inicialização. Repetível.
--airdrop-keypair-path <KEYPAIR_PATH>-kpath[]~/.config/solana/id.jsonCaminho do keypair cujo pubkey deve receber um airdrop. Repetível.
--airdrop-amount <LAMPORTS>-qinteger10000000000000lamports para airdrop em cada conta na inicialização.
--snapshot <SNAPSHOT_PATH>nonepath[]noneSnapshot de conta JSON a pré-carregar. Repetível. Arquivos posteriores substituem arquivos anteriores em caso de chaves duplicadas.
--db <DB_URL>nonestringnoneURL de conexão de banco de dados para o estado persistente do Surfnet. Use :memory: para SQLite em memória, um arquivo .sqlite para SQLite em disco, ou uma URL do PostgreSQL quando compilado com a feature postgres.
--surfnet-id <SURFNET_ID>nonestringdefaultNamespace de armazenamento para esta instância do Surfnet.

Runtime & UI

FlagShortTypeDefaultDescrição
--no-tuinonebooleanfalseExibir logs em vez de iniciar a interface de terminal.
--no-studiononebooleanfalseDesativar o Surfpool Studio.
--studio-port <PORT>-sinteger18488Vincular o Studio a esta porta.
--daemonnonebooleanfalseExecutar o Surfpool como processo em segundo plano. O modo daemon é exclusivo para Linux.
--cinonebooleanfalseUsar configurações adequadas para CI. Isso desativa a TUI, o Studio, o profiling de instruções e a saída de logs.

Comportamento do SVM

FlagShortTypeDefaultDescrição
--slot-time <MILLISECONDS>-tinteger400Tempo de slot em milissegundos.
--block-production-mode <MODE>-benumclockModo de produção de blocos.
--feature <FEATURE_PUBKEY>-fpubkey[]noneAtivar uma funcionalidade do SVM por pubkey. Repetível. Nomes de funcionalidades estão obsoletos, mas ainda são aceitos para nomes anteriormente suportados.
--disable-feature <FEATURE_PUBKEY>nonepubkey[]noneDesativar uma funcionalidade do SVM por pubkey. Repetível. Nomes de funcionalidades estão obsoletos, mas ainda são aceitos para nomes anteriormente suportados.
--features-allnonebooleanfalseAtivar todas as funcionalidades do SVM a partir de agave-feature-set.
--skip-signature-verificationnonebooleanfalseIgnorar a verificação de assinatura de transações.
--skip-blockhash-checknonebooleanfalseIgnorar a validação de blockhash de transações.

Observabilidade & Desempenho

FlagShortTypeDefaultDescription
--geyser-plugin-config <PLUGIN_CONFIG_PATH>-gpath[]noneArquivo de configuração do plugin Geyser a carregar. Repetível.
--disable-instruction-profilingnonebooleanfalseDesativar o profiling de instruções.
--max-profiles <COUNT>-cinteger200Perfis de transação a reter em memória. Valores mais altos aumentam o uso de memória.
--log-bytes-limit <BYTES>noneinteger10000Máximo de bytes armazenados para cada log de transação. Defina como 0 para logs ilimitados.
--log-level <LEVEL>-lenuminfoNível de log do Simnet. Valores: trace, debug, info, warn, error, none.
--log-path <LOG_DIR>nonepath.surfpool/logsDiretório para logs do Simnet.
--metrics-enablednonebooleanenv: SURFPOOL_METRICS_ENABLEDAtivar o endpoint de métricas do Prometheus. Disponível quando o Surfpool é compilado com o recurso prometheus.
--metrics-addr <METRICS_ADDR>nonestring127.0.0.1:9000Endereço do endpoint de métricas do Prometheus. Também pode ser definido com SURFPOOL_METRICS_ADDR. Disponível quando o Surfpool é compilado com o recurso prometheus.

Compatibilidade Obsoleta

FlagShortTypeDefaultDescription
--subgraph-db <SUBGRAPH_DB>-dstring:memory:Obsoleto e oculto de surfpool start --help. Scripts existentes ainda podem passá-lo por compatibilidade.

Exemplos

Iniciar com configurações padrão:

surfpool start

Bifurcar devnet:

surfpool start --network devnet

Usar uma URL RPC de fonte de dados personalizada:

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

Imprimir logs em vez de iniciar o TUI:

surfpool start --no-tui

Iniciar sem uma fonte de dados RPC remota:

surfpool start --offline

Airdrop de SOL para múltiplas contas:

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

Carregar estado de conta a partir de snapshots:

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

Reimplantar programas quando target/deploy for alterado:

surfpool start --watch

Persistir o estado do Surfnet numa base de dados SQLite em disco:

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

surfpool run

Executa um Runbook. Pode executar um ficheiro .tx diretamente ou referenciar um Runbook declarado num manifesto txtx.yml.

surfpool run [OPTIONS] <RUNBOOK>

Argumentos

ArgumentoTipoDescrição
<RUNBOOK>stringID do Runbook de txtx.yml, ou caminho para um ficheiro .tx.

Projeto

FlagAbrev.TipoPadrãoDescrição
--manifest-file-path <MANIFEST_PATH>-mcaminho./txtx.ymlCaminho para o manifesto do runbook.
--env <ENVIRONMENT>nonestringnoneAmbiente de txtx.yml a utilizar.

Modo de Execução

Estas flags são mutuamente exclusivas. Se nenhuma for especificada, o Surfpool utiliza a supervisão do browser.

FlagAbrev.TipoPadrãoDescrição
--unsupervised-ubooleanfalseExecutar sem a interface de supervisão.
--browser-bbooleanmodo padrãoExecutar com supervisão na interface do browser.
--terminal-tbooleanfalseExecutar com supervisão na consola do terminal.

Entradas & Saídas

FlagShortTipoPadrãoDescrição
--output-json [<OUTPUT_DIR>]nenhumcaminho opcionalnenhumImprimir ou gravar saídas do Runbook em JSON. Quando um diretório é fornecido, a saída é gravada em um arquivo nesse diretório.
--output <OUTPUT_NAME>nenhumstringnenhumImprimir uma saída nomeada ao final da execução. Conflita com --output-json.
--input <INPUT_PATH>nenhumpath[]nenhumArquivo de entrada para processamento em lote. Repetível.

Execução

FlagShortTipoPadrãoDescrição
--explainnenhumbooleanofalseExplicar como o Runbook será executado.
--force-fbooleanofalseIgnorar estado de execução em cache.

Interface do Supervisor

Essas flags estão disponíveis quando o Surfpool é compilado com o recurso supervisor_ui.

FlagShortTipoPadrãoDescrição
--port <PORT>-pinteiro8488Porta da interface Web.
--ip <IP_ADDRESS>-istring127.0.0.1Endereço IP da interface Web.

Registro de Logs

FlagShortTipoPadrãoDescrição
--log-level <LEVEL>-lenuminfoNível de log de execução do Runbook. Valores: trace, debug, info, warn, error.
--log-path <LOG_DIR>nenhumcaminho.surfpool/logsDiretório para logs de execução do Runbook.

Exemplos

Execute um Runbook de manifesto com supervisão do navegador:

surfpool run deployment

Execute sem supervisão e grave saídas em JSON:

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

Execute um arquivo .tx diretamente:

surfpool run ./runbooks/deployment.tx

surfpool ls

Lista todos os Runbooks declarados no manifesto do workspace.

surfpool ls [OPTIONS]
FlagShortTypeDefaultDescription
--manifest-file-path <MANIFEST_PATH>-mpath./txtx.ymlCaminho para o manifesto do runbook.

surfpool completions

Gera scripts de autocompletar para o shell.

surfpool completions <SHELL>
ArgumentTypeDescription
<SHELL>enumShell para gerar autocompletar. Valores: bash, elvish, fish, powershell, zsh.

surfpool mcp

Inicia o servidor MCP do Surfpool para integração com ferramentas de IA.

surfpool mcp

Is this page helpful?

© 2026 Fundação Solana. Todos os direitos reservados.