Lifecycle Messaging
avelikiy/great_cto
Email/SMS lifecycle and deliverability framework for SMB Product-Builder products that send transactional or lifecycle messages (booking reminders, CRM sequences, receipts, win-back).
Manages travel for your user via UBTRIPPIN — trips, items, loyalty programs, family, city guides, events, concerts, notifications, and more.
$ npx skills add LeoYeAI/openclaw-master-skills --skill ubtrippin -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills ubtrippin --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/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/ubtrippin .claude/skills/ubtrippin && 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 "ubtrippin" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/ubtrippin into .claude/skills/ubtrippin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ubtrippin", 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/LeoYeAI/openclaw-master-skills/tree/main/skills/ubtrippinType 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 LeoYeAI/openclaw-master-skills --skill ubtrippin -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills ubtrippin --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/ubtrippin .agents/skills/ubtrippin && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ubtrippin" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/ubtrippin into .agents/skills/ubtrippin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ubtrippin", 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 LeoYeAI/openclaw-master-skills --skill ubtrippin -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills ubtrippin --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/ubtrippin .cursor/skills/ubtrippin && 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 "ubtrippin" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/ubtrippin into .cursor/skills/ubtrippin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ubtrippin", 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/LeoYeAI/openclaw-master-skills.git --path skills/ubtrippin--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 LeoYeAI/openclaw-master-skills --skill ubtrippin -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills ubtrippin --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/ubtrippin .gemini/skills/ubtrippin && 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 "ubtrippin" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/ubtrippin into .gemini/skills/ubtrippin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ubtrippin", 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 LeoYeAI/openclaw-master-skills ubtrippinInstalls 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 LeoYeAI/openclaw-master-skills --skill ubtrippin -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/ubtrippin .github/skills/ubtrippin && 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 "ubtrippin" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/ubtrippin into .github/skills/ubtrippin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ubtrippin", 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 LeoYeAI/openclaw-master-skills --skill ubtrippin -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills ubtrippin --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/ubtrippin .opencode/skills/ubtrippin && 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 "ubtrippin" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/ubtrippin into .opencode/skills/ubtrippin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ubtrippin", 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.
ubtrippinManages travel for your user via UBTRIPPIN — trips, items, loyalty programs, family, city guides, events, concerts, notifications, and more.
Ubtrippin is an agent skill from LeoYeAI/openclaw-master-skills. Manages travel for your user via UBTRIPPIN — trips, items, loyalty programs, family, city guides, events, concerts, notifications, and more. Use when the user asks about their trips, upcoming travel, flights, hotels, train bookings, concert tickets, event tickets, loyalty numbers, family travel, or wants to manage their travel tracker. Requires a UBTRIPPIN API key from ubtrippin.xyz/settings.
Its SKILL.md is about 5.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files (for example `README.md`, `SKILL-LITE.md` and `_meta.json`).
It sits in Backend & APIs, covering Referral and retention marketing. The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e5199b5. 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 script files (Shell), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
ubtrippin.xyzFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Ubtrippin loads about 5.1k tokens when it runs. Until then it costs about 101 tokens; SKILL.md has 1,546 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); files beside SKILL.md are not scanned.
The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 1,546 words, ~5,076 tokens.
.claude/skills/ubtrippin/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.UBTRIPPIN is a personal travel tracker that parses booking confirmation emails and organises them into trips. It also handles event tickets — concerts, theater, sports, festivals — from providers like Ticketmaster, AXS, Eventbrite, and more. As an agent, you can read and manage a user's trips, items (flights, hotels, trains, tickets/events, etc.), loyalty vault, family groups, city guides, and more via REST API.
ubt_k1_<40 hex chars>. Store it securely.GET /api/v1/me/profile and offer to set the user's home airport, currency preference, and seat preference via PATCH /api/v1/me/profile.All API calls use a Bearer token:
Authorization: Bearer ubt_k1_<your_key>Base URL: https://www.ubtrippin.xyz
Rate limit: 100 requests/minute per API key. HTTP 429 if exceeded — back off 60 seconds.
GET /api/v1/tripsQuery params: ?status=upcoming (optional filter)
Response:
{
"data": [
{
"id": "uuid",
"title": "Tokyo Spring 2026",
"start_date": "2026-04-01",
"end_date": "2026-04-14",
"primary_location": "Tokyo, Japan",
"travelers": ["Ian Rogers"],
"notes": null,
"cover_image_url": "https://...",
"share_enabled": false,
"created_at": "2026-02-15T10:00:00Z",
"updated_at": "2026-02-15T10:00:00Z"
}
],
"meta": { "count": 1 }
}Ordered by start_date descending (soonest upcoming / most recent first).
GET /api/v1/trips/:idResponse includes full trip object with nested items array. Each item has: id, trip_id, kind, provider, traveler_names, start_ts, end_ts, start_date, end_date, start_location, end_location, summary, details_json, status, confidence, needs_review, timestamps.
Item kinds: flight, hotel, train, car, ferry, activity, ticket, other
POST /api/v1/trips
Content-Type: application/json
{ "title": "Summer in Provence", "start_date": "2026-07-01", "end_date": "2026-07-14" }PATCH /api/v1/trips/:id
Content-Type: application/json
{ "title": "Updated Title", "notes": "Remember sunscreen" }DELETE /api/v1/trips/:idPOST /api/v1/trips/:id/rename
Content-Type: application/json
{ "title": "New Trip Name" }POST /api/v1/trips/:id/merge
Content-Type: application/json
{ "source_trip_id": "uuid-of-trip-to-merge-in" }Merges items from the source trip into the target trip.
GET /api/v1/trips/:id/statusReturns processing status for the trip.
GET /api/v1/trips/demoReturns a sample trip for onboarding — no auth required.
GET /api/v1/items/:idResponse: { "data": <item> } — full Item shape with details_json containing confirmation numbers, seat assignments, etc.
PATCH /api/v1/items/:id
Content-Type: application/json
{ "summary": "Updated summary", "start_location": "Paris CDG" }DELETE /api/v1/items/:idPOST /api/v1/trips/:id/items
Content-Type: application/jsonRequired fields: kind, start_date
All fields:
| Field | Type | Description |
|---|---|---|
kind | string | Required. One of: flight, hotel, car_rental, train, activity, restaurant, ticket, other |
start_date | string | Required. ISO date: YYYY-MM-DD |
end_date | string | ISO date. For hotels = checkout, flights = arrival date if different |
start_ts | string | ISO 8601 datetime with timezone: 2026-04-01T08:30:00Z |
end_ts | string | ISO 8601 datetime with timezone |
start_location | string | Departure/origin. City, airport code, or address (max 300 chars) |
end_location | string | Arrival/destination (max 300 chars) |
summary | string | One-line summary, e.g. "AF276 CDG→NRT" (max 1000 chars) |
provider | string | Airline, hotel chain, etc. e.g. "Air France" (max 200 chars) |
confirmation_code | string | Booking reference (max 200 chars) |
traveler_names | string[] | Array of traveler names (max 20, each max 200 chars) |
details_json | object | Freeform metadata — gate, seat, room type, etc. (max 10KB) |
notes | string | User notes |
status | string | Item status |
Example — Flight:
{
"kind": "flight",
"start_date": "2026-04-01",
"start_ts": "2026-04-01T08:30:00+01:00",
"end_ts": "2026-04-01T15:45:00+09:00",
"start_location": "Paris CDG",
"end_location": "Tokyo NRT",
"summary": "AF276 CDG→NRT",
"provider": "Air France",
"confirmation_code": "XK7J3M",
"traveler_names": ["Ian Rogers"],
"details_json": { "flight_number": "AF276", "seat": "14A", "class": "Economy" }
}Example — Hotel:
{
"kind": "hotel",
"start_date": "2026-04-01",
"end_date": "2026-04-05",
"start_location": "Tokyo, Japan",
"summary": "Park Hyatt Tokyo",
"provider": "Hyatt",
"confirmation_code": "HY-889923",
"traveler_names": ["Ian Rogers", "Hedvig Rogers"],
"details_json": { "room_type": "King Deluxe", "check_in": "15:00", "check_out": "11:00" }
}Example — Train:
{
"kind": "train",
"start_date": "2026-04-05",
"start_ts": "2026-04-05T09:00:00+09:00",
"end_ts": "2026-04-05T11:30:00+09:00",
"start_location": "Tokyo Station",
"end_location": "Kyoto Station",
"summary": "Shinkansen Nozomi 7",
"provider": "JR Central",
"confirmation_code": "JR-44521",
"details_json": { "car": "7", "seat": "3A", "class": "Green Car" }
}Example — Restaurant:
{
"kind": "restaurant",
"start_date": "2026-04-03",
"start_ts": "2026-04-03T19:00:00+09:00",
"start_location": "Sukiyabashi Jiro, Ginza, Tokyo",
"summary": "Dinner at Sukiyabashi Jiro",
"details_json": { "party_size": 2, "reservation_name": "Rogers" }
}Example — Ticket/Event (concert, sports, theater, festival, etc.):
{
"kind": "ticket",
"summary": "David Byrne at Théâtre du Châtelet",
"start_date": "2026-05-15",
"start_ts": "2026-05-15T20:00:00+02:00",
"start_location": "Paris",
"provider": "Ticketmaster",
"details_json": {
"event_name": "David Byrne: American Utopia",
"venue": "Théâtre du Châtelet",
"venue_address": "1 Place du Châtelet, 75001 Paris",
"performer": "David Byrne",
"event_time": "20:00",
"door_time": "19:00",
"section": "Orchestre",
"seat": "12",
"row": "G",
"ticket_count": 2,
"ticket_type": "Reserved",
"event_category": "concert"
}
}Ticket detail fields:
| Field | Type | Description |
|---|---|---|
| event_name | string | Name of the event/show |
| venue | string | Venue name |
| venue_address | string? | Full address |
| event_time | HH:MM | Show start time |
| door_time | HH:MM? | Door opening time |
| section | string? | Seating section |
| seat | string? | Seat number |
| row | string? | Row identifier |
| ticket_count | number | Number of tickets |
| ticket_type | string? | GA, Reserved, VIP, etc. |
| performer | string? | Artist/performer/team |
| event_category | enum | concert, theater, sports, museum, festival, other |
Supported ticket providers: Ticketmaster, AXS, Eventbrite, Dice, SeeTickets, StubHub, Viagogo, venue direct sales. Forward the confirmation email to trips@ubtrippin.xyz and the ticket is extracted automatically.
Event-driven trips: When a ticket email creates a new trip (no overlapping dates), the trip is named after the event/performer and the cover image is of the performer — not the city.
POST /api/v1/trips/:id/items/batch
Content-Type: application/json
{ "items": [ <item>, <item>, ... ] }Up to 50 items per request. Same fields as single item creation above.
Response: { "data": [...items], "meta": { "count": N } }
Tip for agents: When your user gives you a booking confirmation (email text, screenshot, pasted text), parse it yourself and use these endpoints to add structured items. You handle the extraction; UBTRIPPIN handles the storage, grouping, and display.
GET /api/v1/items/:id/statusPOST /api/v1/items/:id/status/refreshRe-checks live status (e.g. flight delays, gate changes).
GET /api/v1/me/loyaltyResponse:
{
"data": [
{
"id": "uuid",
"provider_key": "delta_skymiles",
"provider_name": "Delta SkyMiles",
"member_number": "1234567890",
"tier": "Gold",
"notes": null
}
]
}GET /api/v1/me/loyalty/lookup?provider_key=delta_skymilesReturns matching loyalty entry for a specific provider.
POST /api/v1/me/loyalty
Content-Type: application/json
{ "provider_key": "delta_skymiles", "member_number": "1234567890", "tier": "Gold" }PATCH /api/v1/me/loyalty/:id
Content-Type: application/json
{ "member_number": "9876543210", "tier": "Platinum" }DELETE /api/v1/me/loyalty/:idGET /api/v1/me/loyalty/exportReturns all loyalty data in a downloadable format.
GET /api/v1/loyalty/providersReturns the full list of supported loyalty providers (no auth required).
GET /api/v1/me/profileResponse includes name, email, preferences, tier, and settings.
PUT /api/v1/me/profile
Content-Type: application/json
{ "display_name": "Ian Rogers", "timezone": "Europe/Paris" }Also accepts POST with the same body.
GET /api/v1/familiesPOST /api/v1/families
Content-Type: application/json
{ "name": "The Rogers Family" }GET /api/v1/families/:idPATCH /api/v1/families/:id
Content-Type: application/json
{ "name": "Updated Family Name" }DELETE /api/v1/families/:idPOST /api/v1/families/:id/members
Content-Type: application/json
{ "email": "partner@example.com", "role": "member" }DELETE /api/v1/families/:id/members/:uidGET /api/v1/families/:id/profilesGET /api/v1/families/:id/tripsReturns all trips visible to family members.
GET /api/v1/families/:id/loyaltyGET /api/v1/families/:id/loyalty/lookup?provider_key=delta_skymilesLook up a loyalty number across all family members.
GET /api/v1/families/:id/guidesGET /api/v1/family-invites/:token
POST /api/v1/family-invites/:token/acceptView and accept family invite links.
GET /api/v1/trips/:id/collaboratorsPOST /api/v1/trips/:id/collaborators
Content-Type: application/json
{ "email": "friend@example.com", "role": "viewer" }PATCH /api/v1/trips/:id/collaborators/:uid
Content-Type: application/json
{ "role": "editor" }DELETE /api/v1/trips/:id/collaborators/:uidGET /api/v1/invites/:token
POST /api/v1/invites/:token/acceptView and accept trip collaboration invite links.
GET /api/v1/guidesQuery params: ?family_id=uuid (optional)
POST /api/v1/guides
Content-Type: application/json
{ "city": "Tokyo", "title": "Tokyo Eats" }GET /api/v1/guides/:idPATCH /api/v1/guides/:idDELETE /api/v1/guides/:idGET /api/v1/guides/:id/entriesPOST /api/v1/guides/:id/entries
Content-Type: application/json
{ "name": "Tsukiji Outer Market", "category": "food", "notes": "Go early" }PATCH /api/v1/guides/:id/entries/:eidDELETE /api/v1/guides/:id/entries/:eidGET /api/v1/guides/nearby?lat=35.6762&lng=139.6503Find guides near a location.
GET /api/v1/settings/sendersPOST /api/v1/settings/senders
Content-Type: application/json
{ "email": "mywork@company.com" }DELETE /api/v1/settings/senders/:idGET /api/v1/calendar/tokenReturns an iCal subscription URL for syncing trips to calendar apps.
POST /api/v1/calendar/tokenInvalidates the old token and generates a new one.
GET /api/v1/notificationsQuery params: ?unread=true (optional)
PATCH /api/v1/notifications/:id
Content-Type: application/json
{ "read": true }GET /api/v1/webhooksPOST /api/v1/webhooks
Content-Type: application/json
{ "url": "https://example.com/hook", "events": ["trip.created", "item.added"] }GET /api/v1/webhooks/:idPATCH /api/v1/webhooks/:id
Content-Type: application/json
{ "url": "https://example.com/new-hook", "active": true }DELETE /api/v1/webhooks/:idPOST /api/v1/webhooks/:id/testSends a test payload to verify the endpoint.
GET /api/v1/webhooks/:id/deliveriesLists recent delivery attempts with status codes.
GET /api/v1/trains/:trainNumber/statusReturns real-time status for a train by number (delays, platform, etc.).
GET /api/v1/images/search?q=tokyo+towerSearch for destination/cover images.
GET /api/v1/importsPOST /api/v1/importsUpload booking data for batch import.
GET /api/v1/imports/:idGET /api/v1/billing/subscriptionReturns current plan, tier, and billing period.
GET /api/v1/billing/portalReturns a Stripe billing portal link for managing subscription.
GET /api/v1/billing/pricesReturns available plans and pricing.
POST /api/v1/checkout
Content-Type: application/json
{ "price_id": "price_xxx" }Creates a Stripe checkout session.
GET /api/v1/activation/statusReturns whether the user's account is activated.
The primary way to add bookings is email forwarding. When your user receives a booking confirmation:
How to do this as an agent:
Works with: flights, hotels, trains (Eurostar, SNCF, Thalys, etc.), rental cars, ferry bookings, concert/event tickets (Ticketmaster, AXS, Eventbrite, Dice, SeeTickets, StubHub, Viagogo), and most major booking platforms (Booking.com, Expedia, Kayak, Trainline, etc.).
GET /api/v1/tripsGET /api/v1/trips — find the Tokyo trip IDGET /api/v1/trips/:id — get full itinerary with all itemsGET /api/v1/trips/:id to confirm it appearedGET /api/v1/me/loyalty/lookup?provider_key=delta_skymilesmember_number from the responsePOST /api/v1/me/loyalty with { "provider_key": "marriott_bonvoy", "member_number": "123456789" }GET /api/v1/familiesGET /api/v1/families/:id/loyalty/lookup?provider_key=delta_skymilesPOST /api/v1/families to create a family group (if none exists)POST /api/v1/families/:id/members with { "email": "partner@example.com" } for each memberPOST /api/v1/trips/:id/collaborators with { "email": "friend@example.com", "role": "viewer" }GET /api/v1/trains/:trainNumber/statusGET /api/v1/guides/nearby?lat=48.8566&lng=2.3522POST /api/v1/webhooks with { "url": "https://...", "events": ["item.added"] }GET /api/v1/calendar/token| Status | Code | Meaning |
|---|---|---|
| 401 | unauthorized | Missing/invalid API key |
| 400 | invalid_param | Bad UUID or missing field |
| 404 | not_found | Trip/item not found or belongs to another user |
| 429 | (body varies) | Rate limited — wait 60s |
| 500 | internal_error | Server error — retry once |
All errors return: { "error": { "code": "...", "message": "..." } }
YYYY-MM-DD for dates, YYYY-MM-DDTHH:MM:SSZ for timestamps).details_json contains raw parsed data — useful for confirmation numbers, seat assignments, loyalty numbers, etc.confidence (0–1): how confident the AI parser was. Items with needs_review: true may have errors.Users manage keys at ubtrippin.xyz/settings. Each key has a name and a masked preview. If a key is compromised, the user can revoke it from the settings page and generate a new one.
© LeoYeAI, 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 6 other files in skills/ubtrippin of LeoYeAI/openclaw-master-skills.
Open the folder on GitHubat commit e5199b5
Ubtrippin 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 |
|---|---|---|---|---|---|---|
| Ubtrippin this skillLeoYeAI/openclaw-master-skills | 2.2k | — | ~5.1k | Automated safety check: Pass | MIT | |
| Lifecycle Messagingavelikiy/great_cto | 102 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Monetizationsickn33/agentic-awesome-skills | 47k | 2 repos | ~3k | Automated safety check: Pass | MIT | |
| Developer Churnsickn33/agentic-awesome-skills | 47k | 1 repos | ~457 | Automated safety check: Pass | MIT | |
| Referralscoreyhaines31/marketingskills | 54k | 2 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Referral Programfreekmurze/dotfiles | 1k | 17 repos | ~1.8k | Automated safety check: Pass | None |
avelikiy/great_cto
Email/SMS lifecycle and deliverability framework for SMB Product-Builder products that send transactional or lifecycle messages (booking reminders, CRM sequences, receipts, win-back).
sickn33/agentic-awesome-skills
Estrategia e implementacao de monetizacao para produtos digitais - Stripe, subscriptions, pricing experiments, freemium, upgrade flows, churn prevention, revenue optimization e modelos de negocio…
sickn33/agentic-awesome-skills
When the user wants to understand, reduce, or recover from developer churn.
coreyhaines31/marketingskills
When the user wants to create, optimize, or analyze a referral program, affiliate program, or word-of-mouth strategy.
freekmurze/dotfiles
When the user wants to create, optimize, or analyze a referral program, affiliate program, or word-of-mouth strategy.
rongxinzy/RongxinAI
Reduce voluntary and involuntary churn through cancel flow design, save offers, exit surveys, and dunning sequences.
LeoYeAI/openclaw-master-skills
Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.
LeoYeAI/openclaw-master-skills
Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.
LeoYeAI/openclaw-master-skills
Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.
LeoYeAI/openclaw-master-skills
Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.
LeoYeAI/openclaw-master-skills
Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.
LeoYeAI/openclaw-master-skills
Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.
Categories
Manages travel for your user via UBTRIPPIN — trips, items, loyalty programs, family, city guides, events, concerts, notifications, and more. Ubtrippin is an agent skill from LeoYeAI/openclaw-master-skills. Manages travel for your user via UBTRIPPIN — trips, items, loyalty programs, family, city guides, events, concerts, notifications, and more.
Ubtrippin fits situations like: the user asks about their trips; upcoming travel; concert tickets; loyalty numbers.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill ubtrippin -a claude-code`. Or copy the skill folder (skills/ubtrippin in LeoYeAI/openclaw-master-skills) into .claude/skills/ubtrippin in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill ubtrippin -a codex`. Or copy the skill folder (skills/ubtrippin in LeoYeAI/openclaw-master-skills) into .agents/skills/ubtrippin 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 LeoYeAI/openclaw-master-skills --skill ubtrippin -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ubtrippin, .gemini/skills/ubtrippin, .github/skills/ubtrippin and .opencode/skills/ubtrippin in your project.
Going by SKILL.md and its folder, Ubtrippin needs a shell for the scripts in its folder. Our summary lists: A Bash shell.
SKILL.md names 1 domain. In commands or code: ubtrippin.xyz; the agent is likely to contact it when it follows the instructions. 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. Review the folder before installing.
Ubtrippin is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.1k tokens (SKILL.md is roughly 20k 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 Ubtrippin: Lifecycle Messaging (avelikiy/great_cto, 102 stars), Monetization (sickn33/agentic-awesome-skills, 47k stars), Developer Churn (sickn33/agentic-awesome-skills, 47k stars) and Referrals (coreyhaines31/marketingskills, 54k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,161 GitHub stars. The repository holds 1,235 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.