Allows users to browse, compare, and select flight options and seats through an interactive interface.
Install
mkdir -p .claude/skills/flight && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/2344" && unzip -o skill.zip -d .claude/skills/flight && rm skill.zipInstalls to .claude/skills/flight
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Flight canvas for comparing flights and selecting seats.
Use when users need to browse flight options and book seats.Key capabilities
- →Compare flight options by price and duration
- →Select seats via interactive map
- →Filter flights by airline and cabin class
- →Navigate flight lists using keyboard controls
How it works
The skill spawns an interactive terminal interface that allows users to browse flight data and select seats using keyboard inputs. It returns the final selection as a structured object via IPC.
Inputs & outputs
When to use flight
- →Compare flight options for a trip
- →Select a specific seat on a flight
- →Browse airline availability
- →Book a flight based on budget
About this skill
Flight Canvas
Cyberpunk-themed flight comparison and seat selection interface.
Example Prompts
Try asking Claude:
- "Find flights from San Francisco to Denver on January 15th"
- "Book me a window seat on the cheapest nonstop to NYC"
- "Compare morning flights from LAX to Seattle next Monday"
- "I need a business class seat to Chicago with extra legroom"
- "Show me United flights to Boston under $300"
Scenarios
booking (default)
Interactive flight comparison and seat selection.
- Shows flight options with airline, times, duration, and price
- Interactive seat map for seat selection
- Keyboard navigation between flights and seats
- Returns selected flight and seat via IPC
bun run src/cli.ts spawn flight --scenario booking --config '{
"title": "// FLIGHT_BOOKING_TERMINAL //",
"flights": [
{
"id": "ua123",
"airline": "United Airlines",
"flightNumber": "UA 123",
"origin": {
"code": "SFO",
"name": "San Francisco International",
"city": "San Francisco",
"timezone": "PST"
},
"destination": {
"code": "DEN",
"name": "Denver International",
"city": "Denver",
"timezone": "MST"
},
"departureTime": "2026-01-08T12:55:00-08:00",
"arrivalTime": "2026-01-08T16:37:00-07:00",
"duration": 162,
"price": 34500,
"currency": "USD",
"cabinClass": "economy",
"aircraft": "Boeing 737-800",
"stops": 0,
"seatmap": {
"rows": 30,
"seatsPerRow": ["A", "B", "C", "D", "E", "F"],
"aisleAfter": ["C"],
"unavailable": ["1A", "1B", "1C", "1D", "1E", "1F"],
"premium": ["2A", "2B", "2C", "2D", "2E", "2F"],
"occupied": ["3A", "3C", "4B", "5D"]
}
}
]
}'
Configuration
interface FlightConfig {
flights: Flight[];
title?: string; // Header title
showSeatmap?: boolean; // Enable seat selection
selectedFlightId?: string; // Pre-select a flight
}
interface Flight {
id: string;
airline: string; // e.g., "United Airlines"
flightNumber: string; // e.g., "UA 123"
origin: Airport;
destination: Airport;
departureTime: string; // ISO datetime
arrivalTime: string; // ISO datetime
duration: number; // Minutes
price: number; // Cents
currency: string; // e.g., "USD"
cabinClass: "economy" | "premium" | "business" | "first";
aircraft?: string; // e.g., "Boeing 737-800"
stops: number; // 0 = nonstop
seatmap?: Seatmap; // Optional seat selection
}
interface Airport {
code: string; // 3-letter code
name: string; // Full airport name
city: string;
timezone: string;
}
interface Seatmap {
rows: number;
seatsPerRow: string[]; // e.g., ["A", "B", "C", "D", "E", "F"]
aisleAfter: string[]; // e.g., ["C"] = aisle after seat C
unavailable: string[]; // Blocked seats
premium: string[]; // Extra legroom/exit row
occupied: string[]; // Already booked
}
Controls
↑/↓: Navigate between flightsTab: Switch focus between flight list and seatmap←/→/↑/↓(in seatmap): Move seat cursorSpace: Select/deselect seatEnter: Confirm selectionShift+Enter: Confirm immediately (skip countdown)qorEsc: Cancel
Selection Result
interface FlightResult {
selectedFlight: Flight;
selectedSeat?: string; // e.g., "12A"
}
Seat Legend
[ ]- Available seat[X]- Occupied seat[/]- Unavailable/blocked[+]- Premium seat (extra legroom)[*]- Currently selected
API Usage
import { bookFlight } from "${CLAUDE_PLUGIN_ROOT}/src/api";
const result = await bookFlight({
flights: [
{
id: "ua123",
airline: "United Airlines",
flightNumber: "UA 123",
origin: { code: "SFO", name: "San Francisco", city: "SF", timezone: "PST" },
destination: { code: "DEN", name: "Denver", city: "Denver", timezone: "MST" },
departureTime: "2026-01-08T12:55:00-08:00",
arrivalTime: "2026-01-08T16:37:00-07:00",
duration: 162,
price: 34500,
currency: "USD",
cabinClass: "economy",
stops: 0,
seatmap: { ... }
}
]
});
if (result.success && result.data) {
console.log(`Booked: ${result.data.selectedFlight.flightNumber}`);
console.log(`Seat: ${result.data.selectedSeat}`);
}
When not to use it
- →Booking non-flight travel
- →Real-time flight status tracking
Limitations
- →Requires flight data configuration
- →Limited to terminal-based interaction
How it compares
It provides a visual, interactive terminal canvas for selection instead of returning raw search results.
Compared to similar skills
flight side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| flight (this skill) | 12 | 7mo | Review | Beginner |
| recap-daily | 0 | 1mo | Review | Beginner |
| pptx | 393 | 6mo | Review | Advanced |
| nano-pdf | 63 | 2mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by dvdsgl
View all by dvdsgl →You might also like
recap-daily
zengbin93
Generate the daily global market recap HTML report and Feishu card.
pptx
anthropics
Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layouts, (4) Adding comments or speaker notes, or any other presentation tasks
nano-pdf
openclaw
Edit PDFs with natural-language instructions using the nano-pdf CLI.
video-downloader
ComposioHQ
Downloads videos from YouTube and other platforms for offline viewing, editing, or archival. Handles various formats and quality options.
youtube-transcript
michalparkola
Download YouTube video transcripts when user provides a YouTube URL or asks to download/get/fetch a transcript from YouTube. Also use when user wants to transcribe or get captions/subtitles from a YouTube video.
using-superpowers
obra
Use when starting any conversation - establishes mandatory workflows for finding and using skills, including using Skill tool before announcing usage, following brainstorming before coding, and creating TodoWrite todos for checklists