Install
curl -fsSL https://docs.wego.com/cli/install | bashThat installs the wego binary and the agent skill together.
wego login opens your browser and stores the token locally. Every search and lookup command prints JSON on stdout, so each step’s output threads into the next step’s arguments (pipe through jq). Three print plain text instead: wego version (a bare version string), wego feedback (a confirmation), and wego skill list without --json.
Environment
| Variable | Does |
|---|---|
WEGO_CLI_TELEMETRY |
on, off or log for one run. Wins over the stored setting |
WEGO_CREDENTIALS_PATH |
Where the login is stored. Default ~/.config/<command name>/credentials.json, so wego uses ~/.config/wego/credentials.json |
WEGO_CLI_REDIRECT_PORT |
Fixed local port for the login callback (see Log in over SSH) |
The installer reads three of its own, all optional: WEGO_CLI_INSTALL_SKILL=0 skips the agent-skill step, WEGO_CLI_BIN renames the command (which is also the install’s config directory, so a second install needs nothing else to stay independent), and WEGO_CLI_INSTALL_DIR moves it off ~/.local/bin.
Commands
| Command | Does |
|---|---|
wego login [--browser | --no-browser] / wego logout |
Browser login (PKCE); remove stored credentials |
wego whoami |
Print the authenticated user |
wego places "<query>" |
Resolve free text to a city, airport, state, district or hotel. --types narrows it; the hotel form is where a hotelId comes from |
wego info holidays|visa-free|schedules|airports-near |
Stateless reference lookups, no search needed |
wego flights search <from> <to> <date> |
Create a flight search and block until it settles |
wego flights results <searchId> [--wait] |
Read a ranked snapshot; --wait settles first |
wego flights trip <tripId> --search <searchId> |
Full itinerary and fares for one trip |
wego flights fares <fareId> |
Fare options (Saver, Flex and similar) for a Wego fare |
wego flights booking-link <fareId> --trip <id> --fare-option <id> --from DXB --to LHR --date <date> |
Print the wego.com booking URL. All five flags are required; repeat --fare-option once per leg when a fare covers one leg |
wego flights experience <tripId> |
Per-leg comfort signals: overnight, long stopover, early departure, late arrival |
wego flights share <from> <to> <date> |
A wego.com search link to send to someone. Does not expire |
wego hotels search <cityCode|hotelId|lat,lng> <checkIn> <checkOut> |
Create and settle a hotel search. The hotelId form is the one rooms needs |
wego hotels results <searchId> [--wait] |
Read a page; --wait settles first |
wego hotels details <hotelId> |
Static hotel detail |
wego hotels reviews <hotelId> |
Guest reviews, newest first, pros and cons already split |
wego hotels rooms <hotelId> <checkIn> <checkOut> |
Rooms and rates, cheapest first. --search <id> re-reads a search rooms minted |
wego hotels booking-link <hotelId> --rate <rateId> |
Print the wego.com checkout URL |
wego hotels share <cityCode> <checkIn> <checkOut> |
A wego.com hotel search link. Does not expire |
wego config list / wego config set <key> <value> / wego config unset <key> |
Show or set the defaults every other command inherits. Keys: currency, site, locale |
wego skill list|install|path|uninstall |
Manage the agent skill in your coding agent; path prints where it landed. --scope user|project and --agent <name> pick where it goes |
wego feedback [--rating N] [--category VALUE] [--message "..."] |
Send feedback about the CLI to the Wego team |
wego telemetry status|enable|disable |
Report or change whether the CLI sends usage events |
wego update / wego uninstall |
Update in place; remove the binary, the login and the user-scope agent skill |
wego version |
Print the version |
wego config sets the currency, market and language a command uses when it names
none. A flag on the command always wins, then these settings, then your account
market, then the default (USD, en, US).
wego uninstall leaves a project-scope or --dir skill install alone. Remove one
of those with wego skill uninstall --scope project, or --dir <path>.
A settled search is stamped settled: converged when the snapshot stopped
changing, budget_exhausted when the re-read budget ran out first. A bare
results read with no --wait is a single snapshot, stamped unsettled.
--fare-option is required on flights booking-link: take it from
flights fares <fareId>. The endpoint rejects a request without one
(400 validation_failed), so there is no link to dead-end with.
Log in over SSH
Login binds a loopback listener on the machine that runs the CLI. On a remote machine your browser is somewhere else, so the redirect cannot come back on its own. The CLI detects the SSH session, opens no browser, and waits for you:
- Open the printed URL in the browser on your own computer.
- Approve the login. The browser then goes to a
http://127.0.0.1:<port>/callback?code=…address that only exists on the remote machine, so the page fails to load. That is expected – the code you need is in the address bar. - Copy that whole URL, paste it into the waiting terminal, and press Enter.
Force the same flow anywhere with wego login --no-browser –
useful in a container or any shell where the SSH check cannot see that you have no
browser. The opposite override is wego login --browser: open a
browser on the remote machine anyway, for an SSH session with X11 forwarding.
If you prefer the browser to reach the remote listener, pin the port and forward it instead – then the standard flow completes with no paste:
ssh -L 8765:127.0.0.1:8765 you@remote
WEGO_CLI_REDIRECT_PORT=8765 wego loginwego --help lists the commands, wego flights --help lists the flights commands, and wego flights results --help lists that command’s flags. The two chains:
flights: search -> results -> trip -> fares -> booking-link
hotels: search -> results -> rooms -> booking-linkfares is not optional in the flights chain: booking-link needs the
fareOptionId it returns.