Skip to content
Mikko Parkkola edited this page Aug 9, 2026 · 1 revision

trvl

Tell your AI: "I've got €300 and a free weekend, surprise me." Get back a real trip.

trvl is a travel agent that lives inside your AI assistant. Ask in plain English and it searches flight and hotel sources, 22 European train/bus/ferry providers, airport transfers, and optional rental cars. Then it normalizes currencies, includes known bag costs and loyalty benefits, and compares the usable options. For stays, it starts from the requested room/apartment need and keeps unverified lead-in prices out of final recommendations.

One Go binary. No personal API keys for default search. Works with Claude, Cursor, Windsurf, Codex, and other MCP clients.

You:  I've got €300 and a free weekend. Surprise me.

trvl: Dubrovnik. Ryanair HEL->DBV Fri 14:25, nonstop, €167 round trip.
      Old Town Studios, 4.6 stars, €42/night x 2 = €84.
      26°C and sunny. Total €251, which is €49 under budget.
      (Flew you out Friday instead of Saturday: -€48. Split the
      airlines, Ryanair out and easyJet back: -€31.)

That is an illustrative response shape. Prices and availability are examples; a live search supplies the evidence used for a real recommendation.

Why people keep it installed

  • It sees combinations one-site agents can't. Ryanair, easyJet, Wizz, Lufthansa, your award program, and hotel points searched in parallel, with the winning combination surfaced instead of the first result that loads.
  • It tells the truth about price. A "€39" fare means nothing until you add the €35 checked bag. For accommodation, a property-level lead-in price is only a candidate until a room-level offer matches the requested occupancy, amenities, refundability, and currency.
  • It refuses to make things up. A provider that times out is reported as "timed out," never as a silent "no flights found." There is a render guard built specifically to stop that lie.
  • It runs where you want. Local stdio for privacy, or a secure remote mode with OAuth 2.1 read/write scopes when you want to host it.

At a glance

Flight integrations 10: Google Flights, Kiwi, and Skiplagged in the default merge; AFKLM plus Ryanair, Wizz Air, Transavia, easyJet, Vueling, and Norwegian as solo or opt-in paths
Hotel sources 6 (Google Hotels, Booking.com, Airbnb, Trivago, Hostelworld, HomeToGo)
Transport providers 22 train/bus/ferry providers, plus airport-transfer estimates and optional Skyscanner Car Hire: 24 overall
Travel-hack detectors 36 (hidden city, throwaway ticketing, positioning, split ticketing, error fares, and more)
Interface 1 smart MCP tool (+ 66 compatibility aliases) and a 56-command CLI
API keys no personal keys required for default search; optional integrations document their credentials
Protocol / License MCP 2025-11-25 · PolyForm Noncommercial 1.0

Current release: v1.21.0

v1.21.0 was published on 2026-08-08. The release adds source-backed cancellation and refundability evidence, exposes an upstream official-property-site signal when present, and separates a source-level booking-readiness ceiling from property-specific downgrade reasons. ready remains reachable through room-level results when exact room identity, a durable seller URL, and explicit refundability are available.

The same release adds two privacy controls:

export TRVL_NO_BROWSER_COOKIES=1   # do not read or open your installed browsers
export TRVL_NO_TIER2_CDP=1         # do not start trvl's own headless browser

Protected hotel and rail sources rely on browser sessions, so disabling cookie access can materially reduce results. The headless fallback starts an installed Chrome, Brave, or Edge with an empty profile only when a challenge needs fresh cookies; it does not read your existing sessions, show a window, or take focus. Its visible-browser alternative is separate, provider-specific, and opt-in.

Price watches move to transactional ~/.trvl/watch.db storage on first run. If you lowered TRVL_WATCH_MAX_POINTS_PER_WATCH, migration removes history above that limit. Run trvl watch migrate --dry-run before upgrading if you keep long watch histories.

Try it without installing anything

Want to feel it before you wire it up? Run trvl live in your browser and type a real trip.

When you're ready to put it in your own assistant:

brew install MikkoParkkola/tap/trvl
trvl mcp install        # auto-detects Claude, Cursor, Windsurf, Codex, and more

Then ask your assistant anything about a trip. That's the whole setup.

Dig deeper

  • Providers — every flight, hotel, ground, and car source, with live status
  • Commands — the full 56-command CLI reference
  • MCP Integration — wiring it into your assistant, plus secure remote mode
  • GitHub repository — source, releases, issues

trvl Your AI's travel agent. No personal keys for default search.

Try it

Clone this wiki locally