Fujimod
Try your camera firmware in the browser and build Fujimod SD boot files.
Plan a trip by chatting, then turn it into a mapped, day-by-day itinerary with live hotel prices.
LifestyleTypeScript · CSSGitHub @thesysdevOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
AI trip planner that designs your trip as you chat: moodboard, day-by-day itinerary, and more. Built with OpenUI.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
An AI trip planner built with OpenUI: describe a trip and its answers are interfaces, not text. Explore ideas, turn them into a day-by-day itinerary on a map, compose a moodboard, and book with live hotel prices from trivago.
It grew out of the booking assistant cookbook in the OpenUI repo. The cookbook stays small and matches its walkthrough; this repo is the full demo that gets deployed.
Needs Node 22.13 or later.
Open http://127.0.0.1:3000.
The planner links to the others from its top-right corner, and each of them has a back arrowRead the full README ↗An AI trip planner built with OpenUI: describe a trip and its answers are interfaces, not text. Explore ideas, chat about the trip, and turn it into a day-by-day itinerary on a map with live hotel prices from trivago.
It grew out of the booking assistant cookbook in the OpenUI repo. The cookbook stays small and matches its walkthrough; this repo is the full demo that gets deployed.
Needs Node 22.13 or later.
npm install
npm run generate:apiKey # writes THESYS_API_KEY to .env.local
npm run dev
Open http://127.0.0.1:3000.
| Variable | Default | Purpose |
|---|---|---|
THESYS_API_KEY | (required) | OpenUI Gateway key, used only on the server |
OPENUI_MODEL | openai/gpt-5.5 | Model for every agent |
PEXELS_API_KEY | (none) | Optional extra photo source for the planner |
UNSPLASH_ACCESS_KEY | (none) | Optional extra photo source for the planner |
ALLOWED_ORIGINS | (none) | Extra origins the API accepts, comma-separated, e.g. a preview domain |
| URL | Experience |
|---|---|
/ → /planner | Planner, the home page. Explore ideas as visual spreads, Chat about the trip, and turn saved places into an Itinerary: a day-by-day board on a map, with weather and prices in your currency. |
The planner streams OpenUI Lang from OpenUI Gateway's Chat Completions API and renders it with its component library as it arrives, so answers write in rather than appearing at the end. The itinerary board's ask panel streams its JSON answer too, read as partial JSON while it grows. Two small calls return whole by design: the home page's weather line (checked before it's shown) and reshaping the itinerary board (the server merges the whole new plan with the current board).
Between completions the server runs app-owned tools; the main one, search_stays, calls trivago's public MCP server with the MCP SDK. The model only places hotels by id, and names, prices and booking links always come from trivago.
Other data comes from keyless public services: OpenFreeMap tiles for the map (MapLibre), Nominatim for places, Open-Meteo for weather, open.er-api.com for currency, and Wikipedia, Wikimedia Commons and Openverse for photos.
Trips, chats and itineraries live in each visitor's browser (localStorage). The routes are stateless: the planner sends the trip's earlier turns with each request, and their completions are sent with store: false.
The app has no sign-in. Every POST route accepts requests only from the app's own pages: one with no Origin header (a script, curl) is refused, so it can't spend Gateway credit from outside. There's no rate limiting, so add some before promoting the demo widely.
Set THESYS_API_KEY in the host's server environment, ideally a key used only by this demo so its usage can be watched and revoked on its own.
Before deploying publicly:
| Path | What |
|---|---|
src/app/planner/ | The planner: Explore spreads, Chat, the Itinerary board and map |
src/app/api/ | One route per agent and data source; planner/agent.ts is the shared streaming loop with search_stays |
src/lib/ | Prompts, the trivago MCP client and search_stays tool, the origin check |
src/design-system/ | Fonts and colour tokens |
public/icons-3d/ | 3D place, follow-up and weather icons (<place>-pixar.webp) |