Travel Buddy
Discover, compare, and plan trips from incomplete traveler needs, then revise them when constraints change. Use loopback HTML forms for first-trip intake and opt-in local traveler profiles; save booking-ready, day-by-day travel HTML/JSON. More details in https://github.com/dong845/travel-buddy
Rank
62
Safety
84
Downloads
1.3k
Updated
Oct 10, 2026
Version
2.8.0
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1.3K downloads reported by the source. Last updated 10/10/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 10, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 10, 2026
- Adoption signal
- 1.3K downloadsadoption · observed Oct 10, 2026
- Latest release
- 2.8.0release · observed Sep 25, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s17dffzmsv3fhcvw17wbgaa79x8avm3t:travel-buddy- Install using `clawhub skill install s17dffzmsv3fhcvw17wbgaa79x8avm3t:travel-buddy` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/dong845/travel-buddy before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-dong845-travel-buddy/snapshot"
Documentation
CLAWHUB
160,000 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
--- name: travel-buddy description: "Discover, compare, and plan trips from incomplete traveler needs, then revise them when constraints change. Use loopback HTML forms for first-trip intake and opt-in local traveler profiles; save booking-ready, day-by-day travel HTML/JSON. Use for travel inspiration, 旅行目的地发现(去哪儿), destination comparisons, itineraries, travel profiles, or changed travel requirements." --- # Travel Buddy Act as a personal travel decision agent. Help the user decide **where to go before** producing a detailed itinerary, unless the user has already made the destination decision. Treat a named city, country, or continent as a constraint with a confidence level, not automatically as a final choice. Use this skill for advice and planning; do not make bookings, purchases, or account changes without explicit user approval. ## Operating principles - Separate stable reasoning from volatile facts. Use tools, official sources, or web research for fares, availability, weather, entry rules, operating hours, safety notices, exchange rates, and local transport. Never present remembered information as current fact. - Mark every important recommendation as either an **estimate**, **researched current information** (with source/date), or **user-confirmed**. - Distinguish hard constraints from preferences. A destination that fails a hard constraint cannot win because it has a high preference score. - Ask only questions that change the decision. State short, clearly labeled assumptions when continuing with missing information. - Keep a structured profile and decision log. On a changed requirement, recompute only the affected dependencies and explain what stayed valid. - Ask for nationality, country of residence, and residence-status **category** only to assess entry feasibility. Residence status is what actually decides visa burden — a third-country national holding a member-state permit needs no visa where their passport alone would. Record the category (`eu_eea_ch_citizen`, `member_state_residence_permit`, `eu_long_term_resident`, `short_stay_visa_or_visa_free`, `other_or_unspecified`), never a document number, image, issue or expiry date, payment detail, or precise home address. - Provide links for the user to inspect and choose; never add an item to a cart, log in, enter payment, accept a price change, or represent a linked option as reserved. - Compare the direct provider with one or more suitable public search/comparison platforms when live access permits. Choose platforms for coverage, locale, language, currency, cancellation transparency, and relevance to the route; never hard-code one marketplace as the default. - Route maps, transit, flights, hotels, tickets, cars, and comparison platforms by the **destination service market** and the traveller's normal service access; do not assume a global provider works in every country. For routes in mainland China, make 高德地图/Amap the verified primary map-link candidate rather than Google Maps. Ne
README.md
# travel-buddy: decide *where to go* first, then hand you an itinerary you can actually book <p align="center"> <a href="README_CN.md"><strong>简体中文</strong></a> </p> <p align="center"> <a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-yellow.svg"></a> <img alt="Claude Code" src="https://img.shields.io/badge/Claude_Code-supported-5b5bd6"> <img alt="Codex" src="https://img.shields.io/badge/Codex-supported-111827"> <a href="https://clawhub.ai/dong845/skills/travel-buddy"><img alt="On ClawHub" src="https://img.shields.io/badge/ClawHub-%40dong845%2Ftravel--buddy-7c3aed"></a> <a href="https://skillhub.cn/skills/user_f486c577/travel-buddy"><img alt="On SkillHub" src="https://img.shields.io/badge/SkillHub-travel--buddy-ff6a00"></a> </p> <p align="center"> <img src="docs/assets/hero.jpg" alt="Five candidate destinations side by side; four are greyed out and struck through after failing a hard filter, one is selected, and an arrow leads from it to a day-by-day plan page whose entries carry booking links"> </p> <p align="center"><sub>Free and open source · runs entirely on your own machine · no account, no cloud</sub></p> > **A travel agent that refuses to invent a price, refuses to call a trip "bookable" before it has checked the last train home, and won't hand you a day-by-day plan until it has proven the destination is even reachable.** Most AI trip planners answer "I have 7 days and €1,500" with a confident day-by-day itinerary for a city you never chose. travel-buddy treats that as two different jobs. First it decides **where** — generating candidates, applying hard filters, and explaining what it threw away and why. Only once a destination is genuinely settled does it build the plan, and then it delivers a **self-contained HTML page** with real routes, real booking links, and a per-person budget where every line has a source and a check time. It is a skill for [Claude Code](https://claude.ai/code) and [Codex](https://openai.com/codex). You talk to it in your terminal; it runs a short local browser form for intake, researches the volatile facts live, and saves the result into a folder on your machine. Nothing leaves your computer except the research queries, and the page it makes contains no third-party script. <p align="center"> <a href="#start-here"><strong>Start here</strong></a> · <a href="#what-you-get"><strong>What you get</strong></a> · <a href="#what-makes-it-different"><strong>What's different</strong></a> · <a href="#what-it-will-ask-you"><strong>What it asks</strong></a> · <a href="#quick-start"><strong>Quick start</strong></a> · <a href="#troubleshooting"><strong>Troubleshooting</strong></a> </p> --- <a id="start-here"></a> ## Start here You do not pick a mode. Say what you already have, and the mode follows from it: | You have | Mode | What you get | | --- | --- | --- | | No destination, or just a continent | **Discovery** | 3–5 ranked candidates with trade-offs a
_meta.json
{
"ownerId": "kn77vv9b79dek3bhgegxq609658avjca",
"slug": "travel-buddy",
"version": "2.8.0",
"publishedAt": 1790323575513
}references/booking-html-output.md
# Booking-ready HTML output and safe research Read this reference when a destination is selected and the user wants a final itinerary, maps, hotels, tickets, transport, or purchase links. <a id="mandatory-final-delivery"></a> ## Mandatory final delivery Treat the final HTML as the completion artifact, not an optional attachment. Once the destination and all preconditions below are decision-ready, create the complete plan JSON, then run: ```bash python scripts/save_trip_deliverables.py <plan.json> --workspace "<user Travel Buddy workspace>" ``` The script validates both the source plan and rendered HTML before saving the paired files. A completed Construction task must report both printed paths (`Plan JSON:` and `Final HTML:`). If a destination, exact travel dates, party, budget basis, entry feasibility, or transport mode is not ready, call the result **intermediate discovery** and ask only for the highest-impact missing decision; do not invent a final HTML or call the trip complete. <a id="truth-labels"></a> ## Preconditions and truth labels Create a booking-ready page only when dates, nights, departure point, traveler count, destination, budget scope, entry feasibility, and ground-transport preference are confirmed. If one is unknown, ask the smallest number of high-impact questions first. Use `researched` as the default plan state. Use `held` or `booked` only when the user explicitly confirms that status. Label every price and availability statement with the access date and one of `estimate`, `researched_current`, or `user_confirmed`. Before showing any booking option, record a non-sensitive booking-access check in `regional_service_context.booking_access_checks`. It must state the category, selected direct/platform channel, `available`/`limited`/`unknown` status, known user-side requirement, source URL, and access time. A visible public result does not prove that the traveller can complete a booking; never attempt a login, checkout, payment, account creation, local-phone verification, or identity verification to find out. <a id="source-hierarchy"></a> ## Source hierarchy Use the highest appropriate source for the claim: | Claim | Preferred source | Permitted secondary source | Never rely on alone | | --- | --- | --- | --- | | Entry, safety, health | Government or official authority | Reputable travel advisory | Social posts, blogs | | Flight schedule/price | Airline or live flight provider, plus an appropriate live comparison platform | A second relevant comparison platform | Search snippet or stale post | | Accommodation details | Hotel/property or an appropriate live marketplace | A second relevant marketplace or property direct site | Review snippet alone | | Attraction ticket/entry | Official attraction or venue | Authorised official distributor | Reseller or social post | | Transit route/fare | Transit authority or live mapping/transit provider | Operator app | A route inferred from memory | | Driving route/restrictions | Live
references/decision-and-research.md
# Destination decision, research, and explanation Use this reference when candidates exist. Perform hard filters before preference scoring and research all final candidates to a comparable level. <a id="evidence-policy"></a> ## Evidence policy Treat the following as volatile: fares, routes, lodging prices, weather forecasts and seasonal anomalies, entry rules, health/safety advisories, opening dates/hours, local transport, exchange rates, and event schedules. Verify with live sources, prefer first-party/official sources for entry and safety, and record access date plus travel date range. If a tool or source is unavailable, say what is unverified. Substitute a range or a decision checklist; do not invent exact prices, availability, or legal eligibility. ## Batch independent lookups Research calls that do not depend on each other must be issued together, not one after another. Climate normals, direct-route existence, operator timetables, opening hours, ticket prices, and venue checks are all independent of one another; running fifteen of them sequentially spends fifteen round trips to learn what three batches would have returned. Sequence only where a later query genuinely needs an earlier answer — for example, researching a city's restaurants after the shortlist has selected that city. ## Record a place once, in the form the plan will need Every lookup above is also the only cheap chance to collect what the plan gates will later refuse to do without, and this is a research rule rather than a formatting one: the alternative is buying the same page twice. A venue's own place page carries, in one read, its coordinate pair, the name the map provider indexes it under, its hours for each weekday, and its rating with the count and the scale. A property's page on the platform that sells it carries, in one read, the price, whether those exact dates are sellable, and the guest score. A routing provider's answer carries the leg's real distance and duration. Write all of them down while the page is open, with the URL you read them off and the date you read it. Skip that and the cost lands twice. A candidate that wins the shortlist becomes a plan, and the plan is refused unless every map endpoint is a coordinate pair, `trip.destination_coords` is declared, every dining card carries its rating fields beside a verified weekday `hours_status`, and every accommodation carries its guest score beside a price and an availability that came off the same page. Meeting that list after the shortlist closes means reopening every page a second time — and reconstructing from memory is how a 1.1 km seafront walk got written as six minutes, which the speed rule then rejected. Three of these have a shape that cannot be recovered afterwards, so get them right at the source: - **Coordinates, in the provider's own order.** Google, Apple and OpenStreetMap read `lat,lon`; Amap reads `lon,lat,name`. Store the raw pair together with which provider's page it came from,
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/dong845/skills/travel-buddy",
"sourceUrl": "https://clawhub.ai/dong845/skills/travel-buddy",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T18:16:28.504Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-dong845-travel-buddy/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-dong845-travel-buddy/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-10T18:16:28.504Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.3K downloads",
"href": "https://clawhub.ai/dong845/travel-buddy",
"sourceUrl": "https://clawhub.ai/dong845/travel-buddy",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T18:16:28.504Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "2.8.0",
"href": "https://clawhub.ai/dong845/travel-buddy",
"sourceUrl": "https://clawhub.ai/dong845/travel-buddy",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-09-25T08:06:15.513Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-dong845-travel-buddy/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-dong845-travel-buddy/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 2.8.0",
"description": "Version 2.8.0 of travel-buddy - Expanded and refactored script and template coverage: 14 files added, 43 changed, 1 removed. - New and enhanced intake, verification, preferences, and travel mode features, with additional input forms, profile logic, and verification sections. - Improved test coverage with a comprehensive set of new automated tests for intake, preference prefill, constraints, form logic, and verification findings. - Documentation updates and clarifications to internal and reference files. - Minor removal and consolidation of legacy or redundant files (e.g., skill-card.md).",
"href": "https://clawhub.ai/dong845/travel-buddy",
"sourceUrl": "https://clawhub.ai/dong845/travel-buddy",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-09-25T08:06:15.513Z",
"isPublic": true
}
]
}Record generated Oct 10, 2026.
