Skip to content

RaphaelRegnier/vibe-annotations

Vibe Annotations

License: PolyForm Shield Chrome Web Store Server Package PRs Welcome

Vibe Annotations is an AI-native visual feedback tool for your web apps. Ask changes, make design tweaks to your pages and share the structured output to your AI coding agent or teammates.


Get started: Install the browser extension

🧐 Is it for me? If you're a PM, Marketer, Designer or Developer having to review websites regularly, and looking for an efficient way to convey intent and share context with AI coding agents, then Vibe Annotations is made for you.

Vibe Annotations can be used to request changes on a website's look & copy without design or development knowledge. Learn more in the examples below.

Feature demos

✏️ Annotate, copy/paste to your AI coding agent:

clipboard_demo.mp4

🎨 Make persisting direct design tweaks:

design_edit_demo.mp4

🔌 Use the MCP server to share your annotations, any websites, multiple pages:

mcp_basic_demo.mp4

🤖 Annotate with a browser-capable AI coding agent:

annotate_with_agent_demo.mp4

Pro tip: This is using Claude browser extension, with a shortcut added (Settings>Shortcut) to trigger vibe window.__vibeAnnotations.help() when typing /vibe on first prompt.

🤝 Collaborate with teammates using export / import features:

multiplayer_demo.mp4

👀 Use watch mode, never leave your website:

watch_mode_demo.mp4

Documentation (available in the extension)

1. Install the Browser Extension

From Chrome Web Store: Install from the Chrome Web Store

For Development: Go to your chromium browser extension page, and click "Load unpacked" then select /extension directory.

2. Install the Global Server

npm install -g vibe-annotations-server

3. Start the Server

vibe-annotations-server start

4. Connect Your AI Coding Agent

Choose your AI coding agent and follow the setup:

Claude Code

In your project directory:

# Recommended (HTTP transport - more stable)
claude mcp add --transport http vibe-annotations http://127.0.0.1:3846/mcp

# Alternative (SSE transport - for compatibility)
claude mcp add --transport sse vibe-annotations http://127.0.0.1:3846/sse

Cursor

  1. Open Cursor → Settings → Cursor Settings
  2. Go to the Tools & Integrations tab
  3. Click + Add new global MCP server
  4. Add this configuration:
{
  "mcpServers": {
    "vibe-annotations": {
      "url": "http://127.0.0.1:3846/mcp"
    }
  }
}

Alternative (SSE transport):

{
  "mcpServers": {
    "vibe-annotations": {
      "url": "http://127.0.0.1:3846/sse"
    }
  }
}

Windsurf

  1. Navigate to Windsurf → Settings → Advanced Settings
  2. Scroll down to the Cascade section
  3. Add this configuration:
{
  "mcpServers": {
    "vibe-annotations": {
      "serverUrl": "http://127.0.0.1:3846/mcp"
    }
  }
}

Alternative (SSE transport):

{
  "mcpServers": {
    "vibe-annotations": {
      "serverUrl": "http://127.0.0.1:3846/sse"
    }
  }
}

Codex

Add to ~/.codex/config.toml:

[mcp_servers.vibe-annotations]
url = "http://127.0.0.1:3846/mcp"

OpenClaw

Add to ~/.openclaw/openclaw.json:

{
  "mcpServers": {
    "vibe-annotations": {
      "url": "http://127.0.0.1:3846/mcp"
    }
  }
}

VS Code

Install an AI extension that supports MCP, then add this configuration to your MCP settings:

{
  "mcpServers": {
    "vibe-annotations": {
      "url": "http://127.0.0.1:3846/mcp"
    }
  }
}

5. Start Annotating

Open a localhost page, click Annotate in the toolbar, and click any element to leave feedback. Then either:

  • Copy & paste: Click Copy in the toolbar and paste into any AI chat
  • MCP (automatic): Tell your agent to read and implement vibe annotations
  • Watch mode (hands-free): Tell your agent "Start watching Vibe Annotations" — it loops automatically

6. (Optional) Enable Local File Support

