CLI 0.4.3

Visual feedback for coding agents · private localhost review

Give your coding agent visual feedback on localhost.

Shiproom turns the web app running on your machine into a private reviewer link. You or a reviewer point, draw, and comment in an ordinary browser; the same coding agent gets the route, selected element, screenshot, viewport, and nearby errors when captured.

Read the prompt it copies
Set up a Shiproom review link for this app so I can share it.

Do all of it yourself, end to end:

1. Start the app locally if it is not already running.
2. In the project folder, run: npx shiproom@latest live
3. If it asks which port, use the one the app is running on.
4. The first run opens a browser sign-in. Tell me exactly what
   to approve, wait for me, then carry on.
5. Wait until the session is live and the private review link
   has been printed. Do not guess the link.
6. Reply with that link on its own line, and confirm it opens
   in any browser with no account and no install.
7. Keep the session running until I tell you to stop it.
8. Do not change any of my code while the review is open.

If anything fails, tell me what happened in plain language and
what you need from me.

CLI 0.4.3Free to use.No terminal knowledge needed. Reviewers need no account or install. Early-access limits apply.

Your coding agent~/meridian-studio
  1. You

    Set up a Shiproom review link for this app so I can share it.

  2. Agent
    • Started the app on port 3000
    • Ran Shiproom in the project folder
    • Signed you in and waited for the session

    Your review link is ready.

    Send it to anyone. It opens in an ordinary browser, with no account and nothing to install.

An illustration of the exchange, using an invented project. The link is not a working address.

What your reviewer gets when they open that link

Product demonstration step
meridian-studio.shiproom.live/checkoutLive
Meridian Studio

Checkout

Studio plan · annual
$384.00
Additional seats (3)
$144.00
Tax (estimated)
$42.24
Total due today$570.24
Pay now

Payments are processed by our provider.

Report an issue2 marks
BrokenVisualConfusing

Pay now does nothing on the second attempt. No error, no spinner.

  • 1Pay now button
  • 2Tax (estimated) row
Send to Shiproom
Attached automatically
Route
/checkout
Title
Checkout — Meridian
Element
button#pay-now
Name
“Pay now”
Viewport
1440 × 900
Browser
Chrome 141 · macOS
Screenshot
captured · webp
Marks
pin, rectangle
Failed requestPOST /api/checkout/session 500
task-7f3ac812.mdMarkdown
# Broken behaviour — Checkout

### Captured facts

- Reference: 7f3ac812
- Page: /checkout
- Element: `button#pay-now` — "Pay now"
- Browser: Chrome 141 on macOS
- Viewport: 1440 × 900

#### Failed requests

- POST /api/checkout/session — 500

### Requested action

Fix the behaviour reported at /checkout.
Only change behaviour related to this
report.

A demonstration using an invented application. Shiproom prepares the task — a developer or coding agent makes the change.

How it works

Build, point, fix, review again.

The coding agent builds, runs, tests, and edits the code. You stay in control of the visual judgment. Shiproom opens the private review surface, records what you point at, and transports the evidence back to the agent. Then you inspect the result and repeat if needed.

01

Ask your agent

Copy the prompt and paste it into Claude Code, Codex or another coding agent, in the project you are already working in. You do not have to know what any of it means, and you do not have to type a command yourself.

  • Starts your app if it is not already running
  • Opens Shiproom and walks you through the one-time sign-in
  • Waits until the review session is actually live
  • Replies with the private reviewer link
  • Keeps the review open until you say stop

This prompt uses ordinary shell access, not a vendor integration. Shiproom has no partnership with or endorsement from coding-agent vendors.

Paste into Claude Code or CodexPlain text
Set up a Shiproom review link for this app so I can share it.

Do all of it yourself, end to end:

1. Start the app locally if it is not already running.
2. In the project folder, run: npx shiproom@latest live
3. If it asks which port, use the one the app is running on.
4. The first run opens a browser sign-in. Tell me exactly what
   to approve, wait for me, then carry on.
5. Wait until the session is live and the private review link
   has been printed. Do not guess the link.
6. Reply with that link on its own line, and confirm it opens
   in any browser with no account and no install.
7. Keep the session running until I tell you to stop it.
8. Do not change any of my code while the review is open.

