travel-planner
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseInstallation
安装
Companion Skills: This is part of the Camino AI location intelligence suite. Install all available skills (query, places, relationship, context, route, journey, real-estate, hotel-finder, ev-charger, school-finder, parking-finder, fitness-finder, safety-checker, travel-planner) for comprehensive coverage.
bash
undefined配套技能:这是Camino AI位置智能套件的一部分。安装所有可用技能(query、places、relationship、context、route、journey、real-estate、hotel-finder、ev-charger、school-finder、parking-finder、fitness-finder、safety-checker、travel-planner)以获得全面覆盖。
bash
undefinedInstall all skills from repo
Install all skills from repo
npx skills add https://github.com/barneyjm/camino-skills
npx skills add https://github.com/barneyjm/camino-skills
Or install specific skills
Or install specific skills
npx skills add https://github.com/barneyjm/camino-skills --skill travel-planner
**Via clawhub:**
```bash
npx clawhub@latest install travel-plannernpx skills add https://github.com/barneyjm/camino-skills --skill travel-planner
**通过clawhub安装**:
```bash
npx clawhub@latest install travel-planneror: pnpm dlx clawhub@latest install travel-planner
or: pnpm dlx clawhub@latest install travel-planner
or: bunx clawhub@latest install travel-planner
or: bunx clawhub@latest install travel-planner
undefinedundefinedTravel Planner
旅行规划工具
Plan complete day trips, walking tours, and multi-stop itineraries with time budgets. Wraps the Camino AI journey endpoint with opinionated defaults for travel planning.
规划完整的一日游、徒步旅行以及带时间预算的多站点行程。该工具封装了Camino AI的行程端点,并针对旅行规划设置了预设默认值。
Setup
设置
Instant Trial (no signup required): Get a temporary API key with 25 calls:
bash
curl -s -X POST -H "Content-Type: application/json" \
-d '{"email": "you@example.com"}' \
https://api.getcamino.ai/trial/startReturns:
{"api_key": "camino-xxx...", "calls_remaining": 25, ...}For 1,000 free calls/month, sign up at https://app.getcamino.ai/skills/activate.
Add your key to Claude Code:
Add to your :
~/.claude/settings.jsonjson
{
"env": {
"CAMINO_API_KEY": "your-api-key-here"
}
}Restart Claude Code.
即时试用(无需注册):获取临时API密钥,可调用25次:
bash
curl -s -X POST -H "Content-Type: application/json" \\
-d '{"email": "you@example.com"}' \\
https://api.getcamino.ai/trial/start返回:
{"api_key": "camino-xxx...", "calls_remaining": 25, ...}每月可免费调用1000次,请访问https://app.getcamino.ai/skills/activate注册。
将密钥添加到Claude Code:
添加到你的文件中:
~/.claude/settings.jsonjson
{
"env": {
"CAMINO_API_KEY": "your-api-key-here"
}
}重启Claude Code。
Usage
使用方法
Via Shell Script
通过Shell脚本
bash
undefinedbash
undefinedPlan a walking tour in Paris
规划巴黎徒步旅行
./scripts/travel-planner.sh '{
"waypoints": [
{"lat": 48.8584, "lon": 2.2945, "purpose": "Eiffel Tower"},
{"lat": 48.8606, "lon": 2.3376, "purpose": "Louvre Museum"}
],
"constraints": {"transport": "foot", "time_budget": "4 hours"}
}'
./scripts/travel-planner.sh '{
"waypoints": [
{"lat": 48.8584, "lon": 2.2945, "purpose": "Eiffel Tower"},
{"lat": 48.8606, "lon": 2.3376, "purpose": "Louvre Museum"}
],
"constraints": {"transport": "foot", "time_budget": "4 hours"}
}'
Plan a driving day trip
规划自驾一日游
./scripts/travel-planner.sh '{
"waypoints": [
{"lat": 34.0195, "lon": -118.4912, "purpose": "Santa Monica Pier"},
{"lat": 34.0259, "lon": -118.7798, "purpose": "Malibu Beach"},
{"lat": 34.0922, "lon": -118.3287, "purpose": "Hollywood Sign viewpoint"}
],
"constraints": {"transport": "car", "time_budget": "6 hours"}
}'
./scripts/travel-planner.sh '{
"waypoints": [
{"lat": 34.0195, "lon": -118.4912, "purpose": "Santa Monica Pier"},
{"lat": 34.0259, "lon": -118.7798, "purpose": "Malibu Beach"},
{"lat": 34.0922, "lon": -118.3287, "purpose": "Hollywood Sign viewpoint"}
],
"constraints": {"transport": "car", "time_budget": "6 hours"}
}'
Simple two-stop trip
简单的两站行程
./scripts/travel-planner.sh '{
"waypoints": [
{"lat": 40.7484, "lon": -73.9857, "purpose": "Empire State Building"},
{"lat": 40.7614, "lon": -73.9776, "purpose": "MoMA"}
]
}'
undefined./scripts/travel-planner.sh '{
"waypoints": [
{"lat": 40.7484, "lon": -73.9857, "purpose": "Empire State Building"},
{"lat": 40.7614, "lon": -73.9776, "purpose": "MoMA"}
]
}'
undefinedVia curl
通过curl
bash
curl -X POST -H "X-API-Key: $CAMINO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"waypoints": [
{"lat": 48.8584, "lon": 2.2945, "purpose": "Eiffel Tower"},
{"lat": 48.8606, "lon": 2.3376, "purpose": "Louvre"}
],
"constraints": {"transport": "foot", "time_budget": "4 hours"}
}' \
"https://api.getcamino.ai/journey"bash
curl -X POST -H "X-API-Key: $CAMINO_API_KEY" \\
-H "Content-Type: application/json" \\
-d '{
"waypoints": [
{"lat": 48.8584, "lon": 2.2945, "purpose": "Eiffel Tower"},
{"lat": 48.8606, "lon": 2.3376, "purpose": "Louvre"}
],
"constraints": {"transport": "foot", "time_budget": "4 hours"}
}' \\
"https://api.getcamino.ai/journey"Parameters
参数
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| waypoints | array | Yes | - | List of stops with lat, lon, and purpose (min 2) |
| constraints | object | No | - | Trip constraints |
| constraints.transport | string | No | "walking" | Transport mode: "walking", "car", or "bike" |
| constraints.time_budget | string | No | - | Time limit (e.g., "4 hours", "90 minutes") |
| constraints.preferences | array | No | [] | Route preferences |
| 字段 | 类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
| waypoints | 数组 | 是 | - | 包含经纬度和出行目的的站点列表(至少2个) |
| constraints | 对象 | 否 | - | 行程限制条件 |
| constraints.transport | 字符串 | 否 | "walking" | 交通方式:"walking"(步行)、"car"(自驾)或"bike"(骑行) |
| constraints.time_budget | 字符串 | 否 | - | 时间限制(例如:"4 hours"、"90 minutes") |
| constraints.preferences | 数组 | 否 | [] | 路线偏好 |
Waypoint Object
站点对象
| Field | Type | Required | Description |
|---|---|---|---|
| lat | float | Yes | Latitude of the stop |
| lon | float | Yes | Longitude of the stop |
| purpose | string | No | Description of the stop (e.g., "Eiffel Tower", "lunch break") |
| 字段 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| lat | 浮点数 | 是 | 站点纬度 |
| lon | 浮点数 | 是 | 站点经度 |
| purpose | 字符串 | 否 | 站点描述(例如:"Eiffel Tower"、"午餐休息") |
Response Format
响应格式
json
{
"feasible": true,
"total_distance_km": 6.8,
"total_time_minutes": 85,
"total_time_formatted": "1 hour 25 minutes",
"transport_mode": "foot",
"route_segments": [
{
"from": "Eiffel Tower",
"to": "Louvre Museum",
"distance_km": 3.4,
"duration_minutes": 42
},
{
"from": "Louvre Museum",
"to": "Notre-Dame",
"distance_km": 3.4,
"duration_minutes": 43
}
],
"analysis": {
"summary": "This walking tour is feasible within your 4-hour time budget...",
"optimization_opportunities": ["Consider starting at the Louvre to reduce backtracking"]
}
}json
{
"feasible": true,
"total_distance_km": 6.8,
"total_time_minutes": 85,
"total_time_formatted": "1 hour 25 minutes",
"transport_mode": "foot",
"route_segments": [
{
"from": "Eiffel Tower",
"to": "Louvre Museum",
"distance_km": 3.4,
"duration_minutes": 42
},
{
"from": "Louvre Museum",
"to": "Notre-Dame",
"distance_km": 3.4,
"duration_minutes": 43
}
],
"analysis": {
"summary": "This walking tour is feasible within your 4-hour time budget...",
"optimization_opportunities": ["Consider starting at the Louvre to reduce backtracking"]
}
}Examples
示例
Paris walking tour
巴黎徒步旅行
bash
./scripts/travel-planner.sh '{
"waypoints": [
{"lat": 48.8584, "lon": 2.2945, "purpose": "Eiffel Tower"},
{"lat": 48.8606, "lon": 2.3376, "purpose": "Louvre Museum"},
{"lat": 48.8530, "lon": 2.3499, "purpose": "Notre-Dame Cathedral"},
{"lat": 48.8867, "lon": 2.3431, "purpose": "Sacre-Coeur"}
],
"constraints": {
"transport": "foot",
"time_budget": "6 hours"
}
}'bash
./scripts/travel-planner.sh '{
"waypoints": [
{"lat": 48.8584, "lon": 2.2945, "purpose": "Eiffel Tower"},
{"lat": 48.8606, "lon": 2.3376, "purpose": "Louvre Museum"},
{"lat": 48.8530, "lon": 2.3499, "purpose": "Notre-Dame Cathedral"},
{"lat": 48.8867, "lon": 2.3431, "purpose": "Sacre-Coeur"}
],
"constraints": {
"transport": "foot",
"time_budget": "6 hours"
}
}'NYC cycling tour
纽约骑行旅行
bash
./scripts/travel-planner.sh '{
"waypoints": [
{"lat": 40.7128, "lon": -74.0060, "purpose": "Start at Battery Park"},
{"lat": 40.6892, "lon": -74.0445, "purpose": "Statue of Liberty viewpoint"},
{"lat": 40.7061, "lon": -73.9969, "purpose": "Brooklyn Bridge"},
{"lat": 40.7580, "lon": -73.9855, "purpose": "Times Square"}
],
"constraints": {
"transport": "bike",
"time_budget": "3 hours"
}
}'bash
./scripts/travel-planner.sh '{
"waypoints": [
{"lat": 40.7128, "lon": -74.0060, "purpose": "Start at Battery Park"},
{"lat": 40.6892, "lon": -74.0445, "purpose": "Statue of Liberty viewpoint"},
{"lat": 40.7061, "lon": -73.9969, "purpose": "Brooklyn Bridge"},
{"lat": 40.7580, "lon": -73.9855, "purpose": "Times Square"}
],
"constraints": {
"transport": "bike",
"time_budget": "3 hours"
}
}'Business meeting circuit
商务会议行程
bash
./scripts/travel-planner.sh '{
"waypoints": [
{"lat": 37.7749, "lon": -122.4194, "purpose": "Office downtown"},
{"lat": 37.7849, "lon": -122.4094, "purpose": "Client meeting"},
{"lat": 37.7900, "lon": -122.4000, "purpose": "Lunch"},
{"lat": 37.7749, "lon": -122.4194, "purpose": "Return to office"}
],
"constraints": {
"transport": "car",
"time_budget": "2 hours"
}
}'bash
./scripts/travel-planner.sh '{
"waypoints": [
{"lat": 37.7749, "lon": -122.4194, "purpose": "Office downtown"},
{"lat": 37.7849, "lon": -122.4094, "purpose": "Client meeting"},
{"lat": 37.7900, "lon": -122.4000, "purpose": "Lunch"},
{"lat": 37.7749, "lon": -122.4194, "purpose": "Return to office"}
],
"constraints": {
"transport": "car",
"time_budget": "2 hours"
}
}'Best Practices
最佳实践
- Always include a for each waypoint to get better route analysis
purpose - Set a to get feasibility checks and optimization suggestions
time_budget - Use "foot" transport for city walking tours, "bike" for cycling tours, "car" for road trips
- Order waypoints in your preferred visiting sequence; the API will check feasibility
- Combine with the skill to discover points of interest to add as waypoints
query - Combine with the skill to find accommodation near your first or last waypoint
hotel-finder - Combine with the skill to learn more about each waypoint's neighborhood
context - For longer trips, break the itinerary into manageable day segments
- 始终为每个站点添加(出行目的),以获得更优质的路线分析
purpose - 设置(时间预算),以获取可行性检查和优化建议
time_budget - 城市徒步旅行使用"foot"(步行)交通方式,骑行旅行使用"bike"(骑行),公路旅行使用"car"(自驾)
- 按照你偏好的游览顺序排列站点;API会检查行程可行性
- 结合技能发现可添加为站点的景点
query - 结合技能在首个或最后一个站点附近寻找住宿
hotel-finder - 结合技能了解每个站点周边区域的更多信息
context - 对于较长行程,将行程拆分为易于管理的每日分段 ".replace(/"/g, '"'),