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.
Visual feedback for coding agents · private localhost review
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.
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.
Set up a Shiproom review link for this app so I can share it.
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
Checkout
Payments are processed by our provider.
Pay now does nothing on the second attempt. No error, no spinner.
POST /api/checkout/session 500# 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
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.
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.
This prompt uses ordinary shell access, not a vendor integration. Shiproom has no partnership with or endorsement from coding-agent vendors.
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.Your agent reports when the review session is live and replies with a private link to the app running on your own machine.
your-project.shiproom.live/reviewAccessInvite only, until you change itLive while your app and the session are running. It is not permanent hosting.
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.
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.
Capture the scene
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.
the checkout button feels broken now?
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.
“the checkout button feels broken now?”
POST /api/checkout/session 500Same 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
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.
# 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
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.
| ID | Status | Category | Route | Comment |
|---|---|---|---|---|
fb-0047 | new | broken | /checkout | The checkout action did not complete after the second attempt |
fb-0046 | triaged | visual | /pricing | Annual toggle overlaps the plan name below 400px |
fb-0045 | resolved | content | / | Hero still says “beta” in the footer note |
Illustrative reports, not real customer feedback.
Priority runs alongside it: low, medium, high, critical. Shiproom records what you decide; it does not decide for you.
shiproom feedback export fb-0047shiproom feedback export fb-0047 --format jsonThe 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.
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.
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.
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.
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
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.
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.
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.
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.
See the coding-agent handoffCompare Shiproom with BugHerd fairlyChoose by workflow
Use cases
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.
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.
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?”.
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.
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.
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.
Big QA departments, procurement processes and compliance attestations. Shiproom is early and does not have those things. What the security overview does and does not claim.
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
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 livePrefer it installed? npm install --global shiproom
Sharing localhost for review is the whole job. There is nothing to deploy and no host to buy.
Ctrl+C ends the session without deleting the project, its invites or its feedback.
shiproom liveStart a private review sessionshiproom statusSign-in, project and session stateshiproom feedback listSee what reviewers sentshiproom feedback export <ref>Deterministic Markdown, or JSONshiproom invites revoke <id>Cut off a shared linkshiproom stopEnd the session cleanlyTrust and limits
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
If something is not built yet, it says so here rather than in a footnote after you sign up.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.