travel-destination-brochureBuild travel destination scenarios and brochures from a city name. Fetches street-level and landmark imagery from OpenStreetCam and Wikimedia Commons, then uses VLM Run (vlmrun) to generate a travel video and a travel plan. Use when the user wants a travel brochure, destination guide, travel video, or travel planning for a city.
Install via ClawdBot CLI:
clawdbot install MehediAhamed/travel-destination-brochureCreate travel brochures, videos, and 1-day plans for a destination city by combining OpenStreetCam street-level photos, Wikimedia Commons imagery, and VLM Run for video and copy.
Before starting, ensure you have:
No API keys required for:
Check if Python 3.10+ is installed:
Windows (PowerShell):
```powershell
python --version
```
macOS/Linux:
```bash
python3 --version
```
If Python is not installed or is an older version:
brew install python@3.11 (or use python.org installer)sudo apt install python3.11 (Ubuntu/Debian) or use your distribution's package managerWindows (PowerShell):
```powershell
pip install uv
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
```
macOS/Linux:
```bash
pip install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
```
Verify installation:
```bash
uv --version
```
Navigate to the skill directory and create a virtual environment:
Windows (PowerShell):
```powershell
cd c:\Users\mehed\.claude\skills\travel-destination-brochure
uv venv
.venv\Scripts\Activate.ps1
```
macOS/Linux:
```bash
cd ~/.claude/skills/travel-destination-brochure
uv venv
source .venv/bin/activate
```
Note: You should see (.venv) in your terminal prompt when activated.
Install the required packages:
```bash
uv pip install "vlmrun[cli]"
uv pip install requests
```
Verify installation:
```bash
vlmrun --version
python -c "import requests; print(requests.version)"
```
To generate travel videos and plans, you need a VLMRUN API key:
Windows (PowerShell):
```powershell
Check .env file for api key
$env:VLMRUN_API_KEY="your-api-key-here"
[System.Environment]::SetEnvironmentVariable('VLMRUN_API_KEY', 'your-api-key-here', 'User')
```
macOS/Linux:
```bash
export VLMRUN_API_KEY="your-api-key-here"
echo 'export VLMRUN_API_KEY="your-api-key-here"' >> ~/.bashrc
source ~/.bashrc
```
Verify environment variable:
Read .env file to find api keys
```bash
echo $env:VLMRUN_API_KEY
echo $VLMRUN_API_KEY
```
Test that everything works:
```bash
uv run scripts/geocode_city.py "Paris, France"
vlmrun --help
```
Installation Complete! You're ready to generate travel brochures.
Use the simplified all-in-one script that handles everything automatically:
Windows (PowerShell):
```powershell
uv run scripts/simple_travel_brochure.py --city "Doha, Qatar"
```
macOS/Linux:
```bash
uv run scripts/simple_travel_brochure.py --city "Doha, Qatar"
```
Alternative (if uv is not available):
```bash
python scripts/simple_travel_brochure.py --city "Doha, Qatar"
```
This script will:
VLMRUN_API_KEY is set)VLMRUN_API_KEY is set)Options:
--output DIR — Output directory (default: ./travel_brochure)--osc-count N — Number of OpenStreetCam photos (default: 3)--commons-count N — Number of Commons images (default: 2)Note: Set the VLMRUN_API_KEY environment variable to enable video and travel plan generation. The script will skip video generation gracefully if the API key is not set.
Example:
```bash
uv run scripts/simple_travel_brochure.py --city "Paris, France" --output ./paris_trip
```
Output:
images/ — Downloaded photos (5 images total)manifest.json — Metadata about the city, coordinates, and image pathsvideo/ — Generated travel video (if VLMRUN_API_KEY is set)travel_plan.md — One-day travel itinerary (if VLMRUN_API_KEY is set)For more control over each step, use the individual scripts below.
All paths below are relative to the directory containing this SKILL.md.
Run scripts using:
uv run scripts/script_name.py (recommended - handles dependencies automatically via PEP 723)python scripts/script_name.py (if dependencies are already installed)Ask the user: "Which city do you want the travel brochure and video for?" Use the exact city name (and country/region if ambiguous) for geocoding and Commons search.
Resolve city name to latitude/longitude (e.g. for OpenStreetCam and optional Commons geo-search).
```bash
uv run scripts/geocode_city.py "Paris, France"
```
Output: JSON with lat, lng, display_name. Use these in Steps 3–4.
OpenStreetCam provides street-level imagery. Base URL: https://api.openstreetcam.org/.
POST /nearby-tracks — body: lat, lng, distance (km).POST /1.0/list/nearby-photos/ — body: lat, lng, radius (meters), optional page, ipp.No access_token required for these read endpoints. Use scripts/fetch_openstreetcam.py to request photos and optionally download thumbnails/full images into a folder.
```bash
uv run scripts/fetch_openstreetcam.py --lat 48.8566 --lng 2.3522 --radius 2000 --output ./assets/osc --max-photos 20
```
Produces: image files under --output and a small manifest (e.g. osc_manifest.json) with captions/locations if available.
Commons provides landmark and cultural images. API: https://commons.wikimedia.org/w/api.php.
action=query, list=search, srsearch=, srnamespace=6 (File namespace).action=query, prop=imageinfo, iiprop=url|extmetadata, titles=File:....Use scripts/fetch_commons.py to search by destination name, resolve file URLs, and optionally download to a folder.
```bash
uv run scripts/fetch_commons.py --query "Paris landmarks" --output ./assets/commons --max-images 15
```
Produces: image files and a manifest (e.g. commons_manifest.json) with captions/descriptions from Commons.
Combine OSC and Commons manifests (and optionally add short text lines per image) into a single manifest or list that you can pass to vlmrun (e.g. paths + one short caption per image). The pipeline script can do this.
```bash
uv run scripts/run_travel_pipeline.py --city "Paris, France" --output-dir ./travel_output
```
This script should: geocode → fetch OSC → fetch Commons → write images/ and manifest.json (or manifest.txt) under --output-dir.
Use the vlmrun-cli-skill workflow: ensure vlmrun is installed and VLMRUN_API_KEY is set.
Travel video – Pass the collected images and a single prompt so the model produces a short travel video (e.g. 30 seconds). Prefer -o to save the artifact.
Note: If VLMRUN_API_KEY is set as an environment variable, you can omit --api-key:
```bash
vlmrun chat "Create a 30-second travel video showcasing these images of [CITY]. Add subtle captions with the location names. Keep a calm, inspiring travel-documentary style." -i ./travel_output/images/photo1.jpg -i ./travel_output/images/photo2.jpg -i ./travel_output/images/photo3.jpg ... -o ./travel_output/video
vlmrun --api-key "your-api-key-here" chat "Create a 30-second travel video showcasing these images of [CITY]. Add subtle captions with the location names. Keep a calm, inspiring travel-documentary style." -i ./travel_output/images/photo1.jpg -i ./travel_output/images/photo2.jpg -i ./travel_output/images/photo3.jpg ... -o ./travel_output/video
```
If the number of files is large, reference the manifest and pass a subset (e.g. up to 10–15 representative images) or use a prompt that says “using the attached images in order.”
Travel plan (1-day) – Use the same images plus a text prompt to get a narrative or bullet-point plan.
```bash
vlmrun chat "Using these images and their locations, write a one-day travel plan for [CITY]: morning, midday, and evening activities with specific places and practical tips. Output as structured markdown (headings and bullet points)." -i ./travel_output/images/photo1.jpg -i ./travel_output/images/photo2.jpg ... -o ./travel_output
vlmrun --api-key "your-api-key-here" chat "Using these images and their locations, write a one-day travel plan for [CITY]: morning, midday, and evening activities with specific places and practical tips. Output as structured markdown (headings and bullet points)." -i ./travel_output/images/photo1.jpg -i ./travel_output/images/photo2.jpg ... -o ./travel_output
```
Save the model’s text response (and any artifact) under --output-dir (e.g. travel_plan.md).
| Script | Purpose |
|--------|--------|
| scripts/geocode_city.py | City name → lat, lng (Nominatim) |
| scripts/fetch_openstreetcam.py | Fetch/download OpenStreetCam photos by lat/lng/radius |
| scripts/fetch_commons.py | Search and download Wikimedia Commons images by query |
| scripts/run_travel_pipeline.py | Run geocode + OSC + Commons and write manifest + images |
action=query, list=search, prop=imageinfo; MediaWiki API help.vlmrun chat options.-o.Python not found:
py instead of pythonpython3 instead of pythonuv command not found:
$env:PATH~/.cargo/bin or ~/.local/bin is in your PATHVirtual environment activation fails:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser.venv\Scripts\activate.bat instead of .ps1source .venv/bin/activate (not ./.venv/bin/activate)vlmrun not found:
uv pip install "vlmrun[cli]"which vlmrun (macOS/Linux) or where.exe vlmrun (Windows)VLMRUN_API_KEY is set correctly: echo $VLMRUN_API_KEY (macOS/Linux) or echo $env:VLMRUN_API_KEY (Windows)Script execution errors:
uv pip list```bash
uv run scripts/run_travel_pipeline.py --city "Paris, France" --output-dir ./travel_output
vlmrun chat "Create a 30-second travel video from these images of Paris. Add short location captions. Calm documentary style." -i ./travel_output/images/img_0000.jpg -i ./travel_output/images/img_0001.jpg -o ./travel_output/video
vlmrun chat "Using these photos of Paris, write a one-day travel plan (morning, midday, evening) with specific places and tips in markdown." -i ./travel_output/images/img_0000.jpg -i ./travel_output/images/img_0001.jpg -o ./travel_output
```
https://api.openstreetcam.org/https://commons.wikimedia.org/w/api.phphttps://nominatim.openstreetmap.org/search?q=&format=json Generated Mar 1, 2026
A travel agency uses this skill to create personalized destination brochures and videos for clients. By inputting a city name, they generate visual content showcasing street-level views and landmarks, enhancing promotional materials and client engagement.
Educators or e-learning platforms utilize the skill to produce travel guides and videos for geography or cultural studies. It helps students visualize destinations through real imagery and structured travel plans, making lessons more interactive.
Event planners and hotels generate destination brochures to attract tourists or conference attendees. The skill provides quick, visually appealing content highlighting local attractions and itineraries, aiding in marketing and guest services.
Freelancers or bloggers use the skill to automate travel content creation for websites or social media. It saves time by fetching images and generating videos and plans, allowing focus on customization and audience engagement.
Companies employ the skill to create travel guides for business trips or employee relocations. It offers practical one-day plans and visual tours, helping staff prepare for destinations efficiently and safely.
Offer a monthly subscription for unlimited access to travel brochure generation, including premium features like higher-resolution videos or custom branding. Revenue comes from recurring fees, targeting travel agencies and content creators.
Provide basic features like image fetching and geocoding for free, while charging for advanced capabilities such as video generation or extended travel plans. This attracts a broad user base and converts them to paid tiers.
License the skill to travel platforms or educational institutions for integration into their own systems. Revenue is generated through one-time licensing fees or annual contracts, offering customization and scalability.
💬 Integration Tip
Integrate with existing travel APIs or CMS platforms to automate brochure generation, and ensure API key management is user-friendly for seamless video production.
Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).
Reorder Foodora orders + track ETA/status with ordercli. Never confirm without explicit user approval. Triggers: order food, reorder, track ETA.
Google Maps integration for OpenClaw with Routes API. Use for: (1) Distance/travel time calculations with traffic prediction, (2) Turn-by-turn directions, (3...
Flight tracking and scheduling. Track live flights in real-time by region, callsign, or airport using OpenSky Network. Search flight schedules between airports. Use for queries like "What flights are over Switzerland?" or "When do flights from Hamburg arrive in Zurich?" or "Track flight SWR123".
Use when the user asks to "find flights", "compare itineraries", "search hidden-city routes", "check cheapest dates", "explore destinations", "search hotels"...
Comprehensive travel planning, booking, and management skill. Use when needing to plan international trips, manage multi-destination itineraries, handle family travel logistics, optimize travel costs, and coordinate complex travel arrangements.