Individual skill
letsfg
LetsFG — Agent-native flight and hotel search and booking API. Every airline in the world plus the major booking sites (Google Flights, Skyscanner, Kiwi, Kayak, Momondo), with per-flight reliability history and instant booking. Plus real bookable hotel rates, refundable and non-refundable: the price is held on the connected card and charged only once the hotel confirms. letsfg.co
SKILL.md
Source commit cfe6a3fe9431d1a245a84b1be8556b510761cd4d
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- Yes
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Network or broad shell
- Last checked
- Nov 9, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 2,252
- Repository last updated
- Nov 8, 2026
- License
- NOASSERTION
Observed agent integration: claude-code, codex
- ai Repository topic
- ai-agents Repository topic
- openclaw Repository topic
- ai-agent Repository topic
- airline-api Repository topic
- booking Repository topic
- flight-search Repository topic
- flights Repository topic
- mcp Repository topic
- python-sdk Repository topic
- engineering Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
.dockerignoreasset · 3,079 bytes.github/dependabot.ymlasset · 492 bytes.github/workflows/plugin-scanner.ymlasset · 921 bytes.github/workflows/sdk-tests.ymlasset · 1,270 bytes.github/workflows/test.ymlasset · 4,417 bytes.gitignoreasset · 2,176 bytes.mcp.jsonasset · 1,118 bytesAGENTS.mddoc · 51,475 bytesBarWidget.qmlasset · 4,101 bytesCLAUDE.mddoc · 14,324 bytesCODE_OF_CONDUCT.mddoc · 2,531 bytesCONTRIBUTING.mddoc · 3,794 bytesDockerfileruns · 881 bytesDockerfile.pythonasset · 1,786 bytesLICENSEasset · 2,173 bytesModel.jsruns · 120,021 bytesOMARCHY-PLUGIN.mddoc · 26,133 bytesPanel.qmlasset · 193,098 bytesREADME.mddoc · 48,499 bytesSECURITY.mddoc · 2,280 bytesSKILL.mdcore · 28,502 bytesSKILL.mdcore · 28,502 bytesSKILL.mdcore · 28,502 bytesSKILL.mdcore · 28,502 bytesSKILL.mdcore · 28,502 bytesSKILL.mdcore · 28,502 bytesSKILL.mdcore · 28,502 bytesassets/Kalam-Bold.ttfasset · 460,896 bytesassets/Lexend.ttfasset · 175,756 bytesassets/OFL-Kalam.txtdoc · 4,373 bytesassets/OFL.txtdoc · 4,436 bytesassets/airports.jsonasset · 477,620 bytesassets/badge-instagram.svgasset · 398 bytesassets/badge-tiktok.svgasset · 392 bytesassets/badge-x.svgasset · 382 bytesassets/banner.pngasset · 36,027 bytesassets/demo.gifasset · 4,037,616 bytesassets/demo.mp4asset · 2,541,044 bytesassets/destinations/BCN.jpgasset · 19,174 bytesassets/destinations/DPS.jpgasset · 20,004 bytesassets/destinations/DXB.jpgasset · 19,456 bytesassets/destinations/NYC.jpgasset · 9,627 bytesassets/destinations/PAR.jpgasset · 22,306 bytesassets/destinations/TYO.jpgasset · 26,518 bytesassets/icons/LICENSEasset · 922 bytesassets/icons/arrow-left-right-muted.pngasset · 742 bytesassets/icons/arrow-left-right-orange.pngasset · 610 bytesassets/icons/arrow-right-faint.pngasset · 458 bytesassets/icons/arrow-right-muted.pngasset · 525 bytesassets/icons/arrow-up-down-muted.pngasset · 761 bytesassets/icons/arrow-up-down-orange.pngasset · 678 bytesassets/icons/backpack-green.pngasset · 1,250 bytesassets/icons/backpack-muted.pngasset · 1,240 bytesassets/icons/calendar-ink.pngasset · 701 bytesassets/icons/calendar-muted.pngasset · 780 bytesassets/icons/chevron-down-faint.pngasset · 412 bytesassets/icons/chevron-down-muted.pngasset · 455 bytesassets/icons/chevron-down-orange.pngasset · 380 bytesassets/icons/circle-check-green.pngasset · 1,703 bytesassets/icons/globe-muted.pngasset · 2,175 bytesassets/icons/hotel-faint.pngasset · 905 bytesassets/icons/hotel-muted.pngasset · 913 bytesassets/icons/hotel-orange.pngasset · 832 bytesassets/icons/luggage-green.pngasset · 850 bytesassets/icons/luggage-muted.pngasset · 867 bytesassets/icons/map-pin-muted.pngasset · 2,019 bytesassets/icons/map-pin-orange.pngasset · 1,813 bytesassets/icons/minus-faint.pngasset · 230 bytesassets/icons/minus-muted.pngasset · 231 bytesassets/icons/plane-faint.pngasset · 1,906 bytesassets/icons/plane-muted.pngasset · 1,917 bytesassets/icons/plane-orange.pngasset · 1,787 bytesassets/icons/plane-white.pngasset · 1,097 bytesassets/icons/plus-faint.pngasset · 379 bytesassets/icons/plus-muted.pngasset · 385 bytesassets/icons/search-muted.pngasset · 1,404 bytesassets/icons/search-white.pngasset · 793 bytesassets/icons/triangle-alert-amber.pngasset · 1,118 bytesassets/icons/users-ink.pngasset · 1,150 bytesassets/icons/users-muted.pngasset · 1,323 bytesassets/icons/x-muted.pngasset · 597 bytesassets/letsfg-logo.pngasset · 7,948 bytesassets/logo.pngasset · 23,376 bytesassets/name-fallbacks.jsonasset · 767 bytesassets/ranking.jsruns · 106,976 bytesassets/sponsor-evomi.pngasset · 231,377 bytescontext7.jsonasset · 3,630 bytesdocker-compose.ymlasset · 1,532 bytesdocs/TESTING.mddoc · 12,672 bytesdocs/agent-guide.mddoc · 23,884 bytesdocs/api-booking.mddoc · 11,326 bytesdocs/api-errors.mddoc · 4,377 bytesdocs/api-guide.mddoc · 7,601 bytesdocs/api-onboarding.mddoc · 6,587 bytesdocs/api-polling.mddoc · 5,118 bytesdocs/api-sandbox.mddoc · 17,051 bytesdocs/api-search.mddoc · 17,692 bytesdocs/architecture-guide.mddoc · 15,296 bytesdocs/assets/domain-redirect.jsruns · 399 bytesdocs/assets/extra-20261004.cssasset · 16,373 bytesdocs/assets/extra.cssasset · 15,355 bytesdocs/assets/letsfg-favicon.pngasset · 3,088 bytesdocs/assets/letsfg-wordmark.pngasset · 7,563 bytesdocs/cli-reference.mddoc · 7,470 bytesdocs/getting-started.mddoc · 11,043 bytesdocs/hotels.mddoc · 10,325 bytesdocs/index.mddoc · 9,896 bytesdocs/mcp.mddoc · 6,466 bytesdocs/openapi.mddoc · 3,970 bytesdocs/overrides/.gitkeepasset · 75 bytesdocs/packages.mddoc · 11,087 bytesdocs/quickstart-claude.mddoc · 5,523 bytesdocs/quickstart-cursor.mddoc · 4,970 bytesdocs/quickstart-windsurf.mddoc · 4,902 bytesdocs/self-hosting.mddoc · 5,507 bytesdocs/tutorials.mddoc · 19,639 bytesglama.jsonasset · 103 bytesintegrations/hermes/.gitattributesasset · 32 bytesintegrations/hermes/LICENSEasset · 1,091 bytesintegrations/hermes/README.mddoc · 8,250 bytesintegrations/hermes/assets/banner.pngasset · 24,787 bytesintegrations/hermes/assets/logo.pngasset · 23,376 bytesintegrations/hermes/plugin.jsonasset · 625 bytesintegrations/openclaw/.claude-plugin/plugin.jsonasset · 493 bytesintegrations/openclaw/.gitattributesasset · 32 bytesintegrations/openclaw/.mcp.jsonasset · 330 bytesintegrations/openclaw/LICENSEasset · 1,091 bytesintegrations/openclaw/README.mddoc · 5,290 bytesintegrations/openclaw/assets/icon.pngasset · 23,376 bytesintegrations/openclaw/openclaw.plugin.jsonasset · 753 bytesintegrations/openclaw/package.jsonruns · 680 byteslighthouserc.jsruns · 1,167 bytesmanifest.jsonasset · 567 bytesmcp-config.jsonasset · 764 bytesmkdocs.ymlasset · 2,313 bytesmodels/__init__.pyruns · 49 bytesmodels/flights.pyruns · 6,232 bytesopenapi.yamlasset · 44,151 bytespreview.pngasset · 379,511 bytespreview/build_stubs.pyruns · 14,935 bytespreview/fixture-offers-250.jsonasset · 147,999 bytespreview/fixture-offers.jsonasset · 6,120 bytespreview/main.qmlasset · 11,812 bytespreview/run.pyruns · 13,354 bytespreview/stubs/Quickshell/Io/FileView.qmlasset · 1,789 bytespreview/stubs/Quickshell/Io/IpcHandler.qmlasset · 204 bytespreview/stubs/Quickshell/Io/qmldirasset · 77 bytespreview/stubs/Quickshell/Quickshell.qmlasset · 615 bytespreview/stubs/Quickshell/qmldirasset · 58 bytespreview/stubs/qs/Commons/Border.qmlasset · 206 bytespreview/stubs/qs/Commons/Color.qmlasset · 544 bytespreview/stubs/qs/Commons/Style.qmlasset · 921 bytespreview/stubs/qs/Commons/qmldirasset · 110 bytespreview/stubs/qs/Ui/BarWidget.qmlasset · 599 bytespreview/stubs/qs/Ui/Button.qmlasset · 1,693 bytespreview/stubs/qs/Ui/KeyboardPanel.qmlasset · 913 bytespreview/stubs/qs/Ui/OpticalGlyph.qmlasset · 295 bytespreview/stubs/qs/Ui/Panel.qmlasset · 1,347 bytespreview/stubs/qs/Ui/PanelKeyCatcher.qmlasset · 383 bytespreview/stubs/qs/Ui/PanelSeparator.qmlasset · 294 bytespreview/stubs/qs/Ui/TextField.qmlasset · 720 bytespreview/stubs/qs/Ui/WidgetButton.qmlasset · 1,540 bytespreview/stubs/qs/Ui/qmldirasset · 293 bytessdk/js/README.mddoc · 16,754 bytessdk/js/letsfg-2026.5.72.tgzasset · 74,720 bytessdk/js/package-lock.jsonasset · 63,994 bytessdk/js/package.jsonruns · 1,288 bytessdk/js/src/auth.test.tsruns · 5,132 bytessdk/js/src/auth.tsruns · 13,481 bytessdk/js/src/cli.tsruns · 16,742 bytessdk/js/src/index.test.tsruns · 20,572 bytessdk/js/src/index.tsruns · 46,255 bytessdk/js/src/offer-details.tsruns · 23,004 bytessdk/js/src/ranking.tsruns · 65,760 bytessdk/js/src/trip-purpose.tsruns · 1,185 bytessdk/js/tsconfig.jsonasset · 330 bytessdk/mcp/README.mddoc · 28,408 bytessdk/mcp/letsfg-mcp-2026.5.75.tgzasset · 21,210 bytessdk/mcp/package-lock.jsonasset · 64,008 bytessdk/mcp/package.jsonruns · 1,162 bytessdk/mcp/src/index.test.tsruns · 20,530 bytessdk/mcp/src/index.tsruns · 65,773 bytessdk/mcp/tsconfig.jsonasset · 284 bytessdk/python/LICENSEasset · 1,063 bytessdk/python/README.mddoc · 28,830 bytessdk/python/_jetstar_checkout_validate.pyruns · 1,589 bytessdk/python/examples/quickstart.pyruns · 1,836 bytessdk/python/google_checkout_live_sweep.pyruns · 6,699 bytessdk/python/google_checkout_live_sweep_japan_longhaul.jsonasset · 7,188 bytessdk/python/google_checkout_live_sweep_longhaul_london_us.jsonasset · 5,735 bytessdk/python/google_checkout_live_sweep_results.jsonasset · 15,397 bytessdk/python/google_checkout_live_sweep_results_v2.jsonasset · 21,197 bytessdk/python/letsfg/__init__.pyruns · 1,861 bytessdk/python/letsfg/__main__.pyruns · 81 bytessdk/python/letsfg/cli.pyruns · 47,460 bytessdk/python/letsfg/client.pyruns · 53,978 bytessdk/python/letsfg/config.pyruns · 493 bytessdk/python/letsfg/connectors/__init__.pyruns · 350 bytessdk/python/letsfg/connectors/airport_tz.pyruns · 2,897 bytessdk/python/letsfg/connectors/auth.pyruns · 19,672 bytessdk/python/letsfg/local.pyruns · 11,853 bytessdk/python/letsfg/models.pyruns · 11,028 bytessdk/python/letsfg/models/__init__.pyruns · 12,761 bytessdk/python/letsfg/models/flights.pyruns · 22,239 bytessdk/python/letsfg/system_info.pyruns · 127 bytessdk/python/pyproject.tomlasset · 2,277 bytessdk/python/result.txtdoc · 0 bytessdk/python/tests/__init__.pyruns · 63 bytessdk/python/tests/test_ancillary_connector_parsing.pyruns · 13,614 bytessdk/python/tests/test_auth_user_agent.pyruns · 2,745 bytessdk/python/tests/test_booking_holdings_booking_urls.pyruns · 10,360 bytessdk/python/tests/test_checkout_engine_configs.pyruns · 33,096 bytessdk/python/tests/test_cli_declined_card.pyruns · 1,663 bytessdk/python/tests/test_cli_offer_shape.pyruns · 11,649 bytessdk/python/tests/test_connect_auth.pyruns · 6,430 bytessdk/python/tests/test_connect_auth_scope.pyruns · 4,384 bytessdk/python/tests/test_connector_parsing.pyruns · 8,417 bytessdk/python/tests/test_country_filter_completeness.pyruns · 848 bytessdk/python/tests/test_currency_rates.pyruns · 1,766 bytessdk/python/tests/test_duration_timezone.pyruns · 6,400 bytessdk/python/tests/test_emirates_connector.pyruns · 3,918 bytessdk/python/tests/test_flight_duration_backfill.pyruns · 3,438 bytessdk/python/tests/test_hotel_booking_contract.pyruns · 5,474 bytessdk/python/tests/test_india_direct_sources.pyruns · 9,414 bytessdk/python/tests/test_india_ota_sources.pyruns · 5,535 bytessdk/python/tests/test_india_user_surfaces.pyruns · 4,238 bytessdk/python/tests/test_models_read_bearer_lane_offers.pyruns · 5,192 bytessdk/python/tests/test_public_offer_masking.pyruns · 8,755 bytessdk/python/tests/test_regional_cross_area_validation.pyruns · 5,506 bytessdk/python/tests/test_regional_india_sources.pyruns · 3,618 bytessdk/python/tests/test_search_api_key_lane_field_names.pyruns · 1,651 bytessdk/python/tests/test_search_unauthorized.pyruns · 4,024 bytessdk/python/tests/test_skyscanner_connector.pyruns · 11,484 bytessdk/python/tests/test_source_country_filter.pyruns · 3,771 bytessdk/python/tests/test_starlink_flights.pyruns · 4,129 bytessdk/python/tests/test_telemetry_enrichment.pyruns · 3,604 bytessdk/python/tests/test_tripcom_connector.pyruns · 3,073 bytessdk/python/tests/test_user_agent_everywhere.pyruns · 4,698 bytessdk/python/tests/test_vueling_connector.pyruns · 5,598 bytessdk/python/tests/test_wizzair_connector.pyruns · 1,581 bytesserver.jsonasset · 1,535 bytessmithery.yamlasset · 1,355 bytessplit-comparison.jsonasset · 9,180 bytestest/model-test.jsruns · 84,199 bytestools/build-airports.pyruns · 12,094 bytestools/build-icons.pyruns · 5,241 bytestools/build-ranking.pyruns · 6,586 bytestools/check-search-invariant.pyruns · 3,061 bytestools/split-comparison.pyruns · 10,811 bytestools/validate.shruns · 4,744 bytes
No licensed excerpt is available. You can inspect the pinned source.