
Product
Socket Now Protects the Firefox Extension Ecosystem
Socket is bringing experimental protection to Firefox, scanning 97,000+ extensions in Mozilla's official directory for malware and risky updates.
Visual UI design tool for web apps. Make changes in the browser and generate structured reports that AI agents can apply to source code. Works with Vue, React, Svelte, SolidJS, and plain HTML via Vite or Webpack.
Visual markup tool for web apps. Annotate your UI in the browser — pins, arrows, drawn sections, notes — and Annotask generates structured tasks that AI coding agents apply to your source code. Supports Vue, React, Svelte, SolidJS, and plain HTML with Vite and Webpack. Astro and htmx are experimental.
You (in browser) Your coding agent
───────────────── ──────────────────
Open Annotask shell
Annotate the UI:
pin elements, draw
sections, add notes, ──> /annotask-apply
describe what you want Fetches pending tasks
Locks each task (in_progress)
Asks for clarification if stuck
Applies code change
Marks for review with resolution
Answer agent questions <──>
Review changes live <──
as they come in:
Accept ✓ or Deny ✗
(denied tasks include your
feedback for the agent
to retry with corrections)
You mark up the UI — Use the Annotask shell to annotate elements: pin a component and describe what you want changed, draw a section where new content should go, highlight text that needs editing, or drop arrows showing where things should move.
Tasks are created — Each annotation becomes a structured task with full context: source file, line number, component name, element tag, surrounding layout, and your intent in plain language.
Your coding agent applies the tasks — Invoke /annotask-apply in Claude Code (or the equivalent skill in your agent). It processes tasks one at a time: locks the task (in_progress), applies the code change, then marks it for review — so you can start reviewing immediately while later tasks are still being applied.
You review — In the Annotask shell, click any task to open the detail drawer — see the full markdown description, screenshots, element context, interaction history, and source files. Accept or deny each change. Denied tasks include your feedback so the agent can retry with corrections.
See SETUP.md for the full setup guide — install, plugin config, MCP / skills setup, MFE configuration, and troubleshooting.
Quick version:
npm install -D annotask
// vite.config.ts
import { annotask } from 'annotask'
export default defineConfig({
plugins: [vue(), annotask()],
})
// .mcp.json — connect your AI agent via MCP
{
"mcpServers": {
"annotask": {
"type": "url",
"url": "http://localhost:5173/__annotask/mcp"
}
}
}
Start your dev server, then open http://localhost:5173/__annotask/.
console.error, console.warn, and unhandled errors/rejections from the app iframeannotask init detects responsive breakpoints from Tailwind, Bootstrap, CSS variables, or media queriespending → in_progress → review → accepted/denied lifecycle with needs_info and blocked statuses for agent feedback, live WebSocket updatesannotask tasks, annotask report, annotask watch for terminal accessannotask status # Check if server is running
annotask tasks # Compact task summaries (use --pretty for full objects)
annotask report # Fetch live change report (no tasks)
annotask watch # Live stream of changes via WebSocket
annotask update-task <id> --status=<status> # Update task status
annotask screenshot <id> # Download a task's screenshot
annotask init-skills # Install agent skills into your project
annotask init-mcp # Write editor MCP config (--editor=claude|cursor|vscode|windsurf|all)
annotask mcp # Start MCP stdio server (proxies to dev server)
Options: --port=N, --host=H, --server=URL (override server.json), --mfe=NAME (filter by MFE), --output=PATH (for screenshot command).
POST /__annotask/mcp — MCP endpoint (Streamable HTTP transport). Accepts JSON-RPC 2.0 requests, returns tool results. This is the recommended way for AI agents to interact with Annotask.GET /__annotask/api/report — Current change report (supports ?mfe=NAME filter)GET /__annotask/api/tasks — Task list (supports ?mfe=NAME filter)GET /__annotask/api/tasks/:id — Single task detailPOST /__annotask/api/tasks — Create a taskPATCH /__annotask/api/tasks/:id — Update task (whitelisted fields: status, description, feedback, screenshot, viewport, etc.)DELETE /__annotask/api/tasks/:id — Delete a task and clean up its screenshotGET /__annotask/api/design-spec — Design spec (tokens, framework, breakpoints)GET /__annotask/api/components — Component library catalogPOST /__annotask/api/screenshots — Upload a screenshot (base64 PNG, max 4MB)GET /__annotask/screenshots/:filename — Serve a screenshotGET /__annotask/api/status — Health checkws://localhost:5173/__annotask/ws — Live WebSocket streamCORS is restricted to localhost origins. Mutating requests (POST, PATCH, DELETE) from non-local origins are rejected.
| Framework | Vite | Webpack |
|---|---|---|
| Vue 3 | Yes | Yes |
| React | Yes | Yes |
| Svelte | Yes | Yes |
| SolidJS | Yes | Yes |
| Plain HTML | Yes | — |
| Astro | Experimental | — |
| htmx | Experimental | — |
.vue, .tsx, .jsx, .svelte, .astro, .html); dynamic components and render functions may not map correctlypnpm install
pnpm build # Build shell + plugin + CLI + vendor deps
pnpm dev:vue-vite # Start Vue test app with Annotask
pnpm test # Run unit tests
pnpm typecheck # Type-check (tsc + vue-tsc)
pnpm test:e2e # Run E2E tests (all frameworks)
src/plugin/ — Vite plugin (multi-framework transform, toggle button, bridge client)src/server/ — HTTP API, WebSocket server, shell serving, project statesrc/webpack/ — Webpack plugin and transform loadersrc/shell/ — Design tool UI (Vue 3 app, pre-built into dist/shell/)src/shell/composables/ — Vue composables (style editor, tasks, screenshots, keyboard shortcuts, a11y scanner, error monitor, perf monitor, etc.)src/shell/components/ — UI components (inspector tabs, overlays, task detail drawer, design panel, error/perf tabs, report viewer, etc.)src/shared/ — Shared types (postMessage bridge protocol)src/mcp/ — MCP server (Streamable HTTP transport, embedded in the Vite/Webpack server)src/schema.ts — TypeScript types for change reports, tasks, design spec, viewport, performance snapshotssrc/cli/ — CLI tool for terminal interactionskills/ — Agent skill definitions (shipped with the npm package)playgrounds/ — Test apps (vue-vite, vue-webpack, react-vite, svelte-vite, solid-vite, html-vite, astro, htmx-vite, mfe-vite)See SETUP.md for common issues and solutions.
FAQs
Visual UI design tool for web apps. Make changes in the browser and generate structured reports that AI agents can apply to source code. Works with Vue, React, Svelte, SolidJS, and plain HTML via Vite or Webpack.
The npm package annotask receives a total of 85 weekly downloads. As such, annotask popularity was classified as not popular.
We found that annotask demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket is bringing experimental protection to Firefox, scanning 97,000+ extensions in Mozilla's official directory for malware and risky updates.

Research
/Security News
Three compromised Rust crates pulled in a malicious dependency that downloaded and executed cross-platform malware during Cargo builds.

Research
/Security News
Socket uncovered 77 linked Firefox extensions, including 40 that steal wallet secrets or credentials and 37 deceptive sports-score shells.