Skip to content

flyblock/flight-search-harness

v1.0.0Apache-2.0

Run recoverable browser-assisted searches for low-cost random loops, one-way journeys, and round trips.

Flight Search Harness

Flight Search Harness gives Codex a recoverable, evidence-backed way to research low-cost travel. It routes each request to one independent Product Kernel, preserves the Run across interruptions, and returns a structured Outcome.

The project is tested on Windows with Codex desktop and Python 3.10 or later. The current Plugin release is 1.0.0 and uses public request protocol 2.0 with the protocol-3 Run, Lease, Work Item, and Receipt lifecycle.

Live searches use the user's authorized Browser/computer-use capability to research public travel pages. No paid flight-search API subscription is required.

What it does

Search typeUse it forResult
Random loopFlexible destinations and dates for an airport-only multi-leg loopA verified loop, or a bounded no-result Outcome after the required search scope is exhausted
One-wayA selected destination with flexible regional gateways and optional surface transportA complete origin-to-destination journey assembled from admitted Evidence
Round tripA selected destination with an outbound and return journeyA comparison of complete ticket portfolios, including joint, split, open-jaw, nested, and surface-supported options

The Harness researches and validates travel options. It does not book or pay for travel.

Quick start

Install the complete Plugin, or install one search Skill directly:

npx skills add flyblock/flight-search-harness --skill low-cost-round-trip-flight-search

The same command supports low-cost-one-way-travel-flight-search and low-cost-random-loop-flight-search. After the corresponding v1.0.0 GitHub Release is public, a standalone Skill obtains its matching Harness runtime from that Release asset on first use; a Skill installed through the complete Plugin uses the bundled runtime. While the repository and Release remain private, use the complete local Plugin installation. Then describe the trip in natural language. Codex selects the matching search Skill and resumes the same Run if the search is interrupted.

The complete Plugin contains the Harness runtime, all three Product Kernel modules, and all three search Skills. Extract it without changing its directory structure and install the extracted folder through Codex's local Plugin workflow.

From a developer checkout, confirm the local runtime and package boundary in PowerShell:

python --version
python scripts/run_flight_harness.py --help
python scripts/package_flight_search_harness.py validate

See Getting started for the first live search and CLI reference for direct commands.

Example requests

Random loop:

Find a low-cost airport loop using the departure pool, date window, leg bounds, baggage policy, and Base Currency I provide. Prioritize verified distance per Base Currency unit.

One-way:

Find the lowest-cost complete one-way journey using my origin, destination, date window, party size, baggage policy, and transfer constraints. Include eligible surface access when I allow it.

Round trip:

Compare complete round trips using my origin, destination, outbound and return windows, party size, baggage policy, and transfer constraints. Check joint, split, and open-jaw options.

How it works

Natural-language request
  -> journey-shape routing
  -> recoverable Search Mission
  -> browser research by a Worker
  -> product-owned Evidence and solving
  -> completed, draft, blocked, or failed Outcome

Skills are the natural-language workflow entry points. The authorized Browser/computer-use capability performs live Provider research, while the Harness owns execution, recovery, and persistence. Each Product Kernel independently owns its search state, Evidence admission, solver, and completion criteria.

See How Flight Search Harness works for the three Product Kernel strategies, low-cost objectives, lifecycle diagram, and research foundations.

Outcomes and resume

OutcomeMeaning
completedThe selected Product Kernel passed its finalization criteria and produced the authoritative result.
draftUseful work exists, but the search is unfinished and can be resumed.
blockedProgress requires a specific external action or user decision.
failedThe Run is terminal because the active request has no recoverable next action.

Runs are stored under runs/. To continue an interrupted search, resume its existing run_id; starting a replacement Run discards the recovery advantage.

Project layout

plugin.json        Plugin identity and distribution metadata
skills/            Three user-facing search Skills
flight_search_harness/    Shared lifecycle, persistence, Worker, and CLI runtime
product/           Three independent Product Kernel implementations
docs/              Getting-started, architecture, CLI, and development guides
scripts/           Path-independent launcher plus packaging utilities

Documentation

Development

Validate the runtime whitelist and confirm the launcher starts:

python -m unittest discover -s tests -q
python scripts/package_flight_search_harness.py validate
python scripts/run_flight_harness.py --help

License

Flight Search Harness is licensed under the Apache License 2.0.

Acknowledgments

Thanks to OpenAI Codex for assistance with the design, implementation, and verification of Flight Search Harness.