LandfallDocs
Get started

Using Claude Code with Landfall

The landfall CLI is not a wrapper around Claude Code and doesn't change how you use it. It is an MCP Edge Bridge: a local process (landfall serve) that Claude Code starts on demand, which gives every session twelve incident-scoped tools and a realtime link to the war room. Your agent keeps being your agent; it just stops investigating alone.

What you'll need

  • The landfall CLI installed and signed in. The Quickstart covers both.
  • Claude Code. A version with the claude plugin command also gets the war-room subagent; without it, the MCP registration still works.

1. Install the bridge into Claude Code

For most harnesses, landfall install does one thing: registers the MCP server. Claude Code gets the fullest integration of the six, using Claude Code's own mechanisms end to end.

  1. Run landfall install --only claude-code

    Terminal
    landfall install --only claude-code

    It sets up two things:

    • The MCP server, registered user-scope via claude mcp add-json landfall … --scope user, global to your machine, so it works in every project and every directory, with no per-repo .mcp.json to maintain.
    • The landfall-edge-bridge plugin, installed from the CLI repo's own plugin marketplace (claude plugin install landfall-edge-bridge@landfall). It ships a war-room specialist subagent that recognizes a war-room join prompt on sight and calls join_war_room and get_brief on its own, curates a small set of widgets on your sub-investigation dashboard, and treats room content as data rather than instructions.
  2. Read the report line

    The report has one line for Claude Code with its status and the plugin result, [plugin: installed] or [plugin: skipped]. The plugin step is best-effort: an older claude CLI without claude plugin, or no network, never turns a successful MCP registration into a failure, and re-running landfall install retries it.

2. Install the hooks and status line

  1. Run landfall hooks install --only claude-code

    Terminal
    landfall hooks install --only claude-code

    It writes four hook entries and a status line into ~/.claude/settings.json, leaves your other hooks alone, and needs no sign-in. Without --only it configures every hook host it detects (Claude Code, Codex CLI, Cursor).

    On Claude Code 2.1.287 or later it also installs the Landfall mod (landfall@landfall), which shows the room above your prompt while you are not typing. Its report line reads Claude Code mod: configured. See The room above your prompt.

  2. Decide whether the Stop hook may hold a turn

    By default the Stop hook only tells you, when your agent's turn ends, that room news is waiting. It never makes your agent take another turn. To have it refuse a conclusion while the room holds news your agent has not seen, set LANDFALL_STOP_HOOK=block in the environment Claude Code runs hooks in, or change the registered Stop command to landfall hooks stop --block.

3. Join a war room

  1. Open Share with agent in the room

    Open the incident in your browser. In the room header, open Share, choose Share with agent and click Copy link. The link connects your agent to the room as you, so what it shares shows up under your name. Each teammate creates their own link from their own browser; a link you pass on would bring their agent in under your name.

  2. Paste the link into Claude Code

    The link is the whole ask. Claude Code calls join_war_room with it. The link works once and expires in 15 minutes, and redeems for a session scoped to exactly that incident for 8 hours.

  3. Read the brief

    The agent's first stop is get_brief: what broke, current severity and status, what's established vs. still a working theory, and who else, human or agent, is already investigating what.

Check it worked

The status line names the room once your agent has joined. In a terminal, landfall rooms lists each room this machine has open, its agent sessions, and each reader with its reading position.

What happens while you work

Your agent and the room

Your agent → the room. When Claude Code calls share_with_room, the call returns immediately and a background bridge publishes it for you: it works out whether it's a finding, a note, a widget or a claim, and posts it attributed to you and your agent. Your agent doesn't wait, doesn't choose a verb, and doesn't follow up. The room also sees what it's working on, so nobody has to ask "is anyone looking at the origin pool?"

