Skill: barneyjm/route (version 2.0.0)

--- name: route description: "Get detailed routing between two points with distance, duration, and optional turn-by-turn directions. Use when you need navigation instructions or travel time estimates between locations." metadata: {"clawdbot":{"emoji":"🧭","requires":{"env":["CAMINO_API_KEY"]},"primaryEnv":"CAMINO_API_KEY"}} --- ## Installation **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 # Install all skills from repo npx skills add https://github.com/barneyjm/camino-skills # Or install specific skills npx skills add https://github.com/barneyjm/camino-skills --skill route ``` **Via clawhub:** ```bash npx clawhub@latest install route # or: pnpm dlx clawhub@latest install route # or: bunx clawhub@latest install route ``` # Route - Point-to-Point Navigation Get detailed routing between two points with distance, duration, and optional turn-by-turn directions. ## 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": "[REDACTED_SECRET]"}' \ https://api.getcamino.ai/trial/start ``` Returns: `{"api_key": "camino-xxx...", "calls_remaining": 25, ...}` For 1,000 free calls/month, sign up at [https://app.getcamino.ai/skills/activate](https://app.getcamino.ai/skills/activate). **Add your key to Claude Code:** Add to your `~/.claude/settings.json`: ```json { "env": { "CAMINO_API_KEY": "your-api-key-here" } } ``` Restart Claude Code. ## Usage ### Via Shell Script ```bash # Get driving directions ./scripts/route.sh '{ "start_lat": 40.7128, "start_lon": -74.0060, "end_lat": 40.7589, "end_lon": -73.9851 }' # Walking directions ./scripts/route.sh '{ "start_lat": 40.7128, "start_lon": -74.0060, "end_lat": 40.7589, "end_lon": -73.9851, "mode": "foot" }' # With route geometry for mapping ./scripts/route.sh '{ "start_lat": 40.7128, "start_lon": -74.0060, "end_lat": 40.7589, "end_lon": -73.9851, "mode": "bike", "include_geometry": true }' ``` ### Via curl ```bash curl -H "X-[REDACTED_SECRET]" \ "https://api.getcamino.ai/route?start_lat=40.7128&start_lon=-74.0060&end_lat=40.7589&end_lon=-73.9851&mode=car" ``` ## Parameters | Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | start_lat | float | Yes | - | Starting latitude | | start_lon | float | Yes | - | Starting longitude | | end_lat | float | Yes | - | Ending latitude | | end_lon | float | Yes | - | Ending longitude | | mode | string | No | "car" | Transport mode: "car", "bike", or "foot" | | include_geometry | bool | No | false | Include detailed route geometry for mapping | | include_imagery | bool | No | false | Include street-level imagery at waypoints | ## Response Format ```json { "distance_km": 6.8, "duration_minutes": 18, "mode": "car", "summary": "Head north on Broadway, then east on 42nd Street", "steps": [ { "instruction": "Head north on Broadway", "distance_m": 2400, "duration_s": 420 }, { "instruction": "Turn right onto 42nd Street", "distance_m": 1800, "duration_s": 300 } ] } ``` ## Examples ### Walking directions ```bash ./scripts/route.sh '{ "start_lat": 51.5074, "start_lon": -0.1278, "end_lat": 51.5014, "end_lon": -0.1419, "mode": "foot" }' ``` ### Cycling with geometry ```bash ./scripts/route.sh '{ "start_lat": 37.7749, "start_lon": -122.4194, "end_lat": 37.8199, "end_lon": -122.4783, "mode": "bike", "include_geometry": true }' ``` ### Driving directions with imagery ```bash ./scripts/route.sh '{ "start_lat": 40.7128, "start_lon": -74.0060, "end_lat": 40.7589, "end_lon": -73.9851, "mode": "car", "include_imagery": true }' ``` ## Use Cases - **Navigation**: Get turn-by-turn directions for any transport mode - **Travel time estimation**: Know how long it takes to get between two points - **Map visualization**: Include geometry data for drawing routes on maps - **Commute planning**: Compare driving, cycling, and walking times

path: scripts/route.sh
content: #!/bin/bash
# Camino AI Route API - Point-to-Point Navigation
# Usage: ./route.sh '{"start_lat": 40.7128, "start_lon": -74.0060, "end_lat": 40.7589, "end_lon": -73.9851}'

set -e

# Check dependencies
for cmd in jq curl; do
    if ! command -v "$cmd" &> /dev/null; then
        echo "Error: '$cmd' is required but not installed" >&2
        exit 1
    fi
done

# Check if input is provided
if [ -z "$1" ]; then
    echo "Error: JSON input required" >&2
    echo "Usage: ./route.sh '{\"start_lat\": 40.7128, \"start_lon\": -74.0060, \"end_lat\": 40.7589, \"end_lon\": -73.9851}'" >&2
    exit 1
fi

INPUT="$1"

# Validate JSON
if ! echo "$INPUT" | jq empty 2>/dev/null; then
    echo "Error: Invalid JSON input" >&2
    exit 1
fi

# Check for API key
if [ -z "$CAMINO_API_KEY" ]; then
    echo "Error: CAMINO_API_KEY environment variable not set" >&2
    echo "Get your API key at https://app.getcamino.ai" >&2
    exit 1
fi

# Check for required fields
START_LAT=$(echo "$INPUT" | jq -r '.start_lat // empty')
START_LON=$(echo "$INPUT" | jq -r '.start_lon // empty')
END_LAT=$(echo "$INPUT" | jq -r '.end_lat // empty')
END_LON=$(echo "$INPUT" | jq -r '.end_lon // empty')

if [ -z "$START_LAT" ] || [ -z "$START_LON" ]; then
    echo "Error: 'start_lat' and 'start_lon' are required" >&2
    exit 1
fi

if [ -z "$END_LAT" ] || [ -z "$END_LON" ]; then
    echo "Error: 'end_lat' and 'end_lon' are required" >&2
    exit 1
fi

# Build query string from JSON input
build_query_string() {
    local params="start_lat=${START_LAT}&start_lon=${START_LON}&end_lat=${END_LAT}&end_lon=${END_LON}"

    # Optional parameters
    local mode=$(echo "$INPUT" | jq -r '.mode // empty')
    local include_geometry=$(echo "$INPUT" | jq -r '.include_geometry // empty')
    local include_imagery=$(echo "$INPUT" | jq -r '.include_imagery // empty')

    [ -n "$mode" ] && params="${params}&mode=${mode}"
    [ -n "$include_geometry" ] && params="${params}&include_geometry=${include_geometry}"
    [ -n "$include_imagery" ] && params="${params}&include_imagery=${include_imagery}"

    echo "$params"
}

QUERY_STRING=$(build_query_string)

# Make API request
curl -s -X GET \
    -H "X-[REDACTED_SECRET]" \
    -H "X-Client: claude-code-skill" \
    "https://api.getcamino.ai/route?${QUERY_STRING}" | jq .


Security scan verdicts — ClawScan: clean | static analysis:  | VirusTotal: clean | SkillSpector: suspicious (HIGH)