Search Bilt Rewards travel portal for cash and Bilt Points pricing on hotels and flights.

MITAuto-check passedBackend & APIs

Install Bilt

skills CLI
$ npx skills add borski/travel-hacking-toolkit --skill bilt -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install borski/travel-hacking-toolkit bilt --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/borski/travel-hacking-toolkit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/travel-hacking-toolkit/skills/bilt .claude/skills/bilt && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
bilt
GitHub stars
688
Token cost
~3.8k tokens
SKILL.md length
1,129 words
Files
1
Skills in repo
46
Repo updated
First seen
Licence
MIT

At a glance

Search Bilt Rewards travel portal for cash and Bilt Points pricing on hotels and flights.

  • Works in 4 steps: Look up location searchId → Search hotels → Submit search → …
  • Tasks that involve REST APIs
  • SKILL.md covers Important: Bilt is Whitelabel…, Why It Matters, When to Use and When NOT to Use, plus 7 more sections
  • Calls jq and curl; reaches api.biltrewards.com

What it does

Bilt is an agent skill from borski/travel-hacking-toolkit. Search Bilt Rewards travel portal for cash and Bilt Points pricing on hotels and flights. Public REST API, no auth required. Includes Home Away From Home (HaFH) properties with $300+ benefits.

Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering REST APIs. It works with C++. The repository describes itself as: AI-powered travel hacking and search with cash, points, miles, and award flights. Drop-in skills and MCP servers for Claude, Codex, and OpenCode. The licence is MIT.

When your agent uses it

  • Tasks that involve REST APIs

Example prompts

  • “/bilt”

Requirements

  • Pre-approved tools (allowed-tools): Bash(curl *), Bash(jq *)

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Look up location searchId
  2. Search hotels
  3. Submit search
  4. Poll for results

What it can do on your machine

Read from SKILL.md and the folder at commit db82131. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(curl *)
    • Bash(jq *)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • jq
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.biltrewards.com

    Also links to:

    • bilt.com
    • duffel.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Bilt loads about 3.8k tokens when it runs. Until then it costs about 49 tokens; SKILL.md has 1,129 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~49
When it runs · the whole SKILL.md, loaded when a task matches
~3.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from borski/travel-hacking-toolkit at commit db82131, republished under its MIT licence (© borski). 1,129 words, ~3,849 tokens.

