webcheckin
Skill0 starsChanged 4 months agoMITView on GitHub
Automatically complete airline web check-in for the user's upcoming flights. Use this skill whenever the user says /webcheckin, "do web check-in", "check me in for my flight", "web check-in for today's flight", "check in for my flight", or any similar phrase. The skill searches Gmail for upcoming flight bookings (today or the next 1-2 days), navigates to the airline's check-in page, fills in all required details, auto-assigns a seat, and sends a confirmation screenshot. Always use this skill when the user wants flight check-in done — even if they don't say /webcheckin explicitly.
In this repository10 other files it gives its agents.
- article-improveSkill
- check-sentenceSkill
- event-radarSkill
- food-checkSkill
- mobi-to-markdownSkill
- obsidian-notes-from-imagesSkill
- obsidian-update-agentmdSkill
- vault-syncSkill
- vps-health-checkSkill
- youtube-transcriptSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. About 0 are common, 12 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈12
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 31
Search Gmail for flight booking emails:
- Distinctive: line 34
Look for airline confirmation emails (IndiGo, Air India, SpiceJet, Vistara, Akasa, etc.)
- Distinctive: line 41
If multiple flights are found, pick the soonest one that's today or upcoming.
- Very specific: line 47
Use the Chrome MCP (mcp__claude-in-chrome__*) to navigate and fill forms.
- Distinctive: line 52
Wait for the page to load (dark screen → page appears.
- Distinctive: line 56
Wait ~4s for the booking to load
- Distinctive: line 59
All passengers on the booking should be pre-checked (blue checkboxes)
- Distinctive: line 68
Look at the passenger cards at the top — if they show a seat number (e.g.
- Distinctive: line 73
If a payment screen appears asking you to pay for the seats, go back and follow the auto-assign path below instead
- Distinctive: line 84
Check the "Copy for all passengers" checkbox
- Distinctive: line 86
Check the consent checkbox (it's a data-processing consent notice)
- Distinctive: line 91
Check the checkbox: *"I have read and understood about Dangerous Goods & Restricted Articles"*
- Very specific: line 93
If the button appears disabled even after checking, verify it via JavaScript: document.querySelector('button[class*="disabled"]') — if …
- Distinctive: line 112
Follow the same pattern: navigate to the airline's web check-in, enter PNR + email/last name, skip seat selection, fill contact details …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Web Check-In Skill
Automate airline web check-in for the user's upcoming flights.
Configuration
This skill needs three personal details. Look them up before Step 1 in
~/.claude/skills-user-config.json, under a "webcheckin" object with keys
checkin_email, phone, gmail_search_account, and last_name.
- If the file/keys are present, use them directly — don't ask again.
- If missing, ask the user for these once, then write them to that file under
the
"webcheckin"key (create the file/dirs if needed, preserving any other keys already in it) so future runs don't need to ask.
Note:
gmail_search_accountandcheckin_emailmay be two different addresses (e.g. a personal inbox you search for bookings vs. the email you actually enter on the airline site). Confirm both with the user — don't assume they're the same.
Workflow
Step 1: Find the flight
Search Gmail for flight booking emails:
- Tool: Gmail
search_threads - Query:
flight OR booking OR itinerary OR ticket newer_than:7d - Look for airline confirmation emails (IndiGo, Air India, SpiceJet, Vistara, Akasa, etc.)
- Get the thread details and extract:
- PNR / Booking Reference
- Airline
- Flight date — confirm it's today or within the next 2 days
- Departure time and route (for context)
If multiple flights are found, pick the soonest one that's today or upcoming. If no flight is found, tell the user you couldn't find a booking.
Step 2: Check in by airline
Use the Chrome MCP (mcp__claude-in-chrome__*) to navigate and fill forms. Get a tab via tabs_context_mcp (create one if needed), then follow the airline-specific flow below.
IndiGo (goindigo.in)
- Navigate to
https://www.goindigo.in/web-check-in.html - Wait for the page to load (dark screen → page appears; wait ~3s if dark)
- Fill "PNR / Booking Reference" → enter the PNR
- Fill "Email ID / Last Name" → enter
checkin_emailfrom config - Click "Web check-in" button
- Wait ~4s for the booking to load
Passenger selection page:
- All passengers on the booking should be pre-checked (blue checkboxes)
- Click "Check - in" button
Add-ons page (Step 1/4):
- Click "Next" — do not add anything
Seat Selection page (Step 2/4):
First, check if seats are already assigned to the passengers:
- Look at the passenger cards at the top — if they show a seat number (e.g. "14A", "22C") instead of "No seat selected", seats are pre-assigned.
If seats are already assigned:
- Click "Next" directly — do NOT skip or change anything
- IndiGo will usually proceed straight to Passenger Details without asking for payment
- If a payment screen appears asking you to pay for the seats, go back and follow the auto-assign path below instead
If no seat is assigned ("No seat selected"):
- Click "Next" without selecting any seat
- A dialog "Do you wish to proceed with Auto Check-in?" will appear
- Click "Skip seat" — this triggers free auto-assignment before departure
Passenger Details page (Step 3/4):
- The form shows under the first passenger's name (as booked)
- Fill Mobile No. field:
phonefrom config (the +91 country code is usually pre-selected) - Fill Email field:
checkin_emailfrom config - Check the "Copy for all passengers" checkbox
- Scroll down — if the booking has more than one passenger, you'll see the additional passenger sections (collapsed) and a consent checkbox
- Check the consent checkbox (it's a data-processing consent notice)
- Click "Next"
Dangerous Goods page (Step 4/4):
- Scroll down to see the full list of restricted items
- Check the checkbox: "I have read and understood about Dangerous Goods & Restricted Articles"
- The "Agree and Continue" button enables — click it
- If the button appears disabled even after checking, verify it via JavaScript:
document.querySelector('button[class*="disabled"]')— if still disabled, scroll further down on the left panel
Confirmation page:
Two possible outcomes — handle both:
Outcome A — Boarding pass generated immediately (seats were pre-assigned):
- Page shows a boarding pass or a "View Boarding Pass" / "Download Boarding Pass" button
- Click it to open/download the boarding pass
- Take a screenshot (
save_to_disk: true) of the boarding pass and send it to the user
Outcome B — Auto check-in scheduled (seat will be assigned later):
- Page returns to the booking view showing "Check-in done!"
- Passenger cards show "Auto Check-in Scheduled": "Boarding Pass will be generated 4hrs before the flight departure and shared on registered e-mail."
- Take a screenshot (
save_to_disk: true) of the confirmation and send it to the user
In both cases, scroll down to capture both passengers' status in the screenshot.
Air India / other airlines
Follow the same pattern: navigate to the airline's web check-in, enter PNR + email/last name, skip seat selection, fill contact details (same email + phone), accept any declarations, and screenshot the confirmation.
Edge Cases
| Situation | What to do |
| Check-in window not open yet | Tell user when it opens (typically 48h before departure) |
| Already checked in | Screenshot the existing boarding pass or status and inform the user |
| PNR not found on airline website | Try last_name from config as the second field instead of email |
| Multiple passengers | Always apply the same contact details to all passengers via "Copy for all" |
| Page loads slowly or goes dark | Wait 3-5 seconds and retry; IndiGo's site has loading transitions |
| Seats already assigned, payment screen appears | Go back to seat selection, click Next → Skip seat to use auto-assign instead |
| Seat selection requires payment with no pre-assigned seats | Skip it — auto-assign is always free |
Tips from a real run
- IndiGo's "Agree and Continue" button on the dangerous goods page is disabled by default — it only enables after you check the acknowledgment checkbox at the bottom of the page
- The "Copy for all passengers" checkbox on the passenger details page also triggers a dark loading transition — wait for it to come back before clicking Next
- Take the final screenshot right when the page is stable (not during a transition) — wait 5-6 seconds after the last action before screenshotting
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