If anything fails, tell me what happened in plain language and
what you need from me.
  1. 02

    Get the reviewer link back

    Your agent reports when the review session is live and replies with a private link to the app running on your own machine.

    Review linkyour-project.shiproom.live/reviewAccessInvite only, until you change it

    Live while your app and the session are running. It is not permanent hosting.

  2. 03

    Your reviewer marks the real interface

    They open the link in an ordinary browser and point, draw, select an element and write what they mean. No account, no extension, nothing to install.

    PinRectangleArrowFreehandText
    Each mark is filed as
    • Broken
    • Visual
    • Usability
    • Content
    • Performance
    • Accessibility
    • Suggestion
  3. 04

    The same agent implements; you review again

    Send deterministic Markdown or JSON back to the coding agent working in the repository, or let it fetch the packet through MCP. The agent changes and tests the code; you inspect the running UI again. Shiproom itself never edits the repository.

    feedback.mdfeedback.json
    Every export contains
    • Captured facts
    • Reviewer report
    • Selected elements
    • Visual annotations
    • Failed requests
    • Requested action

Capture the scene

“The button feels broken” is not a visual bug report.

Your reviewer is describing something they can see and you cannot. Someone has to translate it into a route, an element and a browser — and today that someone is you, afterwards, without the screen in front of you. Contextual website feedback should arrive with the scene still attached.

Without itA message, then an interrogation

Priya 10:42

the checkout button feels broken now?

You 10:44

Which page were you on?

Desktop or phone?

Did anything show up in the console?

The evidence existed for a moment, in a browser you were not looking at. Everything after that is reconstruction — by you, or by an agent working from your reconstruction.

With ShiproomThe same sentence, with the scene attached

7f3ac812Broken behaviour

“the checkout button feels broken now?”

Route
/checkout
Element
button#pay-now
Name
“Pay now”
Viewport
1440 × 900
Browser
Chrome 141 · macOS
Screenshot
captured, with 2 marks
Failed request, 3s beforePOST /api/checkout/session 500

Same reviewer, same sentence. The difference is that the browser wrote down what it saw while it was still true — so the next question you ask is about the fix.

The context packet

Every report carries the scene with it.

A screenshot tool gives you a picture. Shiproom gives you the picture plus the state of the page that produced it, in a shape a person or a coding agent can act on directly. Your reviewer writes one sentence; this is what travels with it.

From the page

  • Route and page title
  • Selected element: tag, id, classes
  • Accessible name and ARIA role
  • CSS path and selector strategy
  • Element position and size

From the browser

  • Screenshot of what they saw
  • Viewport size and device type
  • Browser and operating system
  • Failed HTTP requests near the report
  • JavaScript errors near the report
  • Timestamp

From the reviewer

  • Category and written comment
  • Pin, rectangle, arrow, freehand or text
  • Mark geometry, normalised to the page
  • Who submitted it

Not captured

  • Request or response bodies
  • Headers, cookies or authorization values
  • Your source code or repository
  • Anything typed into a password field
Export formatDeterministic export
# Broken behaviour — Checkout

Project: Meridian Studio
Project URL: https://meridian-studio.shiproom.live

### Captured facts

- Reference: 7f3ac812
- Category: Broken behaviour
- Reviewer: Priya N.
- Submitted: 2026-03-11T10:42:19.204Z
- Page: /checkout — "Checkout — Meridian"
- Browser: Chrome 141 on macOS
- Viewport: 1440 × 900

#### Reviewer report

the checkout button feels broken now?

#### Selected element

- `button#pay-now` — "Pay now"
- Selector strategy: id

#### Visual annotations

##### 1. pin
- Note: does nothing on the second attempt

##### 2. rectangle
- Note: is this tax figure right?

#### Failed requests near submission

- POST /api/checkout/session — 500 — 1240ms

#### Evidence

- Screenshot: captured

### Requested action

Investigate and fix the behaviour reported at /checkout.
Only change behaviour related to this report — do not
refactor, restyle, or alter unrelated functionality.

### Verification checklist