Download SKILL.mdSave it as .claude/skills/bilt/SKILL.md (or your agent's skills folder).
name
bilt
description
Search Bilt Rewards travel portal for cash and Bilt Points pricing on hotels and flights. Public REST API, no auth required. Includes Home Away From Home (HaFH) properties with $300+ benefits.
allowed-tools
Bash(curl *), Bash(jq *)
category
portals
summary
Bilt Rewards travel portal for hotels and flights. 1.25 cpp on Bilt Points. Home Away From Home properties give $300+ in benefits to Gold/Platinum members.
api_key
None (public API)

Search Bilt Rewards travel portal via the public REST API. No authentication required for search. Returns both cash prices in USD and Bilt Points cost for hotels and flights.

Important: Bilt is Whitelabel Duffel

Bilt's travel search is built directly on top of Duffel. All evidence points to a complete white-label arrangement, not a partial integration:

  • Flight offer IDs are off_XXX, slices sli_XXX, segments seg_XXX, aircraft arc_XXX, airlines arl_XXX. All Duffel ID patterns.
  • Carrier and aircraft logos served from assets.duffel.com.
  • Hotel loyalty program logos served from assets.duffel.com/img/stays/loyalty-programmes. So hotels are Duffel Stays.
  • JWT organisation_id: org_0000AaALZyFQ... is a Duffel auth pattern.
  • Field names match Duffel exactly: marketingCarrier, operatingCarrier, cabinClassMarketingName, fareBasisCode, isNDC, ndcRedirectUrl, totalEmissionsKg, slices[].segments[].passengers[].baggages[].

What Bilt adds on top of Duffel:

  • totalPointsRequired (Bilt Points cost at the fixed 1.25 cpp portal rate)
  • isHafh (Home Away From Home flag on hotels)
  • loyaltyProgram.reference (brand affiliation surfacing for hotels)
  • A few Bilt-specific filter fields

What this means for the toolkit:

  • For cash-only flight searches, prefer the duffel skill. It uses an authenticated Duffel API key, returns the same data faster, and supports more parameters (multi-city, time windows, max connections, supplier_timeout tuning).
  • For Bilt Points context (CPP, comparing portal cost to award alternatives, Bilt redemption math), use this skill. The points pricing is exclusive to Bilt's endpoint.
  • For Home Away From Home property research, use this skill. The isHafh flag is Bilt-specific and surfaces the $300+ benefits properties.

Why It Matters

  • 1.25 cpp standard redemption rate on Bilt Points (1 USD = 80 points). One of the better fixed portal rates.
  • Home Away From Home (HaFH) is Bilt's premium hotel program. Gold and Platinum members get $300+ in benefits per stay (daily breakfast for two, $100 property credit, room upgrades on arrival, early check-in / late check-out, dedicated Virtuoso Travel Advisor).
  • Bilt Points transfer 1:1 to Hyatt, Marriott, Hilton, IHG, United, AA, Air Canada Aeroplan, Air France/KLM, Virgin Atlantic, Cathay, Turkish, and more — so this portal is a 1.25 cpp "bottom-of-the-barrel" comparison point for transfer-partner award searches.
  • Flights are Duffel-backed. Same response shape as the duffel skill. Same airlines, same fare classes, same segment structure.
  • No auth needed for search. Browser automation, login, 2FA all unnecessary. Just curl.

When to Use

  • Comparing Bilt portal pricing to seats.aero awards
  • Computing CPP for Bilt Points redemptions
  • Finding HaFH properties for Bilt Gold/Platinum benefit stacking
  • Sanity-checking cash vs points decision when Bilt Points are involved
  • As a "redemption floor" reference: if award flights cost more than the portal price, the portal wins

When NOT to Use

  • Cash-only flight searches without Bilt Points context. Use duffel instead. Bilt is whitelabel-Duffel, so Duffel returns the same cash prices and offer shape, faster, with more parameters supported.
  • Booking flights or hotels. This skill finds offers only. Booking requires login + Bilt Mastercard. Out of scope.
  • Award flight search. Use seats-aero for award availability across loyalty programs.
  • Hotel research outside Bilt's program. Use premium-hotels for Amex FHR/THC + Chase Edit, serpapi for general Google Hotels metasearch.

Bilt Points Valuation

MetricValueNotes
Portal redemption rate1.25 cpp$1 = 80 points (standard, fixed)
Cash → points formulapoints = round(usd / 0.0125)Reverse-derived from observed responses
TPG valuation (transfers)2.05 cppWhen transferred to optimal partners

Decision rule: If transferring Bilt Points to a partner program would yield more than 1.25 cpp, transfer. If not, use the portal.

API Base

https://api.biltrewards.com/public/travel

All endpoints are public, no API key required. Standard JSON responses.

Step 1: Look up location searchId
bash
curl -s "https://api.biltrewards.com/public/travel/hotels/auto-complete?query=New+York" \
  | jq '.searchResults[0].locationSuggestion'

Returns:

json
{
  "name": "New York",
  "country": {"name": "USA", "code": "US"},
  "region": {"name": "NY", "code": null},
  "searchId": "ChIJOwg_06VPwokRYv534QaPC8g"
}

The searchId is a Google Places ID. You can also pass searchType: HOTEL_SEARCH results to search a specific property.

Step 2: Search hotels
bash
curl -s "https://api.biltrewards.com/public/travel/hotels/search" \
  --get \
  --data-urlencode "checkInDate=2026-08-15" \
  --data-urlencode "checkOutDate=2026-08-18" \
  --data-urlencode "numGuestAdults=2" \
  --data-urlencode "numRooms=1" \
  --data-urlencode "searchId=ChIJOwg_06VPwokRYv534QaPC8g" \
  | jq '.hotelResults | length'

Returns 100 to 200 hotels typically. Synchronous, no polling needed.

Required parameters
ParameterTypeDescription
checkInDateYYYY-MM-DDRequired
checkOutDateYYYY-MM-DDRequired
numGuestAdultsintRequired, 1+
numRoomsintRequired, 1+
searchIdstringGoogle Places ID from auto-complete
Optional parameters
ParameterTypeDescription
childrenAgescsv intsE.g. 5,8 for two children aged 5 and 8
hotelIdstringSearch a specific acc_XXX property
Hotel response shape
{
  stayDetails: { checkInDate, checkOutDate, numRooms, numGuestAdults, childrenAges },
  hotelResults: [
    {
      id: "acc_XXX",
      name: "Park Hyatt New York",
      rating: 5,                      // star rating
      description: "...",
      isHafh: true,                   // Home Away From Home flag
      loyaltyProgram: {               // brand affiliation, if any
        name: "World of Hyatt",
        reference: "world_of_hyatt",
        logoUrl: "..."
      },
      address: { street, city, stateProvince, countryCode, postalCode },
      geolocation: { latitude, longitude },
      amenities: [{ description, category }, ...],
      images: [{ url }, ...],
      lowestRateDetails: {
        usdAmounts: { total },        // cash total in USD
        points: 319681,               // Bilt Points cost
        dueAtHotelAmount, dueAtHotelCurrency,
        ...
      }
    }
  ],
  filterDetails: { ... }
}
Hotel detail (room rates)
bash
curl -s "https://api.biltrewards.com/public/travel/hotels/acc_0000AWPt2s3aNc1GpC5bmU?checkInDate=2026-08-15&checkOutDate=2026-08-18&numGuestAdults=2&numRooms=1" \
  | jq '.hotelDetails | {name, isHafh, rates: .roomTypes[0]}'

Returns hotelDetails with full property info plus roomTypes containing each available rate.

Show full SKILL.md (453 more words)Show less
Useful jq filters
bash
# Top 10 cheapest hotels with HaFH flag and CPP rounded to 2 decimals
curl -s "$URL" | jq '
  [.hotelResults[]
   | select(.lowestRateDetails.usdAmounts.total != null)
   | {name, isHafh, rating,
      cash: .lowestRateDetails.usdAmounts.total,
      points: .lowestRateDetails.points,
      cpp: (((.lowestRateDetails.usdAmounts.total / .lowestRateDetails.points) * 100) * 100 | round / 100),
      brand: .loyaltyProgram.name}]
  | sort_by(.cash) | .[0:10]'

# Only HaFH properties (worth $300+ benefits if Gold/Platinum)
curl -s "$URL" | jq '
  [.hotelResults[]
   | select(.isHafh == true)
   | {name, rating, cash: .lowestRateDetails.usdAmounts.total, points: .lowestRateDetails.points}]
  | sort_by(.cash)'
bash
curl -s "https://api.biltrewards.com/public/travel/flights/search" \
  --get \
  --data-urlencode "departureDate=2026-08-15" \
  --data-urlencode "returnDate=2026-08-22" \
  --data-urlencode "origin=SFO" \
  --data-urlencode "destination=NRT" \
  --data-urlencode "adults=1" \
  --data-urlencode "cabinClass=business"

Returns:

json
{
  "data": {
    "id": "orq_0000B5mQkPhO7VxuWClhZI",
    "totalBatches": 35,
    "remainingBatches": 35,
    "createdAt": "...",
    "clientKey": "..."
  }
}
Step 2: Poll for results
bash
curl -s "https://api.biltrewards.com/public/travel/flights/search/$ID"

remainingBatches ticks down to 0 over 5 to 15 seconds. The response includes the offers array as soon as the first batch returns. Poll every 3 to 5 seconds until remainingBatches == 0 for the complete result set.

bash
# Polling loop
for i in 1 2 3 4 5; do
  RESP=$(curl -s "https://api.biltrewards.com/public/travel/flights/search/$ID")
  REMAINING=$(echo "$RESP" | jq -r '.data.remainingBatches')
  echo "Poll $i: $REMAINING batches remaining"
  [ "$REMAINING" = "0" ] && break
  sleep 4
done
echo "$RESP" | jq '.data.offers | length'
Required parameters
ParameterTypeDescription
departureDateYYYY-MM-DDRequired
originIATA airport codeRequired
destinationIATA airport codeRequired
adultsintRequired, 1+
Optional parameters
ParameterTypeDescription
returnDateYYYY-MM-DDRound-trip, omit for one-way
cabinClassstringeconomy, premium_economy, business, first
childrenintNumber of children (with childrenAges)
infantsintLap infants
Flight response shape

Same as Duffel (Bilt is whitelabel-Duffel). Each offer:

{
  id: "off_XXX",
  totalAmount: 1606.60,        // cash total
  totalCurrency: "USD",
  baseAmount: 1132.00,
  taxAmount: 474.60,
  totalPointsRequired: 128528,  // Bilt Points cost
  totalPointsRequiredWithCredits: null,  // applicable airline credits, if any
  expiresAt: "2026-04-29T08:51:40Z",
  owner: {
    name: "KLM", iataCode: "KL", logoSymbolUrl, conditionsOfCarriageUrl
  },
  isNDC: false,
  passengers: [{ type, loyaltyProgrammeAccounts, id }],
  conditions: { refundBeforeDeparture, changeBeforeDeparture },
  slices: [
    {
      id: "sli_XXX",
      duration: "P1DT4H40M",   // ISO 8601 duration
      fareBrandName: "Standard",
      origin: { iataCode, name, cityName, timeZone },
      destination: { iataCode, name, cityName, timeZone },
      segments: [
        {
          id, duration, departingAt, arrivingAt,
          origin: {...}, destination: {...},
          marketingCarrier: { name, iataCode, ... },
          operatingCarrier: { name, iataCode, ... },
          marketingCarrierFlightNumber: "0606",
          aircraft: { name: "Boeing 787-10", iataCode: "781" },
          stops: [],
          passengers: [
            {
              passengerId,
              fareBasisCode: "THA79NMP",
              cabinClassMarketingName: "ECONOMY",
              baggages: [{ type: "checked"|"carry_on", quantity }]
            }
          ]
        }
      ]
    }
  ]
}
Useful jq filters
bash
# Top 5 cheapest offers with CPP calculation (rounded to 2 decimals)
echo "$RESP" | jq '
  [.data.offers[]
   | {airline: .owner.name,
      cash: .totalAmount,
      points: .totalPointsRequired,
      cpp: (((.totalAmount / .totalPointsRequired) * 100) * 100 | round / 100),
      stops: ([.slices[].segments | length] | map(. - 1)),
      route: ([.slices[] | (.origin.iataCode + " -> " + .destination.iataCode)])}]
  | sort_by(.cash) | .[0:5]'

# Group by airline, show cheapest per carrier
echo "$RESP" | jq '
  [.data.offers[]
   | {airline: .owner.name, cash: .totalAmount, points: .totalPointsRequired}]
  | group_by(.airline)
  | map({airline: .[0].airline, cheapest: (min_by(.cash))})'

# Filter to nonstop only
echo "$RESP" | jq '
  [.data.offers[]
   | select(([.slices[].segments | length] | add) == ([.slices | length]))
   | {airline: .owner.name, cash: .totalAmount, points: .totalPointsRequired}]'

Output Format

Always use markdown tables. When showing both flights and hotels, separate tables.

Hotels
HotelStarsHaFHBrandCashPointsCPP
Park Hyatt New York5yesHyatt$3,996319,6811.25
The St. Regis NY5noMarriott$4,210336,8001.25
Flights (one-way SFO to NRT)
AirlineStopsDurationCashPointsCPP
Air Canada1 (YVR)14h 5m$87169,7201.25
KLM1 (AMS)28h 40m$1,607128,5281.25

After tables: highlight the cheapest, flag any HaFH stays the user qualifies for (Bilt Gold or Platinum status required), and call out anything where CPP is wildly off (would indicate a special promo or a points-only "boost" rate).

Comparison Workflow

For a complete trip cost analysis:

  1. Bilt Points balance via awardwallet. Note: Bilt is in AwardWallet.
  2. Award alternatives via seats-aero. Compare to portal price at 1.25 cpp.
  3. Transfer partners via transfer-partners. If a partner program redeems Bilt Points at >1.25 cpp, transfer instead of using portal.
  4. Other portals via chase-travel (dynamic Points Boost on CSR/CSP, ~1.5-2.0 cpp on select bookings, not a guaranteed floor) and amex-travel (~1.0 cpp on flights). Pull actual portal quotes, not assumed rates.
  5. HaFH benefits add ~$300+ in value per stay if the user has Bilt Gold or Platinum status. Apply this when computing effective rate.

Important Notes

  • isHafh: true identifies Home Away From Home properties. Roughly 200 to 300 luxury hotels worldwide. Always flag when present.
  • Bilt has no transfer fees. Unlike some portal-points conversions, Bilt → partner transfers are 1:1 instant.
  • Booking requires the Bilt card. Most premium benefits (HaFH, Rent Day points multipliers, status) are gated by holding the Bilt Mastercard.
  • API responses don't include the agent's user context. This is the public unauthenticated path. Authenticated calls would return personalized data (your saved searches, points balance), but those require login. Out of scope for this skill.
  • Stellate (bilt-rewards.stellate.sh) is Bilt's CMS endpoint, not a search backend. It serves marketing copy and benefit descriptions. The actual hotel/flight search data comes from api.biltrewards.com/public/travel and is fully covered above.

© borski, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugins/travel-hacking-toolkit/skills/bilt of borski/travel-hacking-toolkit.

Open the folder on GitHubat commit db82131

Compare with similar skills

Bilt next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Bilt compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Bilt this skillborski/travel-hacking-toolkit688—~3.8kAutomated safety check: PassMIT
Google Cloud Storage Bucket Architectgoogle/skills21k—~2.6kAutomated safety check: PassApache-2.0
Server Feature Devscragnog/HOT-Step-CPP171—~6.5kAutomated safety check: NotesMIT
C64 Meatloaf Debugidolpx/meatloaf128—~12kAutomated safety check: PassGPL-3.0
API DesignerJeffallan/claude-skills12k2 repos~2kAutomated safety check: PassMIT
Paperclippaperclipai/paperclip99k—~9.6kAutomated safety check: PassMIT

Similar skills

  • Creates Cloud Storage on Google Cloud (also known colloquially as GCS) buckets.

    21k GitHub stars~2.6k tokensUpdated today
    Backend & APIsAuto-check passed
  • Server Feature Dev

    scragnog/HOT-Step-CPP

    Guides adding or modifying a feature in the HOT-Step CPP Node/TypeScript server (Express route + service pattern, better-sqlite3 schema changes, engine calls via aceClient, logging, tsx watch dev…

    171 GitHub stars~6.5k tokensUpdated today
    Backend & APIsAuto-check: notes
  • C64 Meatloaf Debug

    idolpx/meatloaf

    Debug Commodore 64 BASIC programs, cc65-compiled C PRGs, and Meatloaf ESP32 firmware in tandem, using the Ultimate 64's REST API and Meatloaf's UART serial debug output.

    128 GitHub stars~12k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • API Designer

    Jeffallan/claude-skills

    Designs REST and GraphQL APIs from resource modeling to an OpenAPI 3.1 contract, with versioning, pagination and RFC 7807 error handling.

    12k GitHub starsUsed in 2 repos~2k tokens
    Backend & APIsAuto-check passed
  • Paperclip

    paperclipai/paperclip

    Interact with the Paperclip control plane API for task coordination and governance.

    99k GitHub stars~9.6k tokensUpdated today
    Backend & APIsAuto-check passed
  • Nodejs Backend Patterns

    ever-works/ever-works

    Build production-ready Node.js backend services with Express/Fastify, implementing middleware patterns, error handling, authentication, database integration, and API design best practices.

    158 GitHub starsUsed in 18 repos~4k tokens
    Backend & APIsAuto-check passed

More from borski/travel-hacking-toolkit

All 46 skills in this repo
  • Amex Travel

    borski/travel-hacking-toolkit

    Search Amex travel portal for cash prices, MR points pricing, IAP discounts, and FHR/THC hotel benefits via Patchright.

    688 GitHub stars~3.1k tokensUpdated 2 days ago
    Auto-check passed
  • Chase Travel

    borski/travel-hacking-toolkit

    Search Chase UR travel portal via Patchright for cash prices, points pricing, Points Boost offers, and Chase Edit hotel benefits.

    688 GitHub stars~2.8k tokensUpdated 2 days ago
    Auto-check passed
  • Deutsche Bahn

    borski/travel-hacking-toolkit

    Deutsche Bahn train schedules, journey planning, and departures across Germany and into neighboring countries (Austria, Switzerland, Netherlands, France, Belgium).

    688 GitHub stars~1.5k tokensUpdated 2 days ago
    Auto-check passed
  • Sutochno

    borski/travel-hacking-toolkit

    Search Sutochno.ru (СУТОЧНО.РУ), a Russian short-term apartment-rental platform where you book directly from owners and pay in rubles (Mir card / bank transfer).

    688 GitHub stars~2.1k tokensUpdated 2 days ago
    Auto-check passed
  • Ticketsatwork

    borski/travel-hacking-toolkit

    Search TicketsAtWork (EBG corporate perks) for hotels, theme park tickets, attractions, and rental cars via Patchright.

    688 GitHub stars~4.2k tokensUpdated 2 days ago
    Auto-check passed
  • Vrbo

    borski/travel-hacking-toolkit

    Search VRBO (Vrbo / Expedia Group) vacation rentals including entire homes, condos, and cabins via Patchright browser automation.

    688 GitHub stars~1.7k tokensUpdated 2 days ago
    Auto-check passed

Works with

Categories

Questions about Bilt

What does Bilt do?

Search Bilt Rewards travel portal for cash and Bilt Points pricing on hotels and flights. Bilt is an agent skill from borski/travel-hacking-toolkit. Search Bilt Rewards travel portal for cash and Bilt Points pricing on hotels and flights.

When should I use Bilt?

Bilt fits situations like: tasks that involve REST APIs.

How do I install Bilt in Claude Code?

Run `npx skills add borski/travel-hacking-toolkit --skill bilt -a claude-code`. Or copy the skill folder (plugins/travel-hacking-toolkit/skills/bilt in borski/travel-hacking-toolkit) into .claude/skills/bilt in your project. Claude Code loads it when a task matches its description.

How do I install Bilt in Codex?

Run `npx skills add borski/travel-hacking-toolkit --skill bilt -a codex`. Or copy the skill folder (plugins/travel-hacking-toolkit/skills/bilt in borski/travel-hacking-toolkit) into .agents/skills/bilt in your project. Codex loads it when a task matches its description.

Can I use Bilt in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add borski/travel-hacking-toolkit --skill bilt -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bilt, .gemini/skills/bilt, .github/skills/bilt and .opencode/skills/bilt in your project.

What does Bilt need to run?

Going by SKILL.md and its folder, Bilt needs the command-line tools its instructions call (jq and curl). Its frontmatter pre-approves these tools: Bash(curl *), Bash(jq *).

Does Bilt access the network?

SKILL.md names 3 domains. In commands or code: api.biltrewards.com; the agent is likely to contact it when it follows the instructions. As links in the text: bilt.com and duffel.com. This is read from the text; nothing was executed.

Is Bilt safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Bilt use?

Bilt is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Bilt use?

About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Bilt?

Skills that share tags, products or a category with Bilt: Google Cloud Storage Bucket Architect (google/skills, 21k stars), Server Feature Dev (scragnog/HOT-Step-CPP, 171 stars), C64 Meatloaf Debug (idolpx/meatloaf, 128 stars) and API Designer (Jeffallan/claude-skills, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Bilt?

borski (a GitHub user) maintains it in borski/travel-hacking-toolkit, which has 688 GitHub stars. The repository holds 46 skills in this directory. The repository was last updated on October 5, 2026.

Source: borski/travel-hacking-toolkit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.