
OpenCrab — Hunting Dashboard
Updated 2026-06-15 15:24:32 UTC · auto-refresh 30s · 12 scheduled jobs
Overview
Active watches
7
1 tracked in state
Total ticks
0
across all watches
Alerts fired
0
0.0% of ticks
Errors
0
fetch/parse/telegram failures
Dashboard up
57d ago
since restart
Hunting pipeline — trip_legs × transport_options
Every plan-member × (origin→destination) pair is a leg. Each leg accumulates transport_options across modalities (flight, train, bus, hotel, drive, rideshare, ferry, bike, walk, transfer, rental_car).
Plans (total)
218
77 with active legs
Active trip_legs
2083
7 upcoming
Baselined legs
526
25.3% of active
Transport options
1841
1555 fresh · 286 stale (15.5%)
Seen last 24h
90
fresh options observed in past day
Options w/ history
357
have ≥2 price observations (delta tracking live)
Total leg_hunts
31
per (leg, modality) tracker rows
Inventory by modality
| modality | total | fresh | stale | providers | legs covered | min / avg / max $ | last seen |
|---|
flight | 1839 | 1554 | 285 (15%) | 8 | 525 | $62 / $368 / $6501 | 24m ago |
train | 2 | 1 | 1 (50%) | 1 | 1 | $39 / $42 / $44 | 57d ago |
Top providers (options supplied)
| provider | modality | options | last seen |
|---|
duffel | flight | 1093 | 15d ago |
travelpayouts | flight | 383 | 15d ago |
fast_flights | flight | 149 | 24m ago |
kayak_by_airline | flight | 130 | 24m ago |
kayak_stop_2plus | flight | 21 | 24m ago |
kayak_stop_1 | flight | 21 | 24m ago |
kayak_cheapest | flight | 21 | 24m ago |
kayak_nonstop | flight | 21 | 24m ago |
rome2rio | train | 2 | 57d ago |
Recent hunts (leg_hunts tracker)
| leg | route | modality | provider | last hunted | last OK | hunts | last error |
|---|
| #358 | SEA → RNO | flight | kayak_stop_2plus | 24m ago | 24m ago | 731 | |
| #358 | SEA → RNO | flight | kayak_nonstop | 24m ago | 24m ago | 732 | |
| #358 | SEA → RNO | flight | kayak_by_airline | 24m ago | 24m ago | 732 | |
| #358 | SEA → RNO | flight | kayak_stop_1 | 24m ago | 24m ago | 732 | |
| #358 | SEA → RNO | flight | kayak_cheapest | 24m ago | 24m ago | 732 | |
| #358 | SEA → RNO | flight | fast_flights | 24m ago | 24m ago | 760 | |
| #318 | SEA → MIA | flight | fast_flights | 24m ago | 24m ago | 762 | |
| #318 | SEA → MIA | flight | kayak_nonstop | 24m ago | 24m ago | 749 | |
| #318 | SEA → MIA | flight | kayak_by_airline | 24m ago | 24m ago | 749 | |
| #318 | SEA → MIA | flight | kayak_stop_2plus | 24m ago | 24m ago | 749 | |
| #318 | SEA → MIA | flight | kayak_stop_1 | 24m ago | 24m ago | 749 | |
| #318 | SEA → MIA | flight | kayak_cheapest | 24m ago | 24m ago | 749 | |
| #338 | SEA → MIA | flight | fast_flights | 24m ago | 24m ago | 762 | |
| #338 | SEA → MIA | flight | kayak_nonstop | 24m ago | 24m ago | 749 | |
| #338 | SEA → MIA | flight | kayak_by_airline | 24m ago | 24m ago | 749 | |
| #338 | SEA → MIA | flight | kayak_stop_2plus | 24m ago | 24m ago | 749 | |
| #338 | SEA → MIA | flight | kayak_stop_1 | 24m ago | 24m ago | 749 | |
| #338 | SEA → MIA | flight | kayak_cheapest | 24m ago | 24m ago | 749 | |
| #338 | SEA → MIA | flight | travelpayouts | 15d ago | 15d ago | 242 | |
| #338 | SEA → MIA | flight | duffel | 15d ago | 15d ago | 456 | |
| #358 | SEA → RNO | flight | duffel | 15d ago | 15d ago | 478 | |
| #326 | MAD → MIA | flight | travelpayouts | 15d ago | 15d ago | 330 | |
| #326 | MAD → MIA | flight | duffel | 15d ago | 15d ago | 229 | |
| #350 | ORD → BOS | flight | travelpayouts | 15d ago | 15d ago | 457 | |
| #350 | ORD → BOS | flight | duffel | 15d ago | 15d ago | 502 | |
| #344 | JFK → LAS | flight | duffel | 15d ago | 15d ago | 477 | |
| #344 | JFK → LAS | flight | travelpayouts | 15d ago | 15d ago | 583 | |
| #318 | SEA → MIA | flight | travelpayouts | 15d ago | 15d ago | 238 | |
| #318 | SEA → MIA | flight | duffel | 15d ago | 15d ago | 455 | |
| #339 | JNB → MIA | flight | duffel | 15d ago | 15d ago | 473 | |
Top price drops (from price_history)
| leg | route | modality | provider | first seen $ | now $ | Δ | summary | last seen | |
|---|
| #318 | SEA → MIA | flight | duffel | — | $323 | | American Airlines · SEA→MIA · 0 stops | 15d ago | → |
| #318 | SEA → MIA | flight | kayak_stop_2plus | — | $329 | | SEA→MIA · 2 stops | 24m ago | → |
| #318 | SEA → MIA | flight | kayak_cheapest | — | $259 | | SEA→MIA | 24m ago | → |
| #318 | SEA → MIA | flight | kayak_by_airline | — | $379 | | Alaska Airlines · SEA→MIA | 24m ago | → |
| #318 | SEA → MIA | flight | fast_flights | — | $832 | | SEA→MIA | 24m ago | |
| #318 | SEA → MIA | flight | kayak_stop_1 | — | $259 | | SEA→MIA · 1 stop | 24m ago | → |
| #318 | SEA → MIA | flight | kayak_stop_1 | — | $259 | | SEA→MIA · 1 stop | 24m ago | → |
| #318 | SEA → MIA | flight | kayak_stop_2plus | — | $364 | | SEA→MIA · 2 stops | 24m ago | → |
| #318 | SEA → MIA | flight | duffel | — | $334 | | Duffel Airways · SEA→MIA · 0 stops | 15d ago | → |
| #318 | SEA → MIA | flight | kayak_stop_2plus | — | $329 | | SEA→MIA · 2 stops | 24m ago | → |
| #318 | SEA → MIA | flight | kayak_nonstop | — | $379 | | SEA→MIA · 0 stops | 24m ago | → |
| #318 | SEA → MIA | flight | kayak_nonstop | — | $379 | | SEA→MIA · 0 stops | 24m ago | → |
| #318 | SEA → MIA | flight | fast_flights | — | $409 | | SEA→MIA | 24m ago | |
| #318 | SEA → MIA | flight | duffel | — | $338 | | Frontier Airlines · SEA→MIA · 1 stop | 15d ago | → |
| #318 | SEA → MIA | flight | kayak_cheapest | — | $157 | | SEA→MIA | 24m ago | → |
| #318 | SEA → MIA | flight | kayak_stop_1 | — | $209 | | SEA→MIA · 1 stop | 24m ago | → |
| #318 | SEA → MIA | flight | kayak_nonstop | — | $379 | | SEA→MIA · 0 stops | 24m ago | → |
| #318 | SEA → MIA | flight | travelpayouts | — | $377 | | F9 · SEA→MIA · 0 stops | 15d ago | → |
| #318 | SEA → MIA | flight | fast_flights | — | $817 | | American · SEA→MIA · 2 stops | 24m ago | |
| #1 | PHX → Scottsdale AZ | train | rome2rio | — | $44 | | Direct train 3h (price drop!) | 57d ago | → |
Top plans by active legs
| plan | destination | status | members | active legs | baselined | fresh options |
|---|
| [BOT] Faroe to Fjallabak Shenanigans | — | locked | 89 | 89 | 25 | 55 |
| [BOT] Faroe to Fjords with Flair | — | locked | 87 | 87 | 18 | 43 |
| [BOT] Desert Stars & Viking Shores | — | locked | 86 | 86 | 19 | 39 |
| [BOT] 100 Friends Conquer Skeletons & Sakura | — | locked | 84 | 84 | 20 | 64 |
| [BOT] Kyrgyzstan to Azores Frenzy | — | locked | 82 | 82 | 25 | 66 |
| [BOT] Azores to Faroe Island Fiesta | — | locked | 82 | 82 | 22 | 52 |
| [BOT] Adventure for 100 | — | locked | 81 | 81 | 14 | 37 |
| [BOT] Global Village Hop Adventure | — | locked | 80 | 80 | 26 | 83 |
| [BOT] Island Hoppers in the Pacific Paradise | — | booked | 76 | 76 | 15 | 43 |
| [BOT] Saxophones & Sahara Stars | — | locked | 67 | 67 | 23 | 69 |
| [BOT] Azores Llama Adventure | — | locked | 65 | 65 | 13 | 47 |
| [BOT] Tbilisi Nights & Azores Waves | — | locked | 63 | 63 | 12 | 36 |
Monitored by OpenCrab (1)
✈️ SEA → MIA
2026-06-15 → 2026-06-22 · watch #95537
$416
baseline $416
| Threshold | 10% |
| Budget max | $500 |
| Last check | 59d ago |
| Last alert | $253 · 59d ago |
| Ticks (this watch) | 0 |
| Link | open |
All other active flight watches in DB (6) — click to expand
✈️ JFK → LAS
2026-07-10 → 2026-07-13 · watch #95539
—
baseline $123
| Threshold | 10% |
| Last check | never |
| Last alert | never |
| Ticks (this watch) | 0 |
| Link | open |
✈️ SEA → RNO
2026-07-25 → 2026-07-29 · watch #95540
—
baseline $91
| Threshold | 10% |
| Last check | never |
| Last alert | never |
| Ticks (this watch) | 0 |
| Link | open |
✈️ ORD → BOS
2026-08-05 → 2026-08-08 · watch #95541
—
baseline $123
| Threshold | 10% |
| Last check | never |
| Last alert | never |
| Ticks (this watch) | 0 |
| Link | open |
✈️ SEA → MIA
2026-06-15 → 2026-06-22 · watch #95542
—
baseline $259
| Threshold | 10% |
| Budget max | $2000 |
| Last check | never |
| Last alert | never |
| Ticks (this watch) | 0 |
| Link | open |
✈️ MAD → MIA
2026-06-15 → 2026-06-22 · watch #95543
—
baseline $502
| Threshold | 10% |
| Budget max | $2000 |
| Last check | never |
| Last alert | never |
| Ticks (this watch) | 0 |
| Link | open |
✈️ JNB → MIA
2026-06-15 → 2026-06-22 · watch #95544
—
baseline $892
| Threshold | 10% |
| Budget max | $2000 |
| Last check | never |
| Last alert | never |
| Ticks (this watch) | 0 |
| Link | open |
Status breakdown
Recent ticks (newest first)
No ticks logged yet. Cron fires every 5 min; give it a moment.
System
Kernel
5.15.0-176-generic (x86_64)
CPU model
AMD EPYC Processor (with IBPB)
Load avg (1/5/15m)
13.47 · 12.71 · 12.25
Disk (home)
15791M used / 58439M free of 74245M (22%)
Public IP
89.117.22.24:8080
Scheduled jobs — crontab (12)
| Label | Schedule | Command |
|---|
| price-watch (moved env path from pincer/ to opencrab/) | */5 * * * * | set -a; . /home/openclaw/.openclaw/opencrab/opencrab.env; . /home/openclaw/.openclaw/lib/openclaw_shared.env; set +a; PINCER_STUB=1 /home/openclaw/.openclaw/skills/price-drop-watch/venv/bin/python /home/openclaw/.openclaw/skills/price-drop-… |
| OpenCrab daily plan-state digest — 7am PT = 14:00 UTC | 0 14 * * * | /bin/bash -lc "export PATH=$HOME/.local/bin:$PATH; set -a; . /home/openclaw/.openclaw/opencrab/opencrab.env; . /home/openclaw/.openclaw/lib/openclaw_shared.env; set +a; /home/openclaw/.openclaw/skills/price-drop-watch/venv/bin/python /home/… |
| OpenCrab dispatcher — fast cadence (fresh deals) | */30 * * * * | set -a; . /home/openclaw/.openclaw/opencrab/opencrab.env; . /home/openclaw/.openclaw/lib/openclaw_shared.env; set +a; cd /home/openclaw/.openclaw/skills/daily-plan-state/scripts && /home/openclaw/.openclaw/skills/price-drop-watch/venv/bin/p… |
| OpenCrab dispatcher — daily sweep (all legs) | 30 14 * * * | set -a; . /home/openclaw/.openclaw/opencrab/opencrab.env; . /home/openclaw/.openclaw/lib/openclaw_shared.env; set +a; cd /home/openclaw/.openclaw/skills/daily-plan-state/scripts && /home/openclaw/.openclaw/skills/price-drop-watch/venv/bin/p… |
| findmejobs (inroads tenant) | 17 * * * * | cd /home/openclaw/.openclaw/skills/findmejobs-crawler && set -a; . ./.env; . /home/openclaw/.openclaw/lib/openclaw_shared.env; set +a; /home/openclaw/.openclaw/skills/findmejobs-crawler/venv/bin/python crawl.py --phase=discovery >> /home/op… |
| (unlabeled) | 0 */2 * * * | cd /home/openclaw/.openclaw/skills/findmejobs-crawler && set -a; . ./.env; . /home/openclaw/.openclaw/lib/openclaw_shared.env; set +a; /home/openclaw/.openclaw/skills/findmejobs-crawler/venv/bin/python crawl.py --phase=deep --batch=800 >> /… |
| flight-hunter — every 15 min, pulls jobs from crab.travel, scrapes, posts back | */15 * * * * | /home/openclaw/.openclaw/skills/flight-hunter/scripts/trigger.sh 30 >/dev/null 2>&1 |
| RETIRED 2026-06-04 (consolidated into crab.travel daily heartbeat; endpoint is a no-op) 0 14 * * * curl -s -X POST -H "Authorization: Bearer $(cat /home/openclaw/.openclaw/opencrab/bearer_token)" -H "Content-Type: application/json" -d "{}" https://crab.travel/api/opencrab/flight-hunter/digest >> /home/openclaw/.openclaw/opencrab/flight_hunter.log 2>&1 | */30 * * * * | /home/openclaw/.openclaw/skills/watch-scanner/cron-wrapper.sh >> /home/openclaw/.openclaw/opencrab/watch-scanner.log 2>&1 |
| Spread to avoid thundering-herd: reddit at :00, TUG at :15, synth at :45 | 0 0,6,12,18 * * * | /home/openclaw/.openclaw/skills/area-context/scripts/trigger_reddit.sh |
| (unlabeled) | 15 0,6,12,18 * * * | /home/openclaw/.openclaw/skills/area-context/scripts/trigger_tug.sh |
| (unlabeled) | 45 0,6,12,18 * * * | /home/openclaw/.openclaw/skills/area-context/scripts/trigger_synth.sh |
| llm-hunter — daily provider discovery for kumori free-LLM holding queue (added 2026-05-14) | 0 12 * * * | cd ~/.openclaw/skills/llm-hunter && ./venv/bin/python hunt.py >> ~/.openclaw/logs/llm-hunter.log 2>&1 |
Raw log tail (last 15)
{"summary": {"checked": 0, "alerted": 0, "errors": 0, "ts": "2026-06-15T14:10:03.029648+00:00"}}
{"summary": {"checked": 0, "alerted": 0, "errors": 0, "ts": "2026-06-15T14:15:02.945952+00:00"}}
{"summary": {"checked": 0, "alerted": 0, "errors": 0, "ts": "2026-06-15T14:20:31.515001+00:00"}}
{"summary": {"checked": 0, "alerted": 0, "errors": 0, "ts": "2026-06-15T14:25:03.088307+00:00"}}
{"summary": {"checked": 0, "alerted": 0, "errors": 0, "ts": "2026-06-15T14:30:02.571499+00:00"}}
{"summary": {"checked": 0, "alerted": 0, "errors": 0, "ts": "2026-06-15T14:35:02.892911+00:00"}}
{"summary": {"checked": 0, "alerted": 0, "errors": 0, "ts": "2026-06-15T14:40:03.111136+00:00"}}
{"summary": {"checked": 0, "alerted": 0, "errors": 0, "ts": "2026-06-15T14:45:02.957865+00:00"}}
{"summary": {"checked": 0, "alerted": 0, "errors": 0, "ts": "2026-06-15T14:50:05.569126+00:00"}}
{"summary": {"checked": 0, "alerted": 0, "errors": 0, "ts": "2026-06-15T14:55:03.769152+00:00"}}
{"summary": {"checked": 0, "alerted": 0, "errors": 0, "ts": "2026-06-15T15:00:02.934811+00:00"}}
{"summary": {"checked": 0, "alerted": 0, "errors": 0, "ts": "2026-06-15T15:05:04.729873+00:00"}}
{"summary": {"checked": 0, "alerted": 0, "errors": 0, "ts": "2026-06-15T15:10:02.490536+00:00"}}
{"summary": {"checked": 0, "alerted": 0, "errors": 0, "ts": "2026-06-15T15:15:04.437670+00:00"}}
{"summary": {"checked": 0, "alerted": 0, "errors": 0, "ts": "2026-06-15T15:20:32.982691+00:00"}}🦀 OpenCrab on Contabo VPS 10 · OpenClaw 2026.4.15 · reusable agent host — see ~/.openclaw/MANIFEST.md + manifest.json