- [ ] The reported behaviour is reproduced at /checkout
- [ ] The fix resolves it in the same browser and viewport
- [ ] No unrelated behaviour changed
{
  "schemaVersion": 3,
  "generatedAt": "2026-03-11T10:44:02.000Z",
  "feedback": [
    {
      "browser": "Chrome 141",
      "category": "broken",
      "comment": "the checkout button feels broken now?",
      "failedRequests": [
        {
          "classification": "http_error",
          "durationMs": 1240,
          "method": "POST",
          "path": "/api/checkout/session",
          "status": 500
        }
      ],
      "os": "macOS",
      "pagePath": "/checkout",
      "pageTitle": "Checkout — Meridian",
      "reference": "7f3ac812",
      "selectedElements": [
        {
          "accessibleName": "Pay now",
          "cssPath": "main > form#checkout > button#pay-now",
          "id": "pay-now",
          "selectorStrategy": "id",
          "tag": "button"
        }
      ],
      "status": "new",
      "viewportHeight": 900,
      "viewportWidth": 1440
    }
  ]
}

Illustrative export from the demonstration above. Keys are sorted and the document is deterministic, so the same report always produces the same bytes.

Hand the evidence back

Review the evidence. Decide what happens next.

Feedback arrives in one place with its category, route and status. Read it in the console, set where it stands, then export exactly what the next person — or the next tool — needs. Shiproom prepares the evidence; a person or a coding agent makes the change.

shiproom feedback list3 items
An illustrative feedback inbox showing the reference, status, category, route and comment for three example reports.
IDStatusCategoryRouteComment
fb-0047newbroken/checkoutThe checkout action did not complete after the second attempt
fb-0046triagedvisual/pricingAnnual toggle overlaps the plan name below 400px
fb-0045resolvedcontent/Hero still says “beta” in the footer note

Illustrative reports, not real customer feedback.

Status you set

  • new
  • triaged
  • in_progress
  • resolved
  • archived

Priority runs alongside it: low, medium, high, critical. Shiproom records what you decide; it does not decide for you.

Export when you are ready

  • shiproom feedback export fb-0047
  • shiproom feedback export fb-0047 --format json

The same report always produces the same bytes: keys sorted, no timestamps beyond the ones captured. Paste it into an editor, a tracker, or straight back into the coding agent that built the thing.

For agents that prefer a direct connection

MCP adapter available

Most people paste the export. If you would rather your agent read the feedback itself, compatible coding agents can inspect the packet through the published @shiproom/mcp adapter. Run npx -y @shiproom/mcp with a personal token. Production-verified with Codex CLI. This is an optional extra, not the way most reviews work.

Either way the boundary is the same: Shiproom assembles the evidence and hands it over. It does not read your source code and it does not change your code. MCP documentation.

What changes

  • 01

    Nothing to set up by hand

    The agent that built the app runs the setup. You paste one prompt, approve one sign-in, and get a link back — no tunnel to configure, no deploy, no hosting to buy.

  • 02

    Nothing for your reviewer to learn

    They click a link and comment on the screen in front of them, the way they would leave a note on a document. No account, no install, no explanation from you first.

  • 03

    Feedback you can act on the same day

    The route, the element, the viewport and the browser arrive attached to the comment. The first question you ask is about the fix, not about the setup.

A focused layer, not another agent

Use the coding agent subscription you already have.

For reviewing an already-running UI and communicating exact changes back to a coding agent, many solo builders and small teams may not need another AI visual-editing subscription. Shiproom is currently the free visual feedback layer for that job.

  • Use Shiproom for the local-to-agent loop

    The UI is running on a builder’s machine. A client, teammate, or founder needs a browser-only review link. The output should return to the coding agent as Markdown, JSON, or a feedback packet over MCP.

  • Use a broad feedback suite for ongoing operations

    You need a Kanban task board, client deadlines, white labelling, video and file review, numerous project-management integrations, or a feedback programme across many deployed sites.

  • Keep design expertise where it matters

    Shiproom records human feedback; it does not conduct user research, create a design system, audit accessibility, generate critiques, or decide what good design is. It transports the evidence for the person or agent doing the work.

Use cases

Someone needs to look at it before it is finished.

Shiproom is for the moment after the software works and before anyone else has seen it. It does not matter whether you wrote the code, prompted it, or commissioned it.

Founder

Showing a prototype to an advisor

You built the first version with a coding agent this week. Send one link and let them try the real thing, instead of talking them through a screen recording.