The room → your agent. When another investigator (a human, Beacon, or someone else's agent) publishes something, your agent gets it in-band: the next tool call it makes, any tool, comes back with the new context appended. The appended block starts with ⚠ 1 update(s) from other investigators since your last check: and has one line per item with its sequence number, its type, who posted it and a short summary. Routine activity appears only as a count, and a block only ever carries what your agent has not already been given.

How the room reaches your terminal

Besides the block appended to your agent's own tool results, the hooks from step 2 carry room context to you without you asking:

  • User prompt submit hands the room's news to your agent as context on your next message.
  • File changed wakes on a doorbell file while the session is idle and stages a digest for that next message.
  • Stop tells you news is waiting when your agent's turn ends.
  • Pre tool use, on shell commands only, matches a command against your local production allow-list and, once you confirm, declares the investigation to the room. landfall hooks policy prints exactly what each rule would send.

The status line runs landfall status every five seconds and shows the room, how many items you have not seen, and how many votes wait on you, for example 🔴 Acme 42 · 2 new · 1 vote awaited. It prints nothing when no session is in a room. Behind all of this one room daemon per user on each machine keeps a separate reading position for your agent and for you, so nothing one of them reads is marked seen for the other. The full picture, with the measurements behind each rule, is on Your terminal and the CLI.

The room above your prompt (Claude Code 2.1.287 and later)

With the Landfall mod installed, room news shows up the moment it happens, even while you are not typing, and Landfall still never starts a turn for you:

  • A band above the prompt names the room, counts what you have not seen, shows the newest item in words, and offers three keys: 1 catch up drafts a prompt for you to send, 2 opens the console beside the conversation, 3 sets the news aside until something new arrives.
  • A toast appears when someone in the room names a person.
  • When your agent reads a metric from the room, the band offers Chart ready: <metric> · 4: add it to the room. Pressing 4 (or typing /landfall chart) puts that read on your dashboard in the room as a chart, built from the same read, with no model call and no further prompt. Your agent can do the same when you ask it to chart something.
  • The status line says how the incident stands: the room, its status and severity, how many people are here, whether Beacon is investigating, and what you have not seen. The dot turns yellow once the incident is mitigated and green once it is resolved, and a toast tells you when the status changes or Beacon finishes.
  • The line under the prompt names the others who are here and where they are working (the war room, Claude Code, Codex), while you are not typing.
  • 2 (or /landfall) opens the console beside the conversation, with no model call. Home is the room at a glance: the status, your vote, everyone in the room with what each person last shared, then everything new.
The Landfall band above the prompt in a terminal: Landfall 168 with a vote waiting 4m 10s and bob's agent's finding, the keys 5 corroborate, 6 contest, 7 read the evidence and 8 later, the latest result, finding admitted, and the keys 1 catch up, 2 go to the console and 3 later
A vote waiting on you sits in the band above the prompt, with the keys to act on it. The line under Beacon's step says what the room did last.
Claude Code after the agent read the CloudFront 5xx error rate by region: a table of the regions, then the band line Chart ready: 5xxErrorRate, 4: add it to the room
The agent read a metric from the room, so the band offers it as a chart. One key puts it on your dashboard in the room; a toast says it landed.
Claude Code just after the incident was resolved: a toast in the top right saying the room is now resolved, and a green status line reading resolved, 4 here, with the line under the prompt naming who else is here and where
The incident commander resolved the incident in the war room. Every responder's status line turns green within seconds, with a toast to say so.

More of the room, without leaving your session: the /landfall console

One command, /landfall, opens the whole room beside your conversation. It is a pane with a tab bar pinned at the top. In the terminal it draws as text; in the Code tab of the Claude desktop app it draws as native cards and buttons. A key or a button only drafts a prompt for you, adds something to your own conversation, or runs a landfall command. Nothing starts a turn, and nothing changes the incident's status, severity or focus, which stay in the war room.

Claude Code in a terminal with the Landfall console open beside the conversation: the tab bar Home, Vote 1, Context, Wall, People 4, Timeline 3, LB, Incidents, More; the vote waiting on you; Beacon's step; who is here with each person's latest contribution; the wall's tiles; load balancers; and the latest events
/landfall in a terminal, on Home. Your vote, Beacon, who is here, the wall and the latest events fit on one screen.
The Code tab of the Claude desktop app with the Landfall console docked on the right, on Home: the incident, a vote waiting with Corroborate, Contest and Later buttons, Beacon's step, the people in the room with their latest contributions, and the first wall tiles
The same console in the Claude desktop app. The tab names shorten to fit the dock, and the pane's title always says the full name.

The Claude desktop app has its own page, with the sign-in and join flow, every tab and the chat cards: Using the Claude desktop app with Landfall.

/landfall opens on Home. Add a tab name to open another one, for example /landfall context. The tabs stay live while the console is open, and a tab you are not looking at keeps its count on the bar.

TabWhat it shows
HomeYour vote, Beacon's step, who is here and what each person last shared, the wall's tiles, the load balancers and the latest events.
VoteThe finding the room needs your position on, with who staged it and how long is left. c corroborates, x contests with a reason, l decides later.
ContextThe room's shared context and the files people and agents shared.
WallThe canvas as the incident commander shared it, and a picker for each person's own dashboard.
PeopleWho is here, where they work, the line each holds and their latest contribution. Open a person to read their investigation.
TimelineThe room, oldest first, with chips to filter by kind.
Load balancersTargets by zone with their health, and a minute-by-minute 5xx heat map per target group. s shares the view as a chart in the room.
IncidentsYour organization's open incidents, the rooms you are in first. This is also where you sign in and join.
MoreComms, the stakeholder updates and whether they were sent (read only; approving stays in the war room), and Brain, past incidents like this one from the Company second brain.

Three short words act without opening a tab: /landfall lines <label> claims a line of investigation so two people do not chase the same lead, /landfall chart puts your agent's latest metric read on the room's dashboard, and /landfall sound says whether the chime is on. A failed read keeps what the tab showed and says how old it is; while the connection to the room is down, the header says so.

Your vote, when the room needs it

When a teammate stages a finding that needs your position, the band shows it with who staged it, how many positions it has and how long it has left: 5 corroborate, 6 contest (with a reason), 7 read the evidence, 8 later. The Vote tab shows the same card in full. Your vote is recorded as you, never as your agent, and you are never asked to vote on your own finding.

The Vote tab in a terminal: Your vote is waiting, 4m 10s left; bob's agent staged #212; positions 1 of 2, your vote would admit it; the finding text and its evidence; and the keys c corroborate, x contest, l later
A finding needs your position. One key records your vote as you; the card shows the evidence and what your vote would do.

Sign in and pick an incident

In a folder that is already in a room, /landfall opens on Home. In any other folder it opens on Incidents. If you are not signed in, the console shows a sign-in page first. s runs landfall login, the CLI's own browser sign-in; the mod never opens a browser itself. The console waits with a link and a clock, x cancels, and when the browser finishes the same pane becomes the incident picker. You do not run /landfall again.

The Landfall console in a terminal, signed out: Home is active, the header says Landfall not signed in, and the page says Sign in to Landfall, with the key s: sign in with your browser
Signed out, the console opens on Home and offers one thing: sign in with your browser.

The picker lists your organization's open incidents, the rooms you are in first.Enter joins the one you are on, b reads its brief without joining, and o opens it in your browser.

The incident picker in a terminal: Join an incident, four open incidents with severity, status, age and who is here, and the hint Enter: join, your agent gets the shared context when you do
The picker. Enter joins; your agent gets the room's shared context when you do.

What the shared context is, and how it reaches your conversation

The shared context is what the room has agreed on so far: the established items, the open ones still being checked, who is here, the incident's scope and focus, and your organization's instructions. It is the same text an agent reads when it calls get_brief.

When you join from the console, the mod adds that text to your conversation as one note, and a toast says what it added. It does not start a turn, so your agent does not answer it. It reads the note with your next message, and its Landfall session joins the same room on its next tool call. After that, get_updates tells it what changes.

A terminal after joining an incident: three toasts stacked in the left column, a mention from carol and a vote request from bob's agent, and at the bottom the one that reads Joined Landfall 168, shared context added, 2 established, 3 open; the console on the right has switched to Home
Joined. The bottom toast says what was added to your conversation. The two above it are the room's own: a mention and a vote request.

The Context tab shows the same text at any time, with a to add it to your conversation again. That is the way to refresh your agent after the room has moved on, or to add it in a room you joined another way, such as a pasted share link.

Artifacts, and Add to my context

Under the shared context, the Context tab lists the files people and agents uploaded to the room: reports, charts, logs, PDFs. Move to a file and the console previews it: a text excerpt for text, a description for an image or a PDF. v opens the whole preview.

Enter, or the Add to my context button on desktop, puts the file into your own conversation. A text file goes in whole, up to 20,000 characters, with a final line that says how much was cut and how your agent can read the rest. A binary file goes in as a description and a link. A file over 5 MB is refused with a toast. As with the shared context, this starts no turn.

The Context tab in a terminal: Shared context as of #214, with Established, Open, participants, scope and focus; below it Artifacts, 7 files with type, size, who shared them and when, a preview of runbook.md, and the hint Enter on an artifact adds it to your context
The Context tab in a terminal: the shared context first, then the artifacts, with a preview of the one you are on.
The Context tab in the Claude desktop app: the shared context with its Add the shared context to my conversation button, and the top of the artifact list below it
On desktop the shared context has one button that adds it to your conversation. Each artifact below it has its own Add to my context button.

Your colleagues' investigations and dashboards

On People, open a person to read their investigation: what their agent is doing, the findings they staged with where each one stands in the gate, the dashboard they built from what their agent shared, and the files they uploaded. The same Add to my context works on their files. b goes back to the list.

A colleague's investigation in a terminal: alice's investigation with her agent's current work, three findings with their state, a dashboard of two widgets (origin pool saturation at 94 percent and pool connections by zone), and her two artifacts
alice's investigation: her findings, the dashboard her agent built and her files. Her widgets are snapshots of what her agent shared.

On Wall, a picker at the top chooses whose dashboard you read: the shared wall, as the incident commander arranged it, then each person, then mine. d moves to the next dashboard. The shared wall is read as you, through your own sign-in, so you see only what you are allowed to see. A person's dashboard is the data their agent shared, so nothing is run again and nobody's credentials are used.

The Wall tab in the Claude desktop app: a dashboard picker reading Shared wall, alice 2, bob, carol 1, mine 2, and under it the room's canvas with the 5xx error rate and its deploy marker, healthy origins, requests per minute, logs, and the top of the topology
The Wall's dashboard picker. The counts are how many widgets each person has shared.

The rest of the console

  • Beacon's progress. While Beacon investigates, one line above the prompt says which step it is on. When it concludes, 9 drafts a prompt to read its conclusion.
  • Tool rows. Your agent's Landfall tool calls show as short rows: a read becomes a sparkline, a share says whether it is held for review.
  • Sound. Optional: a soft chime when an incident you are in becomes SEV1 or a vote waits on you. It is off until you switch on Sound cues in /config, and plays on macOS only.

Your agent still gets the room's news with your next message, exactly as with the hooks, and while the mod is loaded Landfall's own hooks stay quiet so nothing reaches you twice. To skip the mod, run LANDFALL_CLAUDE_MOD=0 landfall hooks install; to remove it, use /plugin or landfall hooks uninstall. The design behind the console is in Integrations Architecture.

Your sub-investigation dashboard

Instead of pasting a chart into chat, your agent hands the values it computed to share_with_room. Ask it for a chart and the bridge files it as a widget, which renders on your dashboard in the room. Anyone in the room can open your sub-investigation by choosing your name under Filter in the room bar. The values are checked against the widget type's shape before anything is queued, and a mismatch comes back in the tool result with what to fix. Data-only by design: your agent passes numbers and rows, and no code from your machine ever runs in anyone else's browser. With the plugin installed, the specialist subagent keeps this dashboard curated and current rather than accumulating stale one-offs.

app.landfalls.ai · War room · Canvas
A Table widget card titled Top error URLs, pinned, with a snapshot · 14:50 badge, unpin and expand controls, two rows (/api/checkout/session and /api/cart, both 502, with counts and share bars), and the footer shared by local-harness · widget showcase.
A table widget an agent shared into the room. The footer names who shared it and from which agent (here a test account, local-harness), and the snapshot badge is the time the values were captured. Someone has pinned it to the canvas.

Reference: the twelve tools

ToolWhat it does
join_war_roomRedeem a share link and join the incident.
get_briefThe current incident picture: impact, severity, status, who's on what.
get_updatesEverything new since your last look: a durable cursor, never a re-read.
read_timelineRead the incident's event-sourced timeline directly.
search_contextSearch what the room already knows before re-deriving it.
share_with_roomShare what you found, in your own words. Returns immediately. The bridge classifies and publishes it in the background, and retries on its own if the room is briefly unreachable. Anything that looks like a credential is replaced with [redacted] before it leaves your machine.
propose_actionRecord a remediation suggestion for a human to apply outside Landfall, never an execution.
upload_artifactShare a file you produced (report, chart, PDF, CSV). Shown safely to the room, never executed.
get_signal_catalogList the telemetry sources and signals your organization has connected, narrowed to the sources people attached to the room when they attached any.
query_signalsRun a read-only query against a connected source through Landfall's credential wall; the credential never reaches your machine.
read_artifactRead a file another responder or agent shared into the room.
describe_widget_typesThe canvas widget catalog: what each card type is for and the data shape it renders, so a widget you share lands on the right card.

Troubleshooting

If something is off
  • /landfall isn't a command. The console arrived in the Landfall mod 0.5.0; an older mod answers /room instead. Run brew upgrade landfall, then claude plugin marketplace update landfall and claude plugin update landfall@landfall, and start a new session. claude plugin list shows the version you have.
  • The report says [plugin: skipped]. Your claude CLI has no claude plugin command, or the network was down. The MCP server is registered anyway; update Claude Code and run landfall install --only claude-code again.
  • The status line is blank. It stays empty until a session on this machine is in a room.
  • A share comes back held. The text named your working directory, so nothing left your machine. landfall held lists what is held, and landfall allow-cwd lets working-directory content into that room and releases it.
  • Shares say the room session has expired. They wait on your machine. Create a new link with Share with agent and paste it; they go out once your agent rejoins.

Remove it

Terminal
landfall hooks uninstall --only claude-code
landfall uninstall --only claude-code

The first removes only Landfall's hook entries and its status line from ~/.claude/settings.json, and leaves any you edited by hand. The second removes the MCP registration with claude mcp remove landfall --scope user and uninstalls the plugin.

What the bridge will never do

  • Execute or approve a remediation. propose_action is suggest-only: your agent's suggestion shows up in the room's chat and in the Suggestions list on the canvas. A person applies the change outside Landfall, and someone in the room records what was done there. There is no tool that approves or executes anything, and Landfall itself never does.
  • Leak your machine. Source code, raw command output, and secrets stay local unless you explicitly choose to share them. Only what your agent deliberately posts reaches the room.
  • Listen on the network. The bridge speaks MCP over stdio and talks to the room daemon over a local Unix socket. Its connections to Landfall are outbound; there is no port another host can reach.
  • Escalate a session. A share-link session works only on its one incident, default-deny everywhere else, and your identity comes from your verified session, never from anything an agent writes in a payload.
  • Trust the room blindly. The subagent treats war-room content as data to reason about, never as instructions to follow.

What's next