Annotate any page
Not just localhost. Pick an element on any site, or comment on the page as a whole. jotkit captures the selector, surrounding DOM, computed CSS and framework context along with your words.
Leave tagged comments on any web page. jotkit keeps them in an append-only ledger on your machine and hands them to your coding agents, which claim the work, do it, and record what they changed.
Requires Node.js 24. macOS and Linux.
Agent disabled the button on submit and added a regression test.
npm i -g @jotkit/jotkit then jotkit init. That creates your ledger, starts the local daemon, installs the agent skills and prints a pairing code for the browser extension.
Open the toolbar on any page. Pick an element or comment on the page, tag it, and choose whether it belongs to a repository or stays global. Attach a screenshot or a recording if it helps.
Your agent reads the comments over MCP, claims one, does the work and logs the outcome. Or run jotkit acp serve and let it work the backlog across every registered repository while you do something else.
Comments are never edited in place. Agents append to their own logs, the daemon derives the truth, and nothing is silently dropped.
Not just localhost. Pick an element on any site, or comment on the page as a whole. jotkit captures the selector, surrounding DOM, computed CSS and framework context along with your words.
Every comment, claim and outcome is an event in a log on your machine. The durable view is derived by a deterministic reducer, so jotkit rebuild regenerates it byte for byte.
Run jotkit link in a repository and comments can be attached to it, carrying the branch and commit you were looking at. An agent working there reads only what was meant for it.
The daemon grants leases, so two agents never fight over the same comment. It verifies reported commits against git and derives status from the log rather than trusting a report.
jotkit mcp exposes ten tools to any Model Context Protocol client. jotkit acp drives an Agent Client Protocol agent through your comments in stream or task mode.
The extension talks to 127.0.0.1 and nothing else. No account, no telemetry, no sync. Your annotations and your code never leave the machine.
Yes. No account, no subscription, no paid tier. It is free to use but it is not open source: the source stays private and the license does not permit redistribution.
No. The browser extension only ever connects to the jotkit daemon on 127.0.0.1. There is no backend, no analytics and no sync service. Your comments, page captures and source code stay local.
Anything that speaks MCP or ACP. Add jotkit mcp as an MCP server in Claude Code, or point jotkit acp at an ACP agent. Without either, agents can drive the CLI directly.
You need both. The extension is a client for the local daemon that ships with the CLI, so install jotkit first, run jotkit init, then pair the extension with the code it prints.
jotkit picks the next free port automatically, remembers it, and prints the address it settled on. You can also set an explicit port in ~/.jotkit/config.json.
Only if you allow it. Unattended runs default to deny-writes. You raise autonomy per comment or per repository, and only a comment you wrote can raise its own.
One command to install, one to start. Everything stays on your machine.
Button stays enabled while the payment request is in flight. Double click charges twice.
shop · main · a3f9c21