Warp Fork

SkillDev tools

Fork a warp route from the local HTTP registry for development and testing. Forks each chain with the right local node per protocol, anvil for EVM chains, surfpool (Solana mainnet fork) for Sealevel chains. Use when the goal is to simulate transactions on a set of local forks before submitting them on-chain.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Warp Fork skill

What this skill tells your AI

The instructions your AI receives, as published by hyperlane-xyz/hyperlane-monorepo in .claude/skills/warp-fork/SKILL.md and read by ahel’s review.

Fork a warp route using the local HTTP registry.

Instructions:

  1. Check if http://localhost:3333 is running. If not, run the start-http-registry SKILL. If that fails, use AskUserQuestion to prompt the user for an alternate registry URL to use instead of http://localhost:3333.

  2. First, use AskUserQuestion to prompt the user for the warp route ID:

    • Question: "Which warp route would you like to fork?"
    • Header: "Warp Route"
    • Options: Provide 2-3 common examples if known, otherwise use generic placeholders. Note that the fork may fail if the warp routes are invalid. Re-prompt the user!
  3. Run the command in the background:

    pnpm -C typescript/cli exec tsx cli.ts warp fork --registry $REGISTRY --warpRouteId $WARP_ROUTE_ID
    
    • Use the registry URL from step 0 for $REGISTRY (http://localhost:3333 by default, or user-provided if the local registry failed)
    • Use run_in_background: true so it doesn't block the conversation.
  4. After starting, report the task/shell ID and the fork registry server port back to the user.

  5. Remind the user they can stop it later with KillShell using that ID

Prerequisites:

  • The http-registry server must be running on port 3333. If not, start it first with /start-http-registry.
  • Forking is per-protocol: EVM chains need Foundry anvil on PATH; Sealevel chains need a locally-installed surfpool binary (>= 1.5.0) on PATH — there is no Docker fallback in the CLI. Install the pinned, checksum-verified surfpool release the way CI does — see the Install surfpool step in .github/workflows/test-cli-e2e.yml (a pinned v1.5.0 release tarball verified against its SHA-256); do not pipe the mutable run.surfpool.run installer to a shell. If the binary is missing, warp fork aborts with a "surfpool 1.5.0+ is required" error before forking.

Related skills:

  • /warp-simulate-safe-txs — EVM fork → replay a Safe batch → check.
  • /warp-simulate-svm-txs — Sealevel fork → replay SVM/Squads governance txs → check.

Example output:

Started warp fork for EZETH/ethereum-megaeth in background (shell ID: shell_abc123). To stop it later, I can use KillShell with that ID.

Signals

GitHub stars
75
Forks
601
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
warp-fork
Source
github.com/hyperlane-xyz/hyperlane-monorepo