Plan award trips from Claude Code. getaway sweeps seats.aero across 28 mileage programs, composes whole journeys — flights out and home, hotel award nights via rooms.aero — and judges every option like you would: seat quality, layovers, status earning, cash-fare anomalies.
/plugin marketplace add yasyf/getaway
/plugin install getaway@getaway
getaway's hooks ride the captain-hook plugin and its live boards ride
cc-present. Both install themselves — the first session registers their
marketplaces and Claude Code resolves the dependencies — so you add only
getaway's own marketplace, on install and on upgrade alike.
You need uv on PATH — the planning engine is a bundled Python CLI — and a seats.aero Pro API key, generated on the seats.aero Settings page under the API tab:
export SEATS_AERO_API_KEY=pro_YOUR_KEYRun /getaway:onboard once. The form arrives pre-filled from Gmail and
the airline and bank sites you're already logged into, and nothing is
written until you hit Submit. Skipping it is fine: planning runs on a
neutral profile, and balances bias ranking, never gate it. Then hand
over the trip in one sentence, as messy as you like:
I want to go away for roughly a week, leaving in the next couple days, and want something outside north america, warm, beachy, and has cheap points tickets for business class. want to avoid the common places we always go like seoul or tokyo
Claude pins the ask into a trip, derives a judgment profile from every clause — business class puts seat quality and affordability first, "warm, beachy" activates destination context, "always go" writes Seoul and Tokyo to your durable avoid list — and dispatches the planning pipeline. Finalists land on a live board, one evidence line per active factor:
Driving with an agent? Paste this:
/plugin marketplace add yasyf/getaway
/plugin install getaway@getaway
Checking United, Aeroplan, and Alaska one site at a time, for the same seat, is an evening gone. Ask once instead:
Any business award space from SFO to NRT or HND, September 1–14?
One sweep covers all 28 programs, and every row carries per-cabin mileage, remaining seats, and a freshness stamp. Rows land in a local cache, so follow-ups — other dates, other cabins — answer without spending another API call.
A six-figure Aeroplan balance with no destination in mind is money rotting. Flip the search around:
Where can Aeroplan take me in business from North America in October?
Bulk availability scans one program across whole regions, so the answer is a list of real routes with real award space — island space most people never think to search included:
2026-07-11 CMB MLE aeroplan 12500 9 FZ, GF
2026-07-11 TNR MRU aeroplan 12500 9 MK
2026-07-11 BLR MLE aeroplan 22500 1 AI, GF
2026-07-11 FRA FUE aeroplan 22500 1 2L, LX, WK
A direct award to a second-tier city rarely exists, and when it does it costs double. Lie-flat space to the big gateways is everywhere. Split the trip instead:
Fly me lie-flat to Asia in November — happy to land at a hub like NRT
and hop the last leg on a cash ticket.
The planner composes hybrid routings — gateway awards with cash hops, open jaws, two-award stitches — beside direct awards and compares them on total cost. Each cash leg's cabin is judged per leg from its length: a short hop books economy, a long haul books business:
SFO NRT aeroplan business 88000 miles + $118 taxes lie-flat
NRT TPE cash economy $96 3h45m hop
A trip plan that dies with the session is a trip planned twice. Every
constraint, sweep, and finalist persists per trip under
~/.getaway/trips/<slug>/, so resuming is one ask:
Pick up the warm-beachy trip where we left off.
The resume brief carries the pinned constraints, per-phase freshness, finalists so far, and expiring credits. Phases whose inputs haven't changed skip wholesale — a resumed plan spends zero API quota until you change something.
Every real ask becomes a trip: the verbatim ask, pinned constraints and preference lanes, and a judgment profile derived from both. The bundled CLI compiles each trip into an execution graph — sweeps, shortlists, journey composition, evidence, assess, rank — and the shipped workflow walks it. Preferences order and annotate but never gate, cost stays dominant with judgment reordering only within a cost tier, and a trip with lodging in scope picks up hotel award nights from rooms.aero along the way. The full doctrine lives in skills/getaway/references/.
The plugin ships three skills, each triggered by its own asks:
| Skill | When | What happens |
|---|---|---|
getaway |
Any trip, route, or award ask | Pins the trip, runs the pipeline, presents finalists with evidence |
getaway:onboard |
First run, or "set up my travel preferences" | A pre-filled preferences form: gogcli scans Gmail read-only, and live balances and statuses read from logged-in airline and bank sites behind one Touch ID tap; nothing is saved until Submit |
getaway:refresh |
"Refresh my balances", "what credits are expiring" | Re-reads balances, elite statuses, and trip credits from the logged-in sites — Gmail statement fallback for banks — and merges the deltas into your profile |
- A seats.aero Pro subscription for the API key. Pro keys get 1,000 calls per day; the planner tracks quota and answers follow-ups from cache.
- uv — the planning engine is a bundled
Python CLI run through
uv run; the first call builds its environment. - The 1Password
opCLI, when the key comes from anop_refin~/.getaway/preferences.jsoninstead of the environment — a secret reference likeop://Vault/item/fieldthat the CLI resolves withop readwhenever the env var is unset. - The cc-present plugin renders
the live boards — a declared dependency, auto-installed once its
marketplace is added; getaway ships its block pack at
.claude/components.
The raw Partner API surface — endpoints, params, data shapes, quota, and
per-program coverage — lives in
docs/seats-aero-api.md. The CLI documents
itself: uv run --project <plugin-root>/cli getaway --help.
Licensed under PolyForm-Noncommercial-1.0.0.