Portal
BuilderIO/agent-native
Continue a coding session on a paired always-on computer. An agent skill from BuilderIO/agent-native.
Search Chase UR travel portal via Patchright for cash prices, points pricing, Points Boost offers, and Chase Edit hotel benefits.
$ npx skills add borski/travel-hacking-toolkit --skill chase-travel -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install borski/travel-hacking-toolkit chase-travel --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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/chase-travel .claude/skills/chase-travel && rm -rf skills-srcUse ~/.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/
Install the "chase-travel" agent skill from https://github.com/borski/travel-hacking-toolkit/tree/main/plugins/travel-hacking-toolkit/skills/chase-travel into .claude/skills/chase-travel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chase-travel", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/borski/travel-hacking-toolkit/tree/main/plugins/travel-hacking-toolkit/skills/chase-travelType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add borski/travel-hacking-toolkit --skill chase-travel -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install borski/travel-hacking-toolkit chase-travel --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/borski/travel-hacking-toolkit.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/travel-hacking-toolkit/skills/chase-travel .agents/skills/chase-travel && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "chase-travel" agent skill from https://github.com/borski/travel-hacking-toolkit/tree/main/plugins/travel-hacking-toolkit/skills/chase-travel into .agents/skills/chase-travel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chase-travel", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add borski/travel-hacking-toolkit --skill chase-travel -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install borski/travel-hacking-toolkit chase-travel --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/borski/travel-hacking-toolkit.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/travel-hacking-toolkit/skills/chase-travel .cursor/skills/chase-travel && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "chase-travel" agent skill from https://github.com/borski/travel-hacking-toolkit/tree/main/plugins/travel-hacking-toolkit/skills/chase-travel into .cursor/skills/chase-travel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chase-travel", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/borski/travel-hacking-toolkit.git --path plugins/travel-hacking-toolkit/skills/chase-travel--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add borski/travel-hacking-toolkit --skill chase-travel -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install borski/travel-hacking-toolkit chase-travel --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/borski/travel-hacking-toolkit.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/travel-hacking-toolkit/skills/chase-travel .gemini/skills/chase-travel && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "chase-travel" agent skill from https://github.com/borski/travel-hacking-toolkit/tree/main/plugins/travel-hacking-toolkit/skills/chase-travel into .gemini/skills/chase-travel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chase-travel", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install borski/travel-hacking-toolkit chase-travelInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add borski/travel-hacking-toolkit --skill chase-travel -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/borski/travel-hacking-toolkit.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/travel-hacking-toolkit/skills/chase-travel .github/skills/chase-travel && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "chase-travel" agent skill from https://github.com/borski/travel-hacking-toolkit/tree/main/plugins/travel-hacking-toolkit/skills/chase-travel into .github/skills/chase-travel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chase-travel", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add borski/travel-hacking-toolkit --skill chase-travel -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install borski/travel-hacking-toolkit chase-travel --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/borski/travel-hacking-toolkit.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/travel-hacking-toolkit/skills/chase-travel .opencode/skills/chase-travel && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "chase-travel" agent skill from https://github.com/borski/travel-hacking-toolkit/tree/main/plugins/travel-hacking-toolkit/skills/chase-travel into .opencode/skills/chase-travel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chase-travel", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
chase-travelSearch Chase UR travel portal via Patchright for cash prices, points pricing, Points Boost offers, and Chase Edit hotel benefits.
Chase Travel is an agent skill from borski/travel-hacking-toolkit. Search Chase UR travel portal via Patchright for cash prices, points pricing, Points Boost offers, and Chase Edit hotel benefits. Use for pay-with-points portal comparison on Sapphire Reserve/Preferred.
Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts (for example `scripts/record_search.py`, `scripts/search_flights.py` and `tests/test_2fa_method.py`).
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.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit db82131. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3dockerpipFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use docker and pip, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
CHASE_PASSWORDCHASE_BAD_CREDENTIALSBAD_CREDENTIALSFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Chase Travel loads about 2.8k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 1,241 words of instructions outside code blocks.
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.
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); the scripts in this folder are not scanned.
The full file from borski/travel-hacking-toolkit at commit db82131, republished under its MIT licence (© borski). 1,241 words, ~2,757 tokens.
.claude/skills/chase-travel/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Search the Chase Ultimate Rewards travel portal for flights and hotels via Patchright. Returns cash prices, UR points pricing, Points Boost offers, and Chase Edit hotel benefits.
Requires Patchright (undetected Playwright fork). Chase blocks standard Playwright and agent-browser.
Must run headed (headless=False). Chase detects headless browsers. On macOS, a Chrome window briefly appears. For background operation, use Docker.
pip install patchright && patchright install chromiumOr use Docker (no local install needed):
docker pull ghcr.io/borski/chase-travel:latest
# or build locally:
docker build -t chase-travel skills/chase-travel/The script automatically selects the Sapphire Reserve card from the account selector (dynamic Points Boost pricing on travel; ~1.5-2.0 cpp typical on CSR but not a guaranteed floor; Edit hotels). Falls back to Sapphire Preferred if no Reserve found. Only these cards show Edit hotel benefits and travel portal pricing.
# Local (opens a Chrome window briefly)
python3 scripts/search_flights.py --origin SFO --dest CDG --depart 2026-08-11
# Round-trip business
python3 scripts/search_flights.py --origin SFO --dest CDG --depart 2026-08-11 --return 2026-09-02 --cabin business
# JSON output
python3 scripts/search_flights.py --origin SFO --dest CDG --depart 2026-08-11 --json
# Docker
docker run --rm \
-v ~/.chase-travel-profiles:/profiles \
-v /tmp:/tmp/host \
-e CHASE_USERNAME -e CHASE_PASSWORD \
ghcr.io/borski/chase-travel script /scripts/search_flights.py \
--origin SFO --dest CDG --depart 2026-08-11 --cabin business --json# Local
python3 scripts/search_flights.py --hotel --dest "Paris" --checkin 2026-08-11 --checkout 2026-08-15
# Docker
docker run --rm \
-v ~/.chase-travel-profiles:/profiles \
-v /tmp:/tmp/host \
-e CHASE_USERNAME -e CHASE_PASSWORD \
ghcr.io/borski/chase-travel script /scripts/search_flights.py \
--hotel --dest "Oslo" --checkin 2026-08-13 --checkout 2026-08-15 --jsonCapture network traffic during a manual search. Useful for debugging or discovering new API endpoints.
# Local only (needs interactive browser)
python3 scripts/record_search.pyChase uses SMS or mobile-app push for 2FA (some accounts offer only push). On first login, you must complete 2FA manually. After that, device trust persists (2FA skipped on subsequent runs from the same profile). The script auto-detects which method the account offers and takes the matching path.
How it works: When 2FA is triggered, the script prints one of two sentinels to stdout, then polls for up to 3 minutes:
2FA_CODE_NEEDED — SMS. Chase texted a code; provide it (below).MOBILE_APP_APPROVAL_NEEDED — mobile-app push. There is no code; the user approves the sign-in in their Chase mobile app, and the script continues once the page clears.For agents (SMS): When you see 2FA_CODE_NEEDED, ask the user for the SMS code Chase just sent to their phone. Once they provide it, write it to the code file:
echo "12345678" > /tmp/chase-2fa-code.txtThe script picks up the file automatically and continues login.
For agents (mobile push): When you see MOBILE_APP_APPROVAL_NEEDED, tell the user to approve the sign-in in their Chase mobile app — there is no code to enter. The script polls for up to 3 minutes for the approval to land, then continues.
Command hook (optional, for full automation): Set CHASE_2FA_COMMAND to a command that blocks until it has the code, then prints it to stdout. The script runs this instead of polling the file. (Applies to the SMS path only.)
Docker: Use -v /tmp:/tmp/host to share the temp directory. The script checks both /tmp/host/chase-2fa-code.txt and /tmp/chase-2fa-code.txt.
After first successful login with device trust, 2FA is skipped on repeat runs.
CHASE_USERNAME/CHASE_PASSWORD must contain the actual username and password when they reach this script. If you keep secrets in a secret manager, resolve the references into the environment before launching (most managers ship an exec/run wrapper for exactly this).
An unresolved reference (a literal scheme://vault/item placeholder) gets typed into the login form, and Chase answers "We can't find that username and password. Try again." — which is easy to misread as bot detection. (It isn't: fresh automated logins from Docker work fine with real credentials, verified live July 2026, including when saved cookies have expired.)
The script fails fast on both forms of this mistake: it prints CHASE_BAD_CREDENTIALS to stdout (and writes BAD_CREDENTIALS to the 2FA status file) when a credential still looks like a secret reference, or when Chase reports the username/password as not found. For agents: don't retry on this sentinel — fix how credentials are injected, then rerun.
POST to v1/session/create establishes the CXL travel session. Identifiers auto-extracted from cookies.POST to Chase's internal CTE API creates a flight search session (returns sessionId)travelsecure.chase.com/results/flights/outbound?ssid={sessionId}&cnxtoken={redirectionToken}. Script intercepts API responses via page.on('response') to capture legwiseResults JSON<orxe-button>) clicked via JS to load all flights (10 at a time)<orxe-toggle class="points-offer">) activated. Boost card carousel parsed for discounted point pricesPOST to Chase's hotel search endpoint creates sessionhotel/v1.0/search/results API responsesprm[].c == "Signature Amenities" are Edit properties. Benefits extracted from embedded JSONrwd[].rdp.rcm.t.ofr.d == "Points offer applied" have Points BoostFlight results include:
Hotel results include:
Always use markdown tables.
| # | Airline | Route | Stops | Duration | Cash | Points | Boost | CPP |
|---|---|---|---|---|---|---|---|---|
| 1 | Air France | SFO-CDG | Nonstop | 10h 40m | $5,397 | 539,683 | 269,841 | 2.0 |
| # | Hotel | Program | Per Night | Total | Points | Benefits |
|---|---|---|---|---|---|---|
| 1 | Sommerro | EDIT, BOOST | $408 | $816 | 81,600 | Breakfast, $100 credit, upgrade |
cash_plus_points pricing uses all available UR points plus cash for the remainder.| Variable | Required | Description |
|---|---|---|
CHASE_USERNAME | Yes | Chase online banking username |
CHASE_PASSWORD | Yes | Chase online banking password |
CHASE_2FA_COMMAND | No | Command that blocks until SMS code is ready, prints to stdout |
CHASE_PROFILE | No | Browser profile directory (default: ~/.chase-travel-profiles/default) |
secure01ea.chase.com from Docker. The script uses chase.com homepage login instead (different auth endpoint, works in Docker).© borski, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (scripts) in plugins/travel-hacking-toolkit/skills/chase-travel of borski/travel-hacking-toolkit.
Open the folder on GitHubat commit db82131
Chase Travel 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Chase Travel this skillborski/travel-hacking-toolkit | 688 | — | ~2.8k | Automated safety check: Pass | MIT | |
| PortalBuilderIO/agent-native | 7.1k | — | ~1.1k | Automated safety check: Notes | None | |
| Petty Cash Managementsickn33/agentic-awesome-skills | 47k | 1 repos | ~5.7k | Automated safety check: Pass | MIT | |
| Wireframe Portal Titleheygen-com/hyperframes | 60k | 1 repos | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Travel Plannersickn33/agentic-awesome-skills | 47k | 1 repos | ~2k | Automated safety check: Pass | MIT | |
| Budget Cash Flowsickn33/agentic-awesome-skills | 47k | 1 repos | ~4.1k | Automated safety check: Pass | MIT |
BuilderIO/agent-native
Continue a coding session on a paired always-on computer. An agent skill from BuilderIO/agent-native.
sickn33/agentic-awesome-skills
Petty cash register: entry number, date and type, payee and purpose, cash in and out, running balance, cash limit flag, custodian, physical count and variance.
heygen-com/hyperframes
HyperFrames title block with extruded wireframe letters that appear through a portal burst, then swap into a second phrase with a staggered settle glitch.
sickn33/agentic-awesome-skills
旅行/行程规划需求时使用:规划去某地旅行、X天X城、带老人孩子、自驾、假期安排等。产出逐日行程表、预算估算(经济/舒适/奢华三档)、交通住宿建议、景点美食清单。必须先问预算,预算未确认只输出问题清单;事实数据带来源和查询日期。
sickn33/agentic-awesome-skills
Budget against actual by department, category and period, with budget and actual amounts, variance, percentage used and linked expenses.
davila7/claude-code-templates
Search and compare live hotel and flight prices with the PriceWin MCP server, look up one named hotel, inspect OpenTravel direct listings, send a booking request to a partner hotel (no payment; the…
borski/travel-hacking-toolkit
Search Amex travel portal for cash prices, MR points pricing, IAP discounts, and FHR/THC hotel benefits via Patchright.
borski/travel-hacking-toolkit
Deutsche Bahn train schedules, journey planning, and departures across Germany and into neighboring countries (Austria, Switzerland, Netherlands, France, Belgium).
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).
borski/travel-hacking-toolkit
Search TicketsAtWork (EBG corporate perks) for hotels, theme park tickets, attractions, and rental cars via Patchright.
borski/travel-hacking-toolkit
Search VRBO (Vrbo / Expedia Group) vacation rentals including entire homes, condos, and cabins via Patchright browser automation.
borski/travel-hacking-toolkit
Check American Airlines AAdvantage balance, elite status, and loyalty points via Patchright.
Search Chase UR travel portal via Patchright for cash prices, points pricing, Points Boost offers, and Chase Edit hotel benefits. Chase Travel is an agent skill from borski/travel-hacking-toolkit. Search Chase UR travel portal via Patchright for cash prices, points pricing, Points Boost offers, and Chase Edit hotel benefits.
Chase Travel fits situations like: pay-with-points portal comparison on Sapphire Reserve/Preferred.
Run `npx skills add borski/travel-hacking-toolkit --skill chase-travel -a claude-code`. Or copy the skill folder (plugins/travel-hacking-toolkit/skills/chase-travel in borski/travel-hacking-toolkit) into .claude/skills/chase-travel in your project. Claude Code loads it when a task matches its description.
Run `npx skills add borski/travel-hacking-toolkit --skill chase-travel -a codex`. Or copy the skill folder (plugins/travel-hacking-toolkit/skills/chase-travel in borski/travel-hacking-toolkit) into .agents/skills/chase-travel in your project. Codex loads it when a task matches its description.
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 chase-travel -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/chase-travel, .gemini/skills/chase-travel, .github/skills/chase-travel and .opencode/skills/chase-travel in your project.
Going by SKILL.md and its folder, Chase Travel needs Python for the scripts in its folder, the command-line tools its instructions call (python3, docker and pip) and credentials named CHASE_PASSWORD, CHASE_BAD_CREDENTIALS and BAD_CREDENTIALS. Our summary lists: Python 3; Docker.
SKILL.md contains no URLs. Its commands use docker and pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Chase Travel is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Chase Travel: Portal (BuilderIO/agent-native, 7.1k stars), Petty Cash Management (sickn33/agentic-awesome-skills, 47k stars), Wireframe Portal Title (heygen-com/hyperframes, 60k stars) and Travel Planner (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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.