CLI
Meridian's tools, from a terminal. meridian login signs you in over OAuth. meridian check NG-GB runs the eight readiness checks against your vault and prints the verdict. Visa lookups work without sign-in.
Node 20 or newer. Pick a package manager.
$ npm install -g @usemeridian/cli
meridian login$ npx -y @usemeridian/cli login
npx -y @usemeridian/cli requirements NG-GB$ pnpm add -g @usemeridian/cli
# or: yarn global add @usemeridian/cli
meridian loginnpm
Global binary. Available as `meridian` from any shell after install.
npx
Zero-install. Useful for CI runs or trying it once before committing.
pnpm / yarn
Same global install path. Pick the package manager your team already standardized on.
Five commands, two tiers. Lookups work without a token. Readiness reads your vault and needs OAuth.
meridian loginSign in via browser. OAuth device flow; new accounts bootstrap via magic link.
meridian whoamiShow the signed-in account. Smoke test that your token still works.
meridian requirements NG-GBAnonymous. Verified visa requirements for a corridor. Documents, fee, processing time, sources.
meridian check NG-GBAuth'd. Run the eight readiness checks against your vault. Returns a 0-100 score and per-check status.
meridian feedback NG-GB "fee is wrong"Tell the Meridian team something's off (or right). Anonymous-friendly.
Device flow with pairing-code parity (RFC 8628). Your terminal and the browser show the same code; you verify they match before approving. New accounts bootstrap via magic link on the same screen. No password ever touches your keyboard.
$ meridian login Open: https://usemeridian.app/oauth/device?user_code=MERI-AB3-X9K code: MERI-AB3-X9K (your terminal shows MERI-AB3-X9K. verify it matches before approving) Waiting for approval... ✓ Signed in as you@example.com
A phishing site can't make your terminal show its code. The CLI prints the code first, the browser shows the same code next to the Approve button, and approval gates on a 'this matches my terminal' checkbox. Same pattern Stripe CLI uses.
Tokens live at ~/.config/meridian/credentials.json (mode 0600). Override with --token, MERIDIAN_TOKEN, or pick a profile with MERIDIAN_PROFILE.
Pass --json on any command and the response shape matches the MCP tool's structuredContent. Pipe to jq, fan out, feed to another agent.
$ meridian requirements NG-GB --json | jq '.data.documents[] | .name' "Passport" "Visa application form" "Two recent passport photos" "Proof of accommodation" "Bank statements (last 3 months)" ...
Pairs with
The CLI is the terminal seat. The MCP server is the wire your assistant talks to. The agent skill is the script that tells the assistant when to call them. The API reference is the contract.
The tools your AI assistant calls. Drop https://usemeridian.app/mcp into any MCP-capable client.
The readiness loop, in Meridian voice. Drops into Claude Code, Claude.ai web, Cursor, Codex CLI, or Goose.
Stripe-shaped reference for the wire. Authentication, versioning, pagination, errors, and per-API contracts.
No password. No API key juggling. Run meridian login once. Every readiness check from there is a single command.