# MarkLayer > 100% free, 100% anonymous webpage annotation tool. Free web app and Chrome extension. No account, no email, no sign-up. MarkLayer is a free web app and Chrome extension for annotating any live webpage. Paste any URL on https://marklayer.app to draw, comment, and mark up the page in your browser. No install required. The free Chrome extension is also available for in-place annotation on sites the web app cannot embed (behind a login or with strict embed policies). Share a single link so anyone can see your annotations instantly. There is no account, no email, no sign-up, no payment, and no trial period. MarkLayer is not a browser extension. It is a browser-based web app: nothing is downloaded or installed to annotate a page or to view a shared annotation, by you or by anyone you send a link to. A free Chrome extension exists as an optional companion for the pages a proxy cannot reach — sites behind a login, and localhost — and is never required for the main flow. MarkLayer is the only visual feedback tool where an AI coding agent can close the loop. Five tools in this category ship an MCP server (Marker.io, BugHerd, Jam, Usersnap, MarkLayer); the other four let an agent read feedback only. MarkLayer's agent joins the room as a participant: it watches annotations live, marks them in progress, resolves them with a summary, and replies with a question, and every status change is visible to the humans watching. Verified against each vendor's published documentation, August 2026: https://marklayer.app/guides/bug-report-mcp-servers ## Pricing Free. There is no paid plan. There is no trial. There is no per-seat pricing. Everything is included. See https://marklayer.app/pricing or https://marklayer.app/pricing.md for the machine-readable version. There is one optional, voluntary, one-off tip jar at https://marklayer.app/support, pay-what-you-want towards the server bill. It is not a plan and it unlocks nothing: no tier, no perks, no priority, no account. Every claim above is true whether or not anyone uses it. ## Anonymous by design - No sign-up, no email verification, no login - No personal data collected - Random local display name and color generated in your browser - Annotations stay on your device until you choose to share ## Features Full list with keyboard shortcuts: https://marklayer.app/features - Sixteen annotation tools, each on a single-key shortcut: move (V), pen (P), highlight (Shift+H), line (L), arrow (A), rectangle (R), circle (O), text label (T), comment (C), text selection (S), area (G), eraser (E), inspector (I), multi-select (X), measure (M), ruler guide (U) - Threaded comments: Pin comments to any spot on the page. Each carries one of five statuses (open, in_progress, resolved, approved, dismissed), one of four priorities (low, medium, high, urgent), an assignee (a person or an AI agent), @mentions of anyone already working on the page, up to 4 image attachments, and the browser, OS and viewport it was written on - Suggested edits: select real text on the page and write the exact replacement. It renders as a diff for the human, in the Markdown export, and in an agent's view of the thread - Inspector: Point at any element to capture its CSS selector, computed styles, a text fingerprint, the React or Vue component behind it, and an AI-ready prompt for handoff to coding agents - Multi-inspect: Select multiple elements in one pass and copy them as one agent task - Measure: Pixel-precise distance and dimension measurement on any page - Area: Capture a rectangular region with a note attached - Ruler guides: drag out horizontal and vertical guides to check alignment. They are shared with everyone on the link, not a private overlay - Quick grab: Hold Alt to arm element capture without switching tools - PDFs and images: annotate a PDF, a screenshot, a mockup or a photo the same way as a page, either by pasting a link to one or uploading a file from your computer (25MB limit). Text inside a PDF stays selectable, so a highlight attaches to the words rather than to coordinates - Real-time collaboration: Live cursors with unlimited collaborators per session - Voice and video: peer-to-peer WebRTC in the room, with microphone, camera and output device selection, a speaking indicator, connection quality, and TURN fallback. No install to join - Shareable links: Recipients don't need the extension or an account to view - Optional account: sign in with a magic link (no password) to claim your links, switch one between "can edit" and "can view", set its own expiry, and see them all in one dashboard. Annotating and viewing never require it, and nothing behind it costs money - Multi-page projects: one share link can hold up to 50 pages, switched through a tab strip, exported as one document - Responsive review: preview a page at desktop, tablet or mobile width. Annotations bind to the element by CSS selector with a text fingerprint fallback plus a fractional offset, so a mark re-resolves onto the right element after a layout reflow or a single-page-app re-render - Export: copy or download every comment, reply and highlighted selection as Markdown (statuses, authors, device metadata, and suggested edits as fenced diff blocks), or export the annotated page as a PNG - Send feedback out to Slack, Microsoft Teams, Discord, a generic JSON webhook, Linear, GitHub or Jira. See the section below - Works on any website, by two routes: the web app renders the page server-side and overlays the canvas, and the extension annotates in place on anything the web app cannot reach, including pages behind a login and internal tools - Open source and self-hostable ## Integrations (one way out) Connect a destination from the panel on any share link. Five destinations per room. Details: https://marklayer.app/guides/send-feedback-to-jira-linear-slack Chat destinations post automatically as annotations arrive, batched: - Slack (incoming webhook) - Microsoft Teams (incoming webhook) - Discord (webhook URL, trimmed to Discord's 2000-character ceiling) - Webhook (any public endpoint; receives { type, room, page, items: [{ kind, author, text, priority }] }) Issue trackers fire only when a person files one specific annotation, creating one issue: - Linear (API key + team id) - GitHub (fine-grained token with Issues write + owner/repository) - Jira (site, account email, API token, project key, issue type) This is strictly one way. MarkLayer creates the issue and reads back its URL once to show a link. Nothing about that issue's later state returns to MarkLayer, and no destination sends anything in. For the three trackers the API token never reaches MarkLayer's server: the room stores only the non-secret fields, and the token stays in the browser of whoever set it up. Chat webhooks differ, because the webhook URL is itself the credential, so it is stored with the room and anyone holding the share link can see its last four characters and remove it. ## For AI coding agents (MCP) MarkLayer ships an MCP (Model Context Protocol) server, marklayer-mcp, that turns annotations into a structured work queue for AI coding agents like Claude Code. Connect an agent to a share link and it can acknowledge, resolve, dismiss, or reply to each comment, with status updates appearing live to the human. Install in Claude Code: claude mcp add marklayer -- npx -y marklayer-mcp The twelve tools: - marklayer_connect_room: join a share link, by URL or bare id - marklayer_room_info: the page under review, its viewport, its timestamps - marklayer_read_page: the page's headings, text, links and controls, with selectors - marklayer_list_annotations: everything outstanding, filtered by status - marklayer_get_annotation: one annotation in full, including its reply thread - marklayer_watch_annotations: long-poll for new work and for anything handed to this agent by name - marklayer_acknowledge: mark in_progress, so the human sees it has been picked up - marklayer_resolve: close it and post the summary as a reply - marklayer_dismiss: decline it, with a reason that is required rather than optional - marklayer_reply: ask a clarifying question without moving the status - marklayer_create_annotation: leave a comment of its own, anchored to an element - marklayer_suggest_edit: propose exact replacement text, shown to the human as a diff approved is the one status an agent never sets: it is the person who asked for the change confirming the fix. A resolved thread going back to open means they disagreed. - Package: https://www.npmjs.com/package/marklayer-mcp - Source: https://github.com/thevrus/MarkLayer/tree/main/apps/mcp In a browser whose agent supports WebMCP, the same actions are exposed on a share link via document.modelContext with nothing installed. ## Programmatic link creation (for AI assistants) Any caller, including an LLM acting on a user's behalf, can mint a MarkLayer share link with a single HTTP POST. No auth, no SDK, no account. Use this when a user asks you to "generate MarkLayer links for these pages" or hands you a list of URLs and wants a share link per URL. Pick a random id (nanoid, uuid, or any unguessable string is fine, and the id IS the access token), then: POST https://marklayer.app/api/{id} Content-Type: application/json { "ops": [], "url": "https://example.com/page-1", "width": 1440, "expires_in": 2592000 } Body fields: - ops: array of annotation operations (use [] for a blank canvas the user will draw on) - url: the page the share link should open and overlay annotations onto - width: reference viewport width in CSS pixels (1440 is a safe default) - expires_in: seconds until cleanup (max 2592000 = 30 days). Omit it and the share link has no fixed expiry; it is deleted 90 days after its last access, and any view or comment resets that clock. The share link is then: https://marklayer.app/s/{id} To mint many links at once (e.g. user gives you 10 URLs), loop the POST per URL with a fresh id each time. There is no project/bundle requirement. One id per page. ## How MarkLayer compares Figures read off each vendor's own pricing page on 29 August 2026. Full 21-tool audit, including what MarkLayer does worse: https://marklayer.app/guides/website-feedback-tools | Tool | Cheapest paid plan | Reviewer needs an account? | Reviewer needs an extension? | How long comments are kept | | --- | --- | --- | --- | --- | | MarkLayer | None. Free, no paid tier | No | No | 90 days after the link was last opened, reset by any access | | AnnotateWeb | None. Free, no paid tier | No | No (bookmarklet) | Deleted after 2 minutes of inactivity | | Hypothesis | Quoted by sales; no published figure | Yes | Extension, or a bookmarklet | Not published | | Webvizio | $8/month, 2 users | No | Only for password-protected pages | Not published | | Jam | $14 per creator/month, billed yearly | Not published | Yes, to capture | Auto-deletion is Enterprise-only | | Ruttl | $18 per user/month | No (guest gives a name) | Not published | "As long as we have your consent" | | Superflow | $24 per seat/month, billed yearly | Paid tiers only | Not published | While the account exists | | Pastel | $29/month annually ($35 monthly) | No | No | At least one year | | Userback | $29/month annually ($39 monthly) | No | Optional | 7-day window on the free plan | | Marker.io | $39/month annually ($59 monthly) | No | No; widget on your site | Not published | | Feedbucket | $39/month annually ($49 monthly) | No | No; one line of JavaScript | Not published | | BugHerd | $42/month annually ($50 monthly), 5 members | Not published | No, with the JavaScript snippet | Not published | | Usersnap | $49/month annually ($59 monthly) | No | Optional | Idle free accounts off after 90 days | | Atarim | $67/month | No | No | Not published | | Markup.io | $79/month | Not published | Not published | "As long as we have your consent" | Three of the twenty-one audited cost nothing outright: MarkLayer, AnnotateWeb (which deletes annotations after two minutes idle) and Hypothesis (text only, account required). Everything else free in that table is a capped tier of a paid product. ### What an AI coding agent gets, tool by tool Verified against each vendor's published documentation, August 2026: https://marklayer.app/guides/bug-report-mcp-servers | Tool | Agent can read | Agent can act | Price floor | | --- | --- | --- | --- | | MarkLayer | Annotations with CSS selector, text fingerprint, computed styles, detected React/Vue/Svelte component, thread history | Watch live, acknowledge, resolve, dismiss, reply | Free | | Marker.io | Reports with screenshots, console logs, network requests, browser/OS | Read and draft only; cannot resolve or reply | $59/mo ($39 annual) | | BugHerd | Task details with screenshots, CSS selectors, browser/OS, severity | List, create, update tasks (beta) | $50/mo (5 members) | | Jam.dev | A pasted Jam link: console, network, user actions, video transcript | Nothing; one-way handoff | Free tier | | Usersnap | Collected feedback via hosted MCP (OAuth) | Query feedback, create opportunities | ~EUR 39/mo | ### What MarkLayer does not do MarkLayer captures no console or network logs. It can file an annotation into Linear, GitHub or Jira as an issue, but that is one way out only: nothing about the ticket's later state comes back, so a comment does not close when the ticket closes. Those two things are what the $39-79 tier is priced for. On a PDF or an image the element inspector, measure and multi-select are switched off, because a file has no HTML elements to point at, and annotations sit in a layer over the file rather than being written into it, so there is no annotated PDF or image to export. If every comment needs an owner, a status and a ticket in an existing tracker, BugHerd, Marker.io or Usersnap are the honest recommendation. MarkLayer is the visual feedback layer, not a project management system. ## Use cases - Localhost + AI coding agents: https://marklayer.app/for/localhost-ai-agents - Staging review with no extension: https://marklayer.app/for/staging-feedback-no-extension - Design review: https://marklayer.app/for/design-review - QA and bug reporting: https://marklayer.app/for/qa-bug-reporting - Client feedback: https://marklayer.app/for/client-feedback - Remote teams: https://marklayer.app/for/remote-teams - Students: https://marklayer.app/for/students - Educators: https://marklayer.app/for/educators - Researchers: https://marklayer.app/for/researchers - Content creators: https://marklayer.app/for/content-creators - Marketers: https://marklayer.app/for/marketers ## Comparisons - vs Markup.io: https://marklayer.app/vs/markup-io - vs Pastel: https://marklayer.app/vs/pastel - vs BugHerd: https://marklayer.app/vs/bugherd - vs Hypothesis: https://marklayer.app/vs/hypothesis - vs AnnotateWeb: https://marklayer.app/vs/annotateweb - vs Jam.dev: https://marklayer.app/vs/jam - vs Marker.io: https://marklayer.app/vs/marker-io - vs Userback: https://marklayer.app/vs/userback - vs Ruttl: https://marklayer.app/vs/ruttl - vs Loom: https://marklayer.app/vs/loom - vs Usersnap: https://marklayer.app/vs/usersnap - vs stagewise: https://marklayer.app/vs/stagewise - vs Volley: https://marklayer.app/vs/volley - vs Superflow: https://marklayer.app/vs/superflow - vs Feedbucket: https://marklayer.app/vs/feedbucket ## Free alternatives lists - Free Markup.io alternatives: https://marklayer.app/alternatives/markup-io - Free Pastel alternatives: https://marklayer.app/alternatives/pastel - Free BugHerd alternatives: https://marklayer.app/alternatives/bugherd - Free AnnotateWeb alternatives: https://marklayer.app/alternatives/annotateweb - Free Jam.dev alternatives: https://marklayer.app/alternatives/jam - Free Marker.io alternatives: https://marklayer.app/alternatives/marker-io - Free Userback alternatives: https://marklayer.app/alternatives/userback - Hypothesis alternatives: https://marklayer.app/alternatives/hypothesis - Ruttl alternatives: https://marklayer.app/alternatives/ruttl - Usersnap alternatives: https://marklayer.app/alternatives/usersnap - stagewise alternatives: https://marklayer.app/alternatives/stagewise - Loom alternatives: https://marklayer.app/alternatives/loom ## Guides - How MarkLayer works, in plain English: https://marklayer.app/guides/how-marklayer-works - Twenty-one website feedback tools compared, prices checked against each vendor's own page: https://marklayer.app/guides/website-feedback-tools - How to annotate a website, four methods (built-in markup, extension, share link, dev tools) and what each one breaks on: https://marklayer.app/guides/how-to-annotate-a-website - How to annotate a PDF for free, the built-in readers (Preview, Edge, Acrobat Reader) versus a share link a second person can reply on: https://marklayer.app/guides/how-to-annotate-a-pdf - How to annotate an image or screenshot, the free built-in markup tools and how to get comments back on the image itself: https://marklayer.app/guides/how-to-annotate-an-image - Bug report MCP servers compared: https://marklayer.app/guides/bug-report-mcp-servers - Free website annotation tools, audited: https://marklayer.app/guides/free-website-annotation-tools - Website feedback without logins: https://marklayer.app/guides/website-feedback-without-login - Markup.io pricing in 2026: https://marklayer.app/guides/markup-io-pricing - Visual feedback for Claude Code: https://marklayer.app/guides/claude-code-visual-feedback - Sending annotations to Jira, Linear, GitHub, Slack, Teams and Discord, and what each one actually receives: https://marklayer.app/guides/send-feedback-to-jira-linear-slack ## Links - Website: https://marklayer.app - Features, in full, with keyboard shortcuts: https://marklayer.app/features - Pricing: https://marklayer.app/pricing - Changelog (every release, newest first; current version {{version}}): https://marklayer.app/changelog - Chrome Web Store: https://chromewebstore.google.com/detail/marklayer/fnfobegjifomgobgilaemihpcpidjamc - GitHub: https://github.com/thevrus/MarkLayer - Privacy Policy: https://marklayer.app/privacy - Support the project (optional, one-off, buys nothing): https://marklayer.app/support ## How It Works ### Option A: Use the free web app (no install) 1. Open https://marklayer.app and paste any URL into the annotation field 2. Draw, comment, or highlight anything on the page 3. Click "Share" to get a link anyone can open. No extension or account needed 4. Collaborate in real time with live cursors ### Option B: Install the free Chrome extension 1. Install the MarkLayer Chrome extension (free, no account) 2. Navigate to any webpage and click the MarkLayer icon 3. Draw, comment, or highlight anything on the page 4. Click "Share" to get a link anyone can open. No extension needed on their end 5. Use this option for sites the web app cannot embed (behind a login or with strict embed policies) ## FAQ Q: Is MarkLayer really free? A: Yes. 100% free. No paid plan, no trial, no per-seat pricing, no usage cap. Q: Is MarkLayer anonymous? A: Yes. No sign-up, no email, no profile, no login. No personal data is collected. Q: Do I need to install anything to use MarkLayer? A: No. The web app at https://marklayer.app lets you paste any URL and start annotating in your browser. No install, no account. The Chrome extension is optional, for sites the web app cannot embed. Q: Does the other person need the extension installed? A: No. Anyone can view annotations via the share link. No install required. Q: Does it work on any website? A: Yes, by two routes, and the second has no exceptions. The web app fetches the page server-side and overlays the annotation canvas, which covers any publicly reachable URL. For everything else, including pages behind a login, internal tools and localhost, the free extension annotates in place in the browser you are already signed into. Either route produces the same share link, and the recipient installs nothing. Q: How long are annotations kept? A: Indefinitely, as long as the link is in use. There is no fixed expiry. A share link is deleted 90 days after its last access, and any view, comment or edit resets that clock, so an active review never expires. Most tools in this category publish no retention period at all; the ones that do range from AnnotateWeb's two minutes of inactivity to Pastel's one year: https://marklayer.app/guides/website-feedback-tools Q: Can I annotate a PDF or an image? A: Yes, both. Paste a link to a PDF, a PNG, a JPEG, a GIF, a WebP or an AVIF, or upload one from your computer up to 25MB. The drawing, comment, area and highlight tools all work on it. Each mark is tied to a page number and a position on that page — an image being a document of one page — so it stays where you put it when the view changes size. The annotations live in the share link, not inside the file, so there is no annotated copy to download afterwards. An uploaded file is deleted on the same clock as the link: 90 days after it was last opened. Q: Can multiple people annotate at the same time? A: Yes. Real-time live cursors let unlimited collaborators work together. Q: What is the inspector tool? A: Point at any element on a page and MarkLayer captures its CSS selector, its computed styles, a text fingerprint and, on a React or Vue page, the component behind it, formatted as a copy-ready prompt for AI coding agents. Paste it into Claude Code or another agent and it has enough context to make the edit. Multi-select does the same for a set of elements and copies them as one task. Q: Can MarkLayer send annotations to Slack, Jira, Linear or GitHub? A: Yes, to seven destinations. Slack, Microsoft Teams, Discord and a generic JSON webhook post every new batch of annotations automatically. Linear, GitHub and Jira create one issue from one annotation, when a person files it. All seven are one way out: MarkLayer creates the issue and reads back its URL once to show you a link, and nothing about that ticket's later state returns. A room holds five destinations. For Linear, GitHub and Jira the API token never reaches MarkLayer's server; it stays in the browser of whoever set it up. https://marklayer.app/guides/send-feedback-to-jira-linear-slack Q: Can I export my annotations? A: Yes, two ways, both in the panel on the right of a share link. Copy or download every comment, reply and highlighted selection as Markdown, with statuses, authors, device metadata, and suggested edits as fenced diff blocks. Or export the annotated page as a PNG, which captures the live page with the drawings over it. A multi-page project exports as one document with a section per page. Q: Does a comment have a status, a priority or an owner? A: Yes. Five statuses (open, in_progress, resolved, approved, dismissed) and four priorities (low, medium, high, urgent). A comment can be assigned to a person or to an AI agent, can @mention anyone already working on that page, and can carry up to four image attachments. Each one also records the browser, operating system and viewport width it was written on, so a bug that only reproduces at one size says so. Q: Is there an account, and what does it add? A: There is an optional one, and nothing behind it costs money. Annotating and viewing never need it. Sign in with a magic link, no password, and you can claim the links you made, switch one between "can edit" and "can view", give it its own expiry date, and see them all in one dashboard. The room enforces view-only everywhere a write could land, rather than by hiding the toolbar. Q: Can I review more than one page on a single link? A: Yes. A share link can hold a project of up to 50 pages, each with its own annotations, switched through a tab strip at the top of the viewer. Add a page by pasting its URL. The Markdown export covers the whole project in one document with a section per page. Q: Can I send annotations to an AI coding agent? A: Yes. MarkLayer ships an MCP server (marklayer-mcp) that lets agents like Claude Code watch a share link and process comments as a work queue. Q: Can an AI assistant generate MarkLayer links for me programmatically? A: Yes. POST to https://marklayer.app/api/{id} with { ops: [], url, width: 1440, expires_in: 2592000 } and the share link is https://marklayer.app/s/{id}. No auth, no SDK. See the "Programmatic link creation" section above. ## Contact Email: hello@marklayer.app ## Optional - [Full details](/llms-full.txt)