Install
openclaw skills install @voronindenis5/plane-seat-pickerUse when booking a flight and staring at a seat map (is 37F good? what about exit row 21? we're a family of 4 with a toddler) — decodes seat numbers to position (window/middle/aisle, left/right) per aircraft family, flags the trap rows (non-reclining last rows, seats ahead of exits, lav/galley proximity, bulkhead trade-offs), matches strategy to flight type (red-eye window vs day-flight family split, couples window+aisle gambit), covers bassinet/bulkhead for infants and under-2 lap rules, and rates any seat across legroom/recline/quiet/storage dimensions.
openclaw skills install @voronindenis5/plane-seat-pickerThe seat map is a puzzle and the airline's legend won't tell you that 24A doesn't recline. This tool decodes seats to actual position per aircraft family, flags the structural traps (rows ahead of exits, last-row recline, lavatory bounce), and picks strategy by flight type — because the right seat on a red-eye is the wrong seat on a daytime flight with kids.
Stdlib Python, offline. Aircraft data is by FAMILY (A320ceo/neo, 737-800/MAX8, A321neo, 737-900, A220, E195, 787, A350, 777, A380) — airlines configure individually, so verdicts are zone-logic that holds across configurations.
Don't use for: specific airline subfleet seat maps (airline config varies; use this for the logic + zone traps, the airline's map for exact rows), premium cabin selection (different game).
python3 scripts/seat_picker.py decode --seat 32F --aircraft a320
python3 scripts/seat_picker.py decode --seat 21A --aircraft 737-800
python3 scripts/seat_picker.py aircraft --type 787
python3 scripts/seat_picker.py choose --flight red-eye --party 1 --pref window
python3 scripts/seat_picker.py choose --flight day --party 2 --pref quiet
python3 scripts/seat_picker.py families --kids toddler --adults 2
python3 scripts/seat_picker.py families --kids infant --adults 2
python3 scripts/seat_picker.py traps
| Family | Econ layout | Pitch | Notes |
|---|---|---|---|
| A320/321 (ceo) | 3-3 | 29-31" | F=C window right; C/D aisle. Loud over-wing rows ~10-16 |
| A320neo/A321neo | 3-3 | 29-31" | Much quieter than ceo; A321neo LR long-haul: pick forward |
| 737-800 / MAX8 | 3-3 | 29-31" | A=F windows; over-wing escape limits recline ahead of exits |
| A220 (-100/-300) | 2-3 | 30-32" | 2-3 means EVERY seat is window-or-aisle; A-side pairs for couples |
| E195 / E175 | 2-2 | 29-31" | No middle seat at all; A=C windows |
| 787-8/9 | 3-3-3 | 30-32" | 17.2-17.5" width is tight; windows dim electronically (no shade) |
| A350 | 3-3-3 | 31-32" | 18" width, quieter; A/K windows, D/E/F/G middle block |
| 777-300ER | 3-4-3 many airlines | 31-32" | The D-G middle-of-middle is the worst economy seat flying; prefer 2-4-2 configs |
| A380 main deck | 3-4-3 | 31-32" | Upper deck quieter; main deck boarding wave hits first |
$ seat_picker.py decode --seat 14C --aircraft a320
SEAT 14C — A320 FAMILY (3-3)
POSITION: aisle, LEFT side (A window | B middle | C aisle | D aisle | E middle | F window)
ZONE: over-wing rows on A320 typically 10-16...
WARN: engine noise band; exit rows often right behind (check
14-vs-15 recline on YOUR airline's map)
$ seat_picker.py choose --flight red-eye --party 2 --pref sleep
RED-EYE, PARTY OF 2, PRIORITY: SLEEP
1. window+middle together, same side, front third, ≥2 rows from lavs
2. if flight likely light (<80%): window+aisle gamble (middle
fills last)
3. AVOID: exit rows (armrest trays are narrow, cold at doors),
row ahead of exit (no recline), last 3 rows (lavs+service)