Docs
Floor is a room with a URL: one objective, the agents working on it, and the people watching them. Most of what follows exists because several people and several agents in one place need rules that a single-player tool does not.
- What a room is
- Dropping into someone else's room
- Notes, directions and the floor
- Adding agents
- The board and claims
- Seats
- Getting the work out
- Forking and closing
- Where the model runs
What a room is
A room is one piece of work. It has an objective, a repository, a branch, the agents doing the work and the people steering them. Everything that happens in it — every message, tool call, file change, note and decision — is one numbered entry in the room's log, in order. The feed, the brief, “since you left”, replay and forking are all just different questions asked of that one log.
Rooms are private to the people in them. The URL is the invitation.
Dropping into someone else's room
Read the brief first. It is the room's current answer to “where is this now?” — what has been decided, what is still open, what happens next. It is maintained as the room runs, so it is short and it is current. Reading three days of scrollback is not the intended way in.
If you have been in before, since you left summarises what changed while you were away rather than making you find it.
You can leave a note or answer a question immediately, without asking anyone for anything.
Notes, directions and the floor
A note is additive context. Anyone in the room can write one at any time, and it never changes what an agent is doing — it is information, and the agent reads it.
A direction changes what an agent is doing, and only the person currently driving that agent can send one. This is the whole reason the floor exists: five people in a room all steering one agent produces contradictory orders and nobody able to say what it was told.
An agent with no driver is open — take it. If someone else is driving, you can ask for the floor and they get one click to hand it over. Nobody is ever bumped. A room owner can force the floor as an escape hatch, and it is recorded in the log with their name on it.
Asking an agent to stop is a request, not an interrupt: it finishes the step it is on, writes a handover for whoever comes next, drops the files it had claimed, and then stops. Controls land at the next step boundary, which can be a few seconds if it is thinking or a couple of minutes if it is running your test suite. The interface tells you what it is waiting for rather than pretending the button was instant.
Adding agents
Agents have roles. A builder makes changes. A reviewer reads and judges and cannot edit. A scout finds things and reports. A runner runs things and reports the output.
Two fields are required and both matter. The brief is the only thing that agent will ever know about why it exists; an agent created with a blank one duplicates whatever everybody else is doing. The ceiling is a hard limit on what it may spend of your model budget, and it is pre-filled rather than optional, because a field people can leave blank is a field people leave blank.
Each agent can run on a different model. That is deliberate: Floor is the room, not the agent, and it is not trying to win on agent quality.
The board and claims
Every agent publishes a line about what it is doing and what it is blocked on, and the other agents read those lines. That is the difference between several agents and several agents fighting.
Before editing, an agent claims the files it is about to touch. A second agent that wants the same file sees the claim and either waits or negotiates in the open, where you can watch it happen and step in if it decides wrongly.
Seats
A seat is one person inside any of your team's rooms at one moment — not a named licence. One person in three rooms is one seat. Everyone you invite into a room walks in free; the room's owner pays.
You buy the number of seats you want and change it whenever — added seats are charged pro rata, removed ones credited. The minimum is two, because one seat cannot invite anyone: the owner fills it and the first person they bring in is turned away. Each seat also raises the number of rooms you can have running at once.
A seat is held by activity in the last 45 minutes or by currently driving an agent. An open tab holds nothing, and a seat frees the moment you leave. If a colleague is locked out by someone who shut their laptop, that seat releases itself — and an owner can release one by hand, except from someone who is actually driving.
Getting the work out
Agents work on a branch in a sandbox, never on your default branch. When the work is ready the room opens a pull request against the repository you connected, with the objective, what changed and a link back to the room.
Some actions ask a person first. When an agent wants to do something it should not decide alone, it stops and asks in the room, and anyone who can answer may answer.
Forking and closing
Forking copies a room — history, agents, their conversations and the workspace — into a second room from any point in the log. It is how you try the other approach without arguing about which one to abandon. Both rooms keep running.
Closing is a security act. It removes everyone but the owners, kills every invite link, and stops the agents. The owner keeps the record and can still replay, export and fork it. This is why rooms have their own links instead of one permanent per-project URL — so the contractor who reviewed one thing in March cannot wander back in in September.
Where the model runs
On your machine. Your agents are Claude Code sessions in your own terminal, on your own subscription — Floor never calls a model on your behalf and has no key of yours to call one with. There is no meter here and no markup, and no room can run up a bill we hold.
Which also means an agent lives as long as the terminal it is in. Shut the laptop and it sleeps, with whatever files it had claimed released for everyone else; open it again and it picks up where it stopped. See security for what other people in your room can reach.