Claude
Skills
Sign in
Back

pp-flight-goat

Included with Lifetime
$97 forever

Search Google Flights, scan Kayak long-haul routes, and join FlightAware AeroAPI reliability, alerts, and tracking from one CLI.

Data & Analytics

What this skill does

<!-- GENERATED FILE — DO NOT EDIT.
     This file is a verbatim mirror of library/travel/flight-goat/SKILL.md,
     regenerated post-merge by tools/generate-skills/. Hand-edits here are
     silently overwritten on the next regen. Edit the library/ source instead.
     See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->

# Flight Goat — Printing Press CLI

## Prerequisites: Install the CLI

This skill drives the `flight-goat-pp-cli` binary. **You must verify the CLI is installed before invoking any command from this skill.** If it is missing, install it first:

1. Install via the Printing Press installer. It defaults binaries to `$HOME/.local/bin` on macOS/Linux and `%LOCALAPPDATA%\Programs\PrintingPress\bin` on Windows:
   ```bash
   npx -y @mvanhorn/printing-press-library install flight-goat --cli-only
   ```
2. Verify: `flight-goat-pp-cli --version`
3. Ensure the reported install directory is on `$PATH` for the agent/runtime that will invoke this skill.

If the `npx` install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.3 or newer):

```bash
go install github.com/mvanhorn/printing-press-library/library/travel/flight-goat/cmd/flight-goat-pp-cli@latest
```

If `--version` reports "command not found" after install, the runtime cannot see the binary directory on `$PATH`. Do not proceed with skill commands until verification succeeds.

## Categories
AeroAPI is divided into several categories to make things easier to
discover.
- Flights: Summary information, planned routes, positions and more
- Foresight: Flight positions enhanced with FlightAware Foresight™
- Airports: Airport information and FIDS style resources
- Operators: Operator information and fleet activity resources
- Alerts: Configure flight alerts and delivery destinations
- History: Historical flight access for various endpoints
- Miscellaneous: Flight disruption, future schedule information, and aircraft owner information

## Google Flights Currency

Use `--currency <ISO-4217-code>` when the user wants Google Flights prices in a
specific currency. Omit it for the default USD behavior.

```bash
flight-goat-pp-cli flights MAN AGP 2026-05-10 --currency GBP --sort cheapest --agent
flight-goat-pp-cli dates JFK CDG --from 2026-07-01 --to 2026-07-31 --currency EUR --sort --agent
flight-goat-pp-cli compare SEA LHR 2026-06-15 --currency GBP --agent
```

The flag is only valid on Google Flights price commands: `flights`, `dates`,
`compare`, `gf-search`, and `cheapest-longhaul`. Do not add it to AeroAPI or
Kayak-only commands.

## Delay Assessment

Use `assess` first when the user asks whether a delay is systemic, whether to
switch flights, or which same-route alternative is operationally safer.

```bash
flight-goat-pp-cli assess --origin SFO --destination DCA --delayed-flight UA123 --agent
flight-goat-pp-cli assess --origin KSFO --destination KJFK --depart-after 18:00 --no-prices --agent
```

`assess` joins AeroAPI airport delays, disruption counts, weather, route
alternatives, delayed-flight status, inbound-aircraft status, FAA NAS Status,
and optional Google Flights prices. Read `decision.verdict`,
`decision.systemic_signals`, `decision.flight_signals`, `alternatives`, and
`sources` before recommending an action. Failed upstream calls remain visible in
`sources` and `decision.missing_evidence`; do not treat a partial report as a
complete all-clear. Use `--include-raw` only when the original AeroAPI JSON is
needed for audit or custom scoring. FAA NOTAM data is not part of this command
yet.

## Development Tools
AeroAPI is defined using the OpenAPI Spec 3.0, which means it can be easily
imported into tools like Postman. To get started try importing the API
specification using
[Postman's instructions](https://learning.postman.com/docs/integrations/available-integrations/working-with-openAPI/).
Once imported as a collection only the "Value" field under the collection's
Authorization tab needs to be populated and saved before making calls.

The AeroAPI OpenAPI specification is located at:\
https://flightaware.com/commercial/aeroapi/resources/aeroapi-openapi.yml

Our [open source AeroApps project](/aeroapi/portal/resources)
provides a small collection of services and sample applications to help
you get started.

The Flight Information Display System (FIDS) AeroApp is an example of a
multi-tier application using multiple languages and Docker containers.
It demonstrates connectivity, data caching, flight presentation, and leveraging flight maps.

The Alerts AeroApp demonstrates the use of AeroAPI to set, edit, and
receive alerts in a sample application with a Dockerized Python backend
and a React frontend.

Our AeroAPI push notification [testing interface](/commercial/aeroapi/send.rvt)
provides a quick and easy way to test the delivery of customized alerts via AeroAPI push.

## Command Reference

**transcendence** — Compound flight decisions

- `flight-goat-pp-cli assess` — Classifies systemic vs flight-specific delay risk and ranks alternatives with AeroAPI, FAA NAS Status, inbound aircraft, and optional Google Flights price context.

**aircraft** — Manage aircraft

- `flight-goat-pp-cli aircraft <type>` — Returns information about an aircraft type, given an ICAO aircraft type designator string. Data returned includes...

**airports** — Manage airports

- `flight-goat-pp-cli airports get` — Returns information about an airport given an ICAO or LID airport code such as KLAX, KIAH, O07, etc. Data returned...
- `flight-goat-pp-cli airports get-all` — Returns the ICAO identifiers of all known airports. For airports that do not have an ICAO identifier, the FAA LID...
- `flight-goat-pp-cli airports get-delays-for-all` — Returns a list of airports with delays. There may be multiple reasons returned per airport if there are multiple...
- `flight-goat-pp-cli airports get-nearby` — Returns a list of airports located within a given distance from the given location.

**alerts** — AeroAPI alerting can be used to configure and receive real-time alerts on key flight
events. With customizable alerting offered by our alert endpoints, AeroAPI empowers
users to selectively pick various types of events/filters to alert on. By doing so,
you can receive specially tailored alerts delivered to you for events such as flight plan
filed, flight departure (out and off), flight arrival (on and in), and more!

To get started with alerting, the **PUT /alerts/endpoint** endpoint must first be used
to set up the account-wide default URL that alerts will be delivered to. This step must
be done before any alerts can be configured and will serve as the fallback URL that all
alerts will be sent to for the account if a specific delivery URL is not designated on a
particular alert. If this is not performed before configuring alerts, then you will
receive a 400 error with an error message reminding you of this step when trying to interact
with the **POST /alerts** endpoint. Once a URL is set via the **PUT /alerts/endpoint** endpoint,
then alerts can be configured using the **POST /alerts** endpoint. The **GET /alerts** endpoint
can also be used to retrieve all currently configured alerts associated with your AeroAPI key.
The **GET /alerts** endpoint will allow you to easily retrieve the id of any specific alerts of
interest configured for the account which can let you use the **GET** **PUT** and **DELETE**
**/alerts/{id}** endpoints to retrieve, update, and delete specific alerts.

When configuring an individual alert, the *target_url* field can be set to a URL that’s
different than the account-wide target endpoint set via the **PUT /alerts/endpoint**. If
the *target_url* field is set on an alert, then that specific alert will be delivered to
the specified *target_url* rather than the default account-wide one. If this field is not
configured for the alert, then the alert will be delivered to the default account-wide endpoint.
By setting this field, one can easily

Related in Data & Analytics