| name | fly-smart |
| description | Find cheaper flight routes using hidden-city arbitrage and hub transfer combinations. Activates when users search for flights, find cheap flights, compare routes, or look for budget travel deals. Supports 70+ global hubs, multi-date scanning, SQLite caching, and self-transfer detection. No API keys required. |
| version | 1.2.0 |
| license | MIT |
| compatibility | macOS, Linux (Python 3.10+ with venv) |
| metadata | {"author":"wali-reheman","hermes":{"tags":["flights","travel","self-transfer","hidden-city","google-flights","budget-travel","arbitrage","hub-transfer"],"category":"productivity"}} |
| required_environment_variables | [{"name":"VENV_PATH","prompt":"Python venv path for flight-search","help":"Defaults to ~/.hermes/venvs/flight-search. Only change if custom path needed.","required_for":"all operations"}] |
Flight Search Skill
When to Use
- User asks to search for flights, find cheap flights, or compare flight routes
- User wants to find the cheapest way to fly between two cities
- User mentions "hidden city", "self transfer", "transfer flights", or "hub hopping"
- User asks about budget travel or arbitrage opportunities in airfares
- User wants multi-date flight searches or flexible date options
- User wants to search flights from multiple nearby airports simultaneously
Procedure
Step 1 — Set Up the Python Environment
Create an isolated venv (required due to PEP 668 dependency conflicts):
python3 -m venv ~/.hermes/venvs/flight-search
~/.hermes/venvs/flight-search/bin/pip install flight-search
The flight-transfer-finder.py script at ~/.hermes/scripts/flight-transfer-finder.py is the main tool.
Step 2 — Quick Direct Flight Search
For single-date, direct origin→destination lookups:
~/.hermes/venvs/flight-search/bin/flight-search <ORIGIN> <DESTINATION> -d YYYY-MM-DD [options]
Step 3 — Transfer Finder for Hidden-City and Hub Arbitrage
For cheaper routes via intermediate hubs (separate tickets, no checked bags):
python3 ~/.hermes/scripts/flight-transfer-finder.py -o <ORIGIN> -d <DESTINATION> -dt <YYYY-MM-DD> [options]
Arguments quick reference:
| Argument | Description | Default |
|---|
-o | Origin airport(s), comma-separated | required |
-d | Destination airport IATA | required |
-dt | Reference departure date (YYYY-MM-DD) | required |
--flexible N | Scan ±N days around --dt | off |
--aggressive | Check 60 hubs instead of 25 | off |
--all-hubs | Check all 70+ global hubs | off |
--save-route | Append results to |