Freelancer

Collecting feedback from a client

The client opens the link, marks the two things they want changed, and writes why. You get their words with the page state attached, and no round of “which screen?”.

Agency

Reviewing work before it goes to the room

The team walks the build the day before a presentation, marking anything that would be noticed. Everything filed against the route and element it appeared on.

Product manager

Testing a flow with stakeholders

Put the working flow in front of the people who will judge it, before it ships. Their reactions land as reports with a screenshot, not as replies in three threads.

Developer

Reproducing an interface problem with a teammate

They see it on their machine and you do not. Have them mark it on your running app: the browser, the viewport, the failed request and the element all arrive with it.

Markdown and JSON exports work with any coding agent that reads text. Codex CLI is the MCP client directly verified end to end; other stdio-compatible clients can use the documented configuration. Shiproom has no partnership with, or endorsement from, their vendors, and is currently free to use.

If you would rather run it yourself

One command opens the room.

Nothing above requires this section. It is the same thing your coding agent does, written out: start your app with npm run dev as usual, then run Shiproom in that folder. It finds the local server, signs you in, resolves the project for that folder, and prints the private review link you share for visual website feedback.

npx shiproom@latest live
shiproom 0.4.3Node 20+macOS · Linux · Windows

Prefer it installed? npm install --global shiproom

Sharing localhost for review is the whole job. There is nothing to deploy and no host to buy.

Shiproom CLI showing a live private review session with the review link prominent. A deterministic Shiproom CLI capture generated from production presentation components. shiproom Shiproom is live Review https://scarlet-wren.shiproom.live/?invite=demo-review-link Preview https://scarlet-wren.shiproom.live Local http://127.0.0.1:4321 Project Shiproom Homepage Feedback 0 received Activity 0 invite opens · 0 feedback items Uptime 1m 13s Share the review link with anyone you want feedback from. Press ? for shortcuts · Ctrl+C to stop
Shiproom CLI showing a live private review session with the review link prominent. At a narrow terminal width. A deterministic Shiproom CLI capture generated from production presentation components. ◆ shiproom ✓ Shiproom is live Review https://scarlet-wren.shiproom.live/?in vite=demo-review-link Preview https://scarlet-wren.shiproo m.live Local http://127.0.0.1:4321 Project Shiproom Homepage Feedback 0 received Activity 0 invite opens · 0 feedback items Uptime 1m 13s Share the review link with anyone you want feedback from. Press ? for shortcuts · Ctrl+C to stop

What the session does

  1. Finds the portPrefers --port, then PORT, then a responding local listener, then a common development port, then asks. Loopback only.
  2. Signs you inSecure browser sign-in on first use. Nothing to configure by hand.
  3. Resolves the projectCreates or reuses the project linked to the current folder, from the folder path alone.
  4. Publishes the linkThe review link becomes prominent only once the review path has registered successfully, so a link you can see is a link that works.

Ctrl+C ends the session without deleting the project, its invites or its feedback.

The commands you will actually use

  • shiproom liveStart a private review session
  • shiproom statusSign-in, project and session state
  • shiproom feedback listSee what reviewers sent
  • shiproom feedback export <ref>Deterministic Markdown, or JSON
  • shiproom invites revoke <id>Cut off a shared link
  • shiproom stopEnd the session cleanly

Trust and limits

Share the application, not the repository.

Before you point anything at the app you have been building, the fair question is what Shiproom can see and what it cannot. This is the whole answer, including the parts that are limits rather than features — what the product does today, not a roadmap or a certification.

  • Never reads your source

    Shiproom does not read your source code, your Git metadata or your package manifest. It resolves a project from the folder path alone, and it never inspects what is inside.

  • Never writes into your project

    No config file, no lockfile entry, no directory. Local session state lives only in Shiproom's own configuration directory, outside your application. Shiproom does not change your code: it prepares the evidence, and you or your agent make the change.

  • Your reviewer needs nothing

    No Shiproom account, no sign-up, no browser extension, no download. They open the link you send them in whatever browser they already use, and start marking the page.

  • Private by default

    A new project is invite-only. Only someone holding an invite link can open the reviewer URL. Making a project public is a deliberate action the CLI asks you to confirm.

  • Invite links you control

    Create an invite per person or per group, see how many times each was opened, and revoke or rotate any of them. Revoking ends that link immediately.

  • Live only while you are

    The reviewer URL serves your application only while your session is running and the app is reachable. Stop the session, or close the laptop, and reviewers see an offline page. This is a review session, not permanent hosting, and it does not replace deploying your app.

  • Bounded technical capture

    Failed requests are recorded as method, sanitised path, status and duration. Request and response bodies, headers, cookies and authorization values are never collected, and sensitive query values are redacted before anything is stored.

  • Screenshots show what is on screen

    A report can include a screenshot of the page as the reviewer saw it. Treat a review link the way you would treat a screen share, and check what is on screen before you invite someone.

  • Tokens are shown once

    Personal MCP tokens are displayed a single time and stored only as one-way hashes. They can be revoked from the CLI at any moment.

More detail in the privacy overview and the security overview. Questions that are not answered there can go to [email protected].

Questions

Answers, including the unflattering ones.

If something is not built yet, it says so here rather than in a footnote after you sign up.

Do I need to use a terminal?

No. The usual way to start a review is to paste one prepared prompt into the coding agent you are already building with, such as Claude Code or Codex, and let it do the setup. It starts your app if it is not running, opens Shiproom, walks you through a one-time browser sign-in, waits until the review session is live, and replies with the private reviewer link. The terminal command is documented on this page for people who prefer it, but it is an alternative route, not a requirement.

What do I paste into Claude Code or Codex?

One prepared prompt, which you copy from the top of this page with the Copy the review prompt button. It tells your coding agent to start the app if it is not already running, run Shiproom in the project folder, walk you through the one-time browser sign-in, wait until the review session is live, reply with the private reviewer link, keep the session running until you say stop, and leave your code alone while it is open.

Does the reviewer install anything?

No. Reviewers open the link in an ordinary browser. There is no extension, no desktop app, no download, and no account to create when you invite them through an invite link. They point, draw, select an element and write a comment directly on the running interface.

Is the reviewer link private?

Yes, by default. A project is invite-only when it is created, so only someone holding an invite link can open it. Invites can be listed, rotated and revoked at any time, and revoking ends that link immediately. Treat an invite link as access-bearing and share it only with the people you intend to review the work. You can switch a project to public, and the CLI asks you to confirm before it does.

Does Shiproom read my code?

No. Shiproom never reads your source code, your Git history or metadata, or your package manifest. It does not inspect your repository or your project contents, and it does not use package.json to identify your project; a project is resolved from the folder path alone. Reviewer traffic is forwarded to your running server over HTTP, and that is the only part of your application Shiproom sees.

Does Shiproom deploy or permanently host the application?

No. Your application keeps running where it already runs, on your own machine. Shiproom creates a private link and forwards reviewer traffic to that running application for the duration of the session. It is not a deployment platform, it does not replace your hosting, and the reviewer link is not a permanent address.

What happens when my computer goes offline?

The reviewer link stops serving your application and reviewers see an offline page instead. A session is offline if the local app stops, the CLI stops, the computer sleeps, or you lose internet access. Feedback already submitted stays in your project and remains readable in the console and the CLI, so nothing your reviewer sent is lost.

Can my coding agent use the feedback?

Yes. Export a report as Markdown or JSON and give it to any coding agent that reads text, or connect a compatible agent through the published @shiproom/mcp adapter so it can inspect Shiproom feedback packets directly. Shiproom prepares the evidence; a person or an agent makes the change. Shiproom does not edit your repository and does not claim to fix issues autonomously. Codex CLI is the directly verified MCP client. Cursor, Claude Code, and other stdio-compatible clients can use the same adapter configuration, but Shiproom does not publish them as directly verified without a recorded end-to-end run.

Is Shiproom partnered with Anthropic or OpenAI?

No. Shiproom has no partnership, affiliation, endorsement or certification from Anthropic, OpenAI, Anysphere or any other vendor, and it is not listed in any vendor's official directory. Markdown and JSON exports are portable text, and the MCP adapter speaks the public stdio protocol. Codex CLI is the client directly verified end to end. Compatibility is not a commercial relationship.

Is Shiproom free?

Yes. Shiproom is currently free to use. There is no paid plan and no trial clock. Early-access per-account limits currently apply: 3 projects, 100 stored feedback items, and 30 days of feedback history. Reviewers invited by link do not need a Shiproom account or installation. See the pricing page for the full plain-language summary.

What is Shiproom?

Shiproom turns a web app running on your own machine into a private reviewer link. You get the link by asking your coding agent for it, or by running one command yourself. Whoever you send it to opens the app in an ordinary browser and leaves visual feedback directly on the live interface. Shiproom captures the contextual evidence around each comment and exports it so you can hand that feedback to a developer or a coding agent.

What does Shiproom capture with feedback?

When a reviewer submits feedback, the report can carry the route and page title, a screenshot, the geometry of each annotation, metadata about the selected element such as its tag, id, accessible name and a stable selector where one is available, the viewport, the browser and operating system, the timestamp, the reviewer label, the chosen category and the comment, along with failed HTTP requests and JavaScript errors recorded shortly before submission. Not every field is present on every report; what is available is what was captured at that moment.

How do I share localhost for review without an agent?

Start your application as you normally would, then run npx shiproom@latest live in the same folder. Shiproom signs you in on first use, finds the local HTTP server, resolves the project for that folder, and prints the private reviewer link. Use --port when you want to name the port explicitly. This is exactly what the review prompt asks a coding agent to do on your behalf.

Does Shiproom write anything into my project?

No. Shiproom writes no files into your application directory: no config file, no lockfile entry, no directory of its own. Local session state lives only in Shiproom's own configuration directory elsewhere on your machine. It does not change your code automatically, and starting a review changes nothing about how you build.

Can feedback be exported?

Yes. Run shiproom feedback export with a reference to get deterministic Markdown on standard output, or add --format json for JSON, or --out to write a file. The same report always produces the same bytes, with object keys sorted. Shiproom does not use a language model to generate exports.

Is MCP available?

Yes, as an optional extra rather than the main path. @shiproom/mcp is published on npm. Create a personal token with the Shiproom CLI, then run the adapter with npx -y @shiproom/mcp using SHIPROOM_TOKEN and SHIPROOM_API_URL. It exposes tools to list projects, list and fetch feedback, and update feedback status. Those tools operate on Shiproom feedback and project data, not on arbitrary local source code. The recorded production end-to-end verification covered token creation, authentication, feedback retrieval, and token revocation through Codex CLI.

What is the current CLI version?

The current published release is shiproom 0.4.3, available on npm. Run it with npx shiproom@latest live, or install it globally with npm install --global shiproom. It requires Node.js 20 or later and runs on macOS, Linux and Windows.

Which operating systems and web frameworks does Shiproom support?

The CLI runs anywhere Node.js 20 or later runs, which covers macOS, Linux and Windows. On the framework side there is nothing to support individually: Shiproom forwards requests to whatever HTTP server you are already running on a local port and injects the review widget into HTML responses, so it is not tied to a particular framework, bundler or build tool.

Is Shiproom publicly available?

Yes. The CLI is published on npm and accounts are open to sign up. It is still early, so per-account limits apply while capacity is managed: 3 projects, 100 stored feedback items and 30 days of feedback history. Those limits are visible in the console and will change as the product matures. Shiproom is not intended for large organisations that need formal compliance assurances.

shiproom 0.4.3

Paste one prompt. Get a reviewer link.

Shiproom is currently free to use. Ask the agent that built your app to open it for review, send the link to whoever needs to see it, and get their feedback back with the screen still attached.

  • No terminal knowledge needed
  • No account or install for your reviewer
  • Private by default, revocable at any time
Paste into Claude Code or CodexPlain text
Set up a Shiproom review link for this app so I can share it.

Do all of it yourself, end to end:

1. Start the app locally if it is not already running.
2. In the project folder, run: npx shiproom@latest live
3. If it asks which port, use the one the app is running on.
4. The first run opens a browser sign-in. Tell me exactly what
   to approve, wait for me, then carry on.
5. Wait until the session is live and the private review link
   has been printed. Do not guess the link.
6. Reply with that link on its own line, and confirm it opens
   in any browser with no account and no install.
7. Keep the session running until I tell you to stop it.
8. Do not change any of my code while the review is open.

If anything fails, tell me what happened in plain language and
what you need from me.