-
-
Notifications
You must be signed in to change notification settings - Fork 4
Home
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.
- 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.
| 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 |
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 browserProtected 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.
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 moreThen ask your assistant anything about a trip. That's the whole setup.
- 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