Open-source, self-hosted personal travel app by Giovanni Brees - keep every flight, hotel, ride and trip on one living timeline. Built with AI agents, runs on Cloudflare Workers.
# Add to your Claude Code skills
git clone https://github.com/giovannibrees/travel-roamradarGuides for using ai agents skills like travel-roamradar.
travel-roamradar is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by giovannibrees. Open-source, self-hosted personal travel app by Giovanni Brees - keep every flight, hotel, ride and trip on one living timeline. Built with AI agents, runs on Cloudflare Workers. It has 59 GitHub stars.
travel-roamradar's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/giovannibrees/travel-roamradar" and add it to your Claude Code skills directory (see the Installation section above).
travel-roamradar is primarily written in HTML. It is open-source under giovannibrees on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh travel-roamradar against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
A free, open-source, self-hosted personal travel app. Keep every flight, hotel, ride, countdown, wishlist and past trip on one living timeline. Bookings can flow in automatically from Google Calendar and Gmail. Runs as a single Cloudflare Worker on your own account. Built with AI agents by Giovanni Brees.
A single-screen travel app you host yourself, for free, on your own Cloudflare account. It pulls your trips together and (optionally) fills them in automatically from your Google Calendar and Gmail, then adds the extras: a year calendar, a "been there" world map, per-trip weather, currency, plug type, emergency numbers, and one-tap "add to any calendar."
Personal and self-hosted. Each person runs their own copy with their own data. Nobody logs into anyone else's instance; there is no shared server. Everything lives in your Cloudflare account, behind your password.
| A trip at a glance | Year overview + days away | "Been there" map |
|---|---|---|
![]() |
![]() |
![]() |
A sample “Lisbon” trip. The app pulls each destination's photo automatically.
Trips & plans
Planning & overview
At-a-glance destination intel (auto-filled per trip)
On your phone & yours alone
.ics export for Apple / Google / Outlook,
plus a private subscribe-by-URL feed of all trips that stays updated.This copies the repo into your GitHub, creates the Worker in your
Cloudflare account, and auto-creates the KV namespace it needs. (Free plan
is plenty.) When it finishes you'll get a URL like
https://travel-roamradar.<you>.workers.dev.
No keys are needed to deploy. If the form shows any variables screen, leave everything as-is and continue — Google and Claude both connect inside the app afterwards (Settings), never at deploy time.
"An unknown error occurred" under Project name? Almost always one of: a leftover repo from an earlier attempt with the same name on your GitHub (delete it or pick a new project name), the Cloudflare GitHub app not having access to the selected Git account (github.com → Settings → Applications → Cloudflare Workers & Pages → grant access), or a brand-new Cloudflare account that hasn't registered its
workers.devsubdomain yet (Cloudflare dash → Workers & Pages → set your subdomain, then retry).
Open your new URL. The first person to log in sets the email + password — so do this immediately. (Use any email; it's just your login.)
That's all you need — add a trip with dates and everything else (weather, currency, map, calendar) fills in around it. Want your bookings to import themselves? Connect Google in the Automatic import section below.
See "📱 Add it to your home screen" just below for the per-phone steps.
That's it. 🎉
The app is a PWA — once it's on your home screen it opens full-screen with its own icon, no browser bars, and works like a normal app (even offline for the parts that don't need the network).
https://travel-roamradar.<you>.workers.dev) in Safari
— this must be Safari, not Chrome, on iOS.Tip: add it on every device you use — each one stays signed in on its own, and they all sync through your Worker.
git clone https://github.com/giovannibrees/travel-roamradar && cd travel-roamradar
npm i -g wrangler && wrangler login
wrangler kv namespace create TRIPS # paste the id into wrangler.toml
wrangler deploy
The app is fully usable by hand. To make trips fill themselves in, connect these from inside the app (Settings) — no Cloudflare dashboard needed:
you+trip@yourdomain.com) and it's filed within the hour —
whatever the sender. No matching trip yet? A forwarded hotel stay or return
ticket creates the trip automatically. Filing is geography-aware (a Funchal
hotel lands in your "Madeira" trip), and even a date-less hotel message (a
door code, say) files into the right trip by destination. The in-app Help
shows your personal forward address.docs/dev.vars.example).Prefer dashboard secrets over in-app keys? Every credential can also be set via
wrangler secret put — a dashboard secret always wins over the in-app copy.
travel-app.html / public/index.html — the front end (one file, vanilla JS).worker.js — the Cloudflare Worker: serves the app, gates it behind your
password, runs the optional Google Calendar + Gmail import, and stores
everything in one KV namespace (TRIPS).wrangler.toml — Worker config: the KV binding, one full sync per day
(18:00 UTC) and an hourly email-only check — the app's Sync button runs
the full job on demand.Trip: { id, from, to, start (YYYY-MM-DD), end, label, notes, segments[] }
Everything lives in your Cloudflare account: your trips in your KV, your keys on your Worker, behind your password. The maintainer of this repo has no access to your instance or your data.
The one exception, and it's a narrow one: on first-time setup (the