# Getting Started

First-run setup.

- Repository: https://github.com/borski/travel-hacking-toolkit (839 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-26
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add borski/travel-hacking-toolkit --skill getting-started -g -a claude-code -y`
Codex: `npx skills add borski/travel-hacking-toolkit --skill getting-started -g -a codex -y`
Cursor: `npx skills add borski/travel-hacking-toolkit --skill getting-started -g -a cursor -y`
Gemini CLI: `npx skills add borski/travel-hacking-toolkit --skill getting-started -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add borski/travel-hacking-toolkit`

## Description

First-run setup. Detects configured API keys, points to the local setup-keys script for secure key entry, and shows sample prompts scaled to available tools.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Getting Started Skill

The user invoked this skill explicitly. Help them figure out what's already working, what they're missing, and what to actually try. Critically: **do NOT prompt for API keys in chat.** Pasting a key into a chat input puts it in terminal scrollback, the local Claude Code session log, and the Anthropic API logs. The toolkit ships a local script that prompts for keys with masked input and writes them straight to the user's shell rc, never going through chat.

## Step 1: Detect what's already configured

First detect the user's platform via the Bash tool's environment. If `bash` is available (macOS, Linux, WSL, Git Bash on Windows), use the bash detection. If you're on native Windows PowerShell with no bash, use the PowerShell detection instead.

Don't print the values; only report SET vs MISSING.

### Bash / Zsh (macOS / Linux / WSL / Git Bash)

Use `printenv` so the loop works in both bash and zsh (Claude Code's bash tool may use either):

```bash
for var in SEATS_AERO_API_KEY DUFFEL_API_KEY_LIVE IGNAV_API_KEY AWARDWALLET_API_KEY AWARDWALLET_USER_ID SERPAPI_API_KEY RAPIDAPI_KEY LITEAPI_API_KEY TRIPADVISOR_API_KEY ENTUR_CLIENT_NAME RESROBOT_API_KEY REJSEPLANEN_API_KEY; do
  if [ -n "$(printenv "$var")" ]; then echo "SET: $var"; else echo "MISSING: $var"; fi
done
```

### PowerShell (native Windows)

```powershell
$keys = @('SEATS_AERO_API_KEY','DUFFEL_API_KEY_LIVE','IGNAV_API_KEY','AWARDWALLET_API_KEY','AWARDWALLET_USER_ID','SERPAPI_API_KEY','RAPIDAPI_KEY','LITEAPI_API_KEY','TRIPADVISOR_API_KEY','ENTUR_CLIENT_NAME','RESROBOT_API_KEY','REJSEPLANEN_API_KEY')
foreach ($k in $keys) {
    $v = [Environment]::GetEnvironmentVariable($k)
    if ([string]::IsNullOrEmpty($v)) { Write-Host "MISSING: $k" } else { Write-Host "SET: $k" }
}
```

Group the results:

**Tier 1 (high-value, missing matters most):** SEATS_AERO_API_KEY, DUFFEL_API_KEY_LIVE, IGNAV_API_KEY, AWARDWALLET_API_KEY + AWARDWALLET_USER_ID

The rest: https://github.com/borski/travel-hacking-toolkit/blob/HEAD/plugins/travel-hacking-toolkit/skills/getting-started/SKILL.md
