Reading the repo
Reading the repo
Assembly instructions
See how your app actually fits together. An interactive, plain-English map of your codebase, drawn by Claude or Codex.
Saved setup from 3 h ago
Will it work on macOS?
docs/getting-started.mdPrefer to watch? The walkthrough video covers installing Floorplan and touring a finished map.
Floorplan works in Claude Code and in Codex. Making and using a map is the same in both; only installing differs. This guide shows Claude Code, and Floorplan in Codex has the Codex steps.
node --version.In Codex, open Plugins → Add a marketplace, enter haydenschmitty/floorplan, and install Floorplan. Details in Floorplan in Codex.
In Claude Code, run these once, in any terminal:
claude plugin marketplace add haydenschmitty/floorplan
claude plugin install floorplan@floorplan
The first command adds this repository as a plugin source. The second installs Floorplan for all your projects. The desktop app and the CLI share the same settings, so it shows up in both.
Start a new session afterwards. Plugins load when a session starts.
In the Claude desktop app you can also browse plugins with the + button next to the prompt box (Add plugins, or Plugins → Browse plugins). It lists plugins from marketplaces you've already added.
Open your project. In the Claude desktop app's Code tab, choose your project's folder in the row under the prompt box before sending your first message. In the Codex app, open the project's folder. In a terminal, run claude or codex from the project folder.
If your app is split across several repos (say web/ and api/ side by side), open the folder that contains them all. Floorplan maps them together and connects the requests between them.
Ask for it:
Make me a floorplan of this app.
In Claude Code you can also pick floorplan from the / menu, or type /floorplan:floorplan. In Codex, type $floorplan.
Let it work. This is what happens:
A small app takes a few minutes, a large one longer. You may be asked to let it run Floorplan's scripts (node …); allow them. Codex also asks to start the map's server outside its sandbox, so the map keeps running and its Ask bar can reach Codex.
Look around. The map opens by itself, in the app's browser pane or your web browser. A one-minute Start here tour runs the first time. The reply sums up how your app fits together and points out anything serious the Health check found.
See Using the map for everything you can do on it.
After you, or your AI, have worked on the code:
Update the floorplan.
Floorplan re-scans and compares with the last map. Moved files keep their descriptions, deleted ones disappear, and only what's new or what changed in purpose is rewritten. A map already open in your browser reloads itself, and the cards that just changed light up green under Recent work.
Everything above is about Floorplan's main job: mapping code that already exists. It has a second use, for when there's no code yet: drawing a blueprint of an app from a PRD, a spec or a description of what you want to build. Open the folder you'll build it in (an empty one is fine), share the document, and ask:
Here's my PRD. Make me a floorplan of what we'd need to build.
You get a blueprint: the same map, with every part, file, endpoint and screen the app would need, how they connect, and the outside services they rely on. Its cards have dashed outlines so you can tell it's a plan. The reply names the stack Claude or Codex chose, what it assumed, and the questions your PRD leaves open.
On the map:
Once the code exists, ask Claude or Codex to "map the real code now", and the blueprint becomes a normal map. See Blueprints for how it works.
The map is a folder in your project. Either:
node floorplan/serve.mjs
serves it at http://127.0.0.1:4378 with a working Ask bar, or double-click floorplan/index.html, where everything works except asking questions.
When the map is opened for you, the server runs in the background and stops by itself two hours after you close the last tab. To stop it sooner:
node floorplan/serve.mjs --stop
For Codex, see Update or remove it.
In Claude Code, plugins installed from GitHub don't update automatically unless you turn that on. To get the latest version:
claude plugin update floorplan@floorplan
Or turn on automatic updates: in a Claude Code session, run /plugin, open Marketplaces, and choose Enable auto-update. Either way, updates apply in your next session. See the changelog for what changed.
claude plugin uninstall floorplan@floorplan
In Codex, see Update or remove it. Then delete the floorplan/ folder (and, if you used Claude Code, the Floorplan section of CLAUDE.local.md) from any project you used it in.
Then run bash setup.sh. It stops at the first error and is safe to run again. Servers and tests aren't started; it lists them at the end. Read it first.
Needs Git: xcode-select --install
git clone https://github.com/haydenschmitty/floorplan.git cd floorplan
Node.js >=18
# needs nvm: brew install nvm (or https://github.com/nvm-sh/nvm) nvm install --lts
npm install
npm test
Open your project in Claude Code or Codex. For a frontend and backend in separate repos, open the folder that holds both.
Ask:
Make me a floorplan of this app.
(In Codex you can also type $floorplan.)
Explore. The map opens on its own, starting with a short tour.
When you've done more work, ask:
Update the floorplan.
Only what changed is re-read, and what you just worked on lights up under Recent work.
No code yet? Floorplan can plan an app from a PRD or spec instead. Share the document and ask:
Here's my PRD. Make me a floorplan of what we'd need to build.
You get a blueprint of the planned system, clearly marked as a plan.
| Ask Claude Code or Codex | Ask the map | |---|---| | "Make me a floorplan of this app" | "What happens when someone places an order?" | | "Update the floorplan" | "Where do we talk to Stripe?" | | "Fix the important issues from the floorplan's Health check" | "If I change the users table, what breaks?" | | "Add a flow showing how a new user signs up" | "Which files handle login?" | | "Rewrite the floorplan for developers" | "What did we change for refunds?" | | "Export the floorplan so I can send it to the team" | |
No reports for macOS yet.
Opens a chat with this manual already filled in, for macOS. It uses your own account; gitmanual sends nothing.