@voyagier/cli
v2.1.2
Published
Voyagier CLI — AI trip planning from your terminal
Readme
@voyagier/cli
Search flights, book activities, manage trip plans — from your terminal. Everything syncs to voyagier.com.
npm install -g @voyagier/cli
voyagier auth set-token <your-token>
voyagier doctor # confirm auth + schema reachabilityQuick Start
A trip plan is a goal graph: the plan ships with goals (flights, hotel, dates, destination, travellers) and you compose the trip by searching against those goals and selecting options. Searches are asynchronous — a search creates a selection, and options arrive shortly after, so you poll for them.
# 1) Resolve a client (idempotent by email)
voyagier clients upsert --email "[email protected]" --name "Smith Family" \
--type Individual --json
# 2) Scaffold a plan (creates the plan + default goal graph; optionally adds
# travellers if you pass --travellers)
voyagier plan-trip --client "Smith Family" --title "Smith — Tokyo" --json
# Returns a scaffold summary: { ok, tripPlanId, title, travellerIds, scaffolded,
# note, url, nextSteps } — the nextSteps are the compose commands for this plan.
# 3) Add a traveller
voyagier travellers add --plan <PLAN_ID> --first John --last Smith \
--type Adult --json
# 4) Search flights → poll for options → select
voyagier search flights --plan <PLAN_ID> --from JFK --to NRT \
--date 2026-09-15 --return 2026-09-22 --json
# Returns a selectionId. Options are fetched asynchronously:
voyagier selection-options <SELECTION_ID> --wait --json
voyagier select --selection-id <SELECTION_ID> --option-id <OPTION_ID> --json
# 5) Search a hotel → poll → select
voyagier search hotels --plan <PLAN_ID> --location Tokyo \
--checkin 2026-09-15 --checkout 2026-09-22 --json
voyagier selection-options <SELECTION_ID> --wait --json
voyagier select --selection-id <SELECTION_ID> --option-id <OPTION_ID> --json
# 6) Inspect readiness at any time
voyagier plans goals <PLAN_ID> --json
# 7) Pre-flight bookability check, then checkout
voyagier book <PLAN_ID> --validate --json
voyagier book <PLAN_ID> --jsonWhat's Bookable
| Selection | Bookable? | Source |
|-----------|-----------|--------|
| Activity | ✅ per slot | Viator |
| Hotel | ⚠️ partial | Blueprint Listings (checkout coverage incomplete) |
| Flight | ❌ display only | Sabre (itinerary view only — is_bookable = false) |
Always run voyagier book --validate <planId> for pre-flight checks. To control what gets charged, curate the cart (don't add display-only items) before invoking book — --types and --only-bookable are client-side preflight gates, not server-side filters.
Commands
| Command | Description |
|---------|-------------|
| voyagier doctor | Self-check: auth, schema, reachability, state, version |
| voyagier clients | Advisor CRM (list, get, create, update, archive, upsert) |
| voyagier plans | create, list, get, summary, delete; plans goals for the goal graph + readiness; plans bookable for pre-flight |
| voyagier plan-trip | Scaffold a plan (plan + default goal graph; adds travellers only if --travellers is given) and print compose next-steps |
| voyagier travellers | Add, list, update, remove travellers |
| voyagier search | Flights, hotels, activities, airports — creates a selection; options arrive async |
| voyagier selection-options <selectionId> | Read / poll a selection's options (--wait to poll until ready) |
| voyagier select | Choose an option (--selection-id <id> --option-id <id>, or by index from last search) |
| voyagier itinerary | Computed itinerary (sourced from tripPlanEvents) |
| voyagier listings | Blueprint Listings — recent change events, add to selection |
| voyagier places | Search / get / attach / list / highlight (Google Places + internal catalog) |
| voyagier cart | View cart with by-goal grouping and per-item bookability |
| voyagier book | Stripe checkout with --validate / --only-bookable / --types / --idempotency-key |
| voyagier bookings | View booking records |
| voyagier chat | Interactive AI trip planning |
| voyagier auth | Manage PAT / API URL |
| voyagier agent-docs | Print full AI agent integration reference |
Most data-bearing commands accept --json for structured output (notable exceptions: chat, telemetry, several auth subcommands). Use --plan <id> on select to prevent cross-plan state corruption when running parallel workflows.
For AI Agents
voyagier agent-docs # full reference (AGENT.md)Or read AGENT.md directly. It covers the goal-graph compose model, async option fetch, per-command JSON shapes, the error code table, and the bookability matrix.
Environment Variables
| Variable | Description |
|----------|-------------|
| VOYAGIER_TOKEN | Personal access token (overrides config) |
| VOYAGIER_API_URL | API base URL (default: https://travel.voyagier.com/api; the CLI appends /graphql) |
How It Works
Thin client over Voyagier's GraphQL API — the same API the web app uses. Everything syncs both ways. A plan is a goal graph; searching composes selections against goals, and Blueprint Listings, Viator, Google Places, and Sabre are all surfaced through the unified selection model.
License
UNLICENSED — proprietary.