To annotate local HTML files (file:// URLs) instead of localhost:

  1. Go to chrome://extensions/
  2. Find "Vibe Annotations" and click "Details"
  3. Enable "Allow access to file URLs"
  4. Refresh your local HTML file

Note: This is only needed for local files. Localhost development servers work without this step.

MCP Architecture

Vibe Annotations is split into two independent pieces that talk over HTTP:

  1. Browser Extension (/extension) — Injects a floating toolbar on any page. Handles inspection mode, annotation popovers, live CSS previews, badge rendering, import/export, and clipboard copy. Stores annotations in Chrome Storage and syncs them to the server when available.

  2. MCP Server (vibe-annotations-server) — A global npm package that runs locally. Exposes an HTTP API for the extension and MCP endpoints for AI coding agents. Stores annotations as JSON on disk. Agents connect via MCP to read, watch, and delete annotations.

┌─────────────────┐         HTTP          ┌─────────────────┐         MCP
│                  │  ←── sync/CRUD ───→   │                 │  ←── tools ───→  AI Agents
│  Browser Extension │                     │  MCP Server      │                (Claude Code,
│  (Chrome)         │                      │  (port 3846)     │                 Cursor, etc.)
└─────────────────┘                        └─────────────────┘

The extension works standalone (copy/paste, export) but the server unlocks MCP integration and watch mode.

MCP Tools

The server exposes these tools to connected agents:

Tool Description
read_annotations Retrieve pending annotations with URL filtering and pagination
watch_annotations Long-poll for new annotations (used in watch mode loops)
delete_annotation Remove an annotation after implementing the fix
delete_project_annotations Batch delete all annotations for a project URL
get_project_context Infer framework and tech stack from a localhost URL
get_annotation_screenshot Get screenshot data for visual context

Server Management

# Check server status
vibe-annotations-server status

# Stop server
vibe-annotations-server stop

# Restart server
vibe-annotations-server restart

Uninstallation

To completely remove Vibe Annotations from your system:

1. Remove MCP Server from Your AI Coding Agent

Claude Code

claude mcp remove vibe-annotations

Cursor

Go to Cursor → Settings → Cursor Settings → Tools & Integrations tab and remove the vibe-annotations server configuration.

Windsurf

Go to Windsurf → Settings → Advanced Settings → Cascade section and remove the vibe-annotations server from your MCP configuration.

Other Editors

Remove the vibe-annotations server from your editor's MCP configuration settings.

2. Uninstall the Global Server

npm uninstall -g vibe-annotations-server

3. Remove Data Files

rm -rf ~/.vibe-annotations

4. Remove Browser Extension

Go to Chrome Extensions (chrome://extensions/) and remove the Vibe Annotations extension.

Development

Local Server Development (Advanced)

If you're developing Vibe Annotations or prefer to run the server locally instead of the global installation:

# Clone the repository
git clone https://github.com/RaphaelRegnier/vibe-annotations.git
cd vibe-annotations/annotations-server

# Install dependencies
npm install

# Run the server locally
npm run start
# or for development with auto-restart:
npm run dev

Extension Development

See /extension directory for browser extension development. Load the extension in Chrome as unpacked extension.

Documentation

Troubleshooting

Having issues? Check our GitHub Issues or create a new one.

Common Issues

  • Server not detected: Make sure the server is running with vibe-annotations-server status
  • Extension not working on public URLs: The extension works on any URL, but MCP server features (auto-sync, watch mode) require localhost. On public sites, use copy/paste or export
  • MCP connection failed: Verify your AI coding agent configuration matches the examples above
  • SSE connection drops/timeouts: If experiencing "TypeError: terminated" or frequent disconnections, switch to HTTP transport (replace /sse with /mcp in your configuration)

Contributing

We love contributions! Please see our Contributing Guidelines for details.

Contributors

Thanks to everyone who has contributed to making Vibe Annotations better!

License

PolyForm Shield 1.0.0 — see LICENSE and NOTICE for details. Versions prior to v1.5.0 were released under MIT.