Rails engine · toolbar · MCP server · CLI
Mark up your Rails views right in the browser. Your AI agent reads the feedback over MCP and fixes it in the code.
Feedback flows from your browser to your agent and back — no copy-pasting screenshots or describing where things are.
Click any element, type what should change, pick an intent (fix / change / question / approve) and severity. Optional element screenshot with arrows & highlights.
Your AI agent lists pending annotations through the MCP server and gets the exact element, page, and your note.
The agent edits the code and resolves the annotation with a summary — which syncs back to the pin and the dashboard.
A live mock of the toolbar. Click the green button, then click any element in the frame to leave an annotation — exactly how it works in your app.
Start free. Upgrade when your team grows.
One Ruby gem: a mounted engine with its own dashboard, a self-contained browser toolbar, an MCP server, and a CLI.
Zero-dependency overlay — no Stimulus, no importmap. Configurable FAB (show/hide, size, 4 corners) that works in any Rails app.
A list dashboard with filters, search, author & page filters, load-more, CSV/JSON export — plus a drag-and-drop Kanban board.
Read, watch, transition, reply, and resolve annotations over stdio MCP. Works with Claude Code, Codex, and any MCP client.
rails-markup ships server, init, mcp, watch, pending, resolve, and more.
Client UUIDs, an outbox with retries, and reconciliation keep the browser, the database, and your agent converged.
Adapter-aware migrations and a configurable table name. Auth is enforced through your host app's controller.
Add the gem, run the generator, migrate. The generator mounts the engine, injects the toolbar, and writes an initializer.
| Option | Values | What it does |
|---|---|---|
fab_visible | true / false | Show or hide the floating button (pins & panel stay). |
toolbar_enabled | true / false | Master switch for the whole toolbar system. |
toolbar_position | bl / br / tl / tr | Which corner the FAB sits in. |
toolbar_size | slim / compact / default | 32 / 40 / 48px button. |
toolbar_accent | indigo / amber / blue / emerald / rose | Accent color for the UI. |
base_controller_class | "AdminController" | Parent controller that enforces auth. |