agentCLAWHUBUnverified

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

OpenClaw

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
  1. Install using `clawhub skill install s17dffzmsv3fhcvw17wbgaa79x8avm3t:travel-buddy` in an isolated environment before connecting it to live workloads.
  2. No published capability contract is available yet, so validate auth and request/response behavior manually.
  3. 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,
  
Github ReposUpdated 1d agoRank 70

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!

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

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

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW

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.

Sponsored

Ads related to Travel Buddy and adjacent AI workflows.