Start HTTP Registry Server
SkillDev toolsStart the local HTTP registry server for development. Use when testing infra scripts or commands that need a Abacus work private overrides such as RPC URLS.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Start HTTP Registry Server skill
What this skill tells your AI
The instructions your AI receives, as published by hyperlane-xyz/hyperlane-monorepo in .claude/skills/start-http-registry/SKILL.md and read by ahel’s review.
Start the http-registry server in the background.
Instructions:
-
First, find the monorepo root (working directory may have drifted):
git rev-parse --show-toplevel -
Run the command with
run_in_background: true, prefixing withcdto the monorepo root ANDCI=falseinline (see next paragraph for why):cd <MONOREPO_ROOT> && CI=false pnpm -C typescript/infra start:http-registry--writeMode(optional): append--writeModewhen the calling skill will write artifacts back through the server —warp deploy,warp apply, andwarp alt createpersist the resulting config/addresses via the write routes. Omit it for read-only flows (warp read,warp check). Serving private/pinned RPCs (the reason to use the HTTP registry at all) is independent of--writeMode; the flag only enables the write routes.Why
CI=false: the infra HTTP registry wrapsgetRegistryForEnvironment(typescript/infra/config/registry.ts:192), which merges filesystem chain metadata with per-chain RPC overrides. The override source is CI-gated:CI !== 'true'→ GCP Secret Manager (private / keyed URLs like Alchemy, Dwellir, Ankr, TronGrid);CI === 'true'→MAINNET3_<CHAIN>_RPC_URLSenv vars (the GitHub-Actions injection path). On Haggis workers and any environment where those env vars aren't set,CI=truesilently falls back to the public on-disk registry URLs — which are rate-limited (e.g. Tron's public trongrid.io = 3 rps unauthenticated → 429 during broadcasts). Prefix inline so the setting is scoped to this single invocation; do NOTexport CI=falseglobally — other flows in the same session may legitimately needCI=true. -
Wait for the log line
Server runningin the background task's output before any downstream consumer hits the server. This is the canonical readiness signal. -
Verify the server is reachable using the
/readinessendpoint, NOT the root path — the root returns404by design and is not a liveness signal:curl -sf http://localhost:<port>/readiness && echo "ok"The server only routes specific paths:
/readiness,/metadata,/addresses,/chains,/chain/<name>,/warp-route/deploy/<id>,/warp-route/deploy?<filter>, etc. Hittinghttp://localhost:<port>/returns404even when the server is healthy. Do NOT interpret a root-404 as "server is dead" and fall back to passing the local FS registry path to downstream--registryflags — falling back bypasses the centralized RPC config the HTTP registry provides and can cost real mainnet gas on retries against flaky public RPCs. -
Report the task/shell ID + the port (typically
3333, read from the logs) to the user. -
Remind the user they can stop it later with
KillShellusing that ID, or via/stop-http-registry.
Example output:
Started http-registry server in background (shell ID:
shell_abc123) onhttp://localhost:3333. Readiness verified. To stop it later, I can use KillShell or you can run/stop-http-registry.
Signals
- GitHub stars
- 75
- Forks
- 601
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
start-http-registry- Source
- github.com/hyperlane-xyz/hyperlane-monorepo