{"_id":"@builderius/sense-ai","_rev":"44-5b6d146901dae54f1e7660e71bd07cd3","name":"@builderius/sense-ai","dist-tags":{"latest":"2.0.0"},"versions":{"1.2.0":{"name":"@builderius/sense-ai","version":"1.2.0","license":"SEE LICENSE IN LICENSE","_id":"@builderius/sense-ai@1.2.0","maintainers":[{"name":"mrpsiho","email":"sales@builderius.io"}],"bin":{"sense":"bin/sense.js"},"dist":{"shasum":"15c6e5dd9eb9f4cf8ee41e93437198e36d709e95","tarball":"https://registry.npmjs.org/@builderius/sense-ai/-/sense-ai-1.2.0.tgz","fileCount":10,"integrity":"sha512-hFItWCxL9bH3FjhN+t1ORY6/To6TvZciU+Fvvy1bvBbkr9PgGWJB+minRv5lP66Y6lehyY2Hfc08bGgTlRlt5A==","signatures":[{"sig":"MEQCIBnCrAm4EQHc99Y+rsc6IFrQI3ajCnV4xI8ch/HXReyKAiAUOiBxAMvD9MJK5ZlFkzJSfMvFLZP+3pG1f9GJkpTbnQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199675},"engines":{"node":">=22.0.0"},"gitHead":"97d250ffd3d065f74b0c1701f747fdd206be8412","scripts":{"start":"node server.js","postinstall":"node postinstall.js"},"_npmUser":{"name":"mrpsiho","email":"sales@builderius.io"},"_npmVersion":"10.9.2","description":"Builderius Sense — MCP server for AI coding agents","directories":{},"_nodeVersion":"23.4.0","dependencies":{"bytenode":"1.5.7","node-pty":"^1.0.0","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sense-ai_1.2.0_1772058384677_0.6846495986936401","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@builderius/sense-ai","version":"1.2.1","license":"SEE LICENSE IN LICENSE","_id":"@builderius/sense-ai@1.2.1","maintainers":[{"name":"mrpsiho","email":"sales@builderius.io"}],"bin":{"sense":"bin/sense.js"},"dist":{"shasum":"40bf122a9455c44c8fcf8372bde3ea027327bc91","tarball":"https://registry.npmjs.org/@builderius/sense-ai/-/sense-ai-1.2.1.tgz","fileCount":10,"integrity":"sha512-0kppJbJ13DiUXpSvq5wXqH/Gpup5025275kszoUlVRoKJBkQAOPW6zFHFwYhgzUmZfseNdSTVb9x9yRNsYd61g==","signatures":[{"sig":"MEQCIHFX6i2fd0vs4DUP3GsQ0q1iQB0lr72fXb+DqxC7ssQiAiBDVpNfV4e2wZ0+M5FS4Z1j28ad+B2u3XkqFNYobJ+98w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202945},"engines":{"node":">=22.0.0"},"gitHead":"16ae391b5e3b95fd35f726f88d33ab5acdb8b0df","scripts":{"start":"node server.js","postinstall":"node postinstall.js"},"_npmUser":{"name":"mrpsiho","email":"sales@builderius.io"},"_npmVersion":"10.9.2","description":"Builderius Sense — MCP server for AI coding agents","directories":{},"_nodeVersion":"23.4.0","dependencies":{"bytenode":"1.5.7","node-pty":"^1.0.0","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sense-ai_1.2.1_1772136321084_0.42458256902535063","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@builderius/sense-ai","version":"1.2.2","license":"SEE LICENSE IN LICENSE","_id":"@builderius/sense-ai@1.2.2","maintainers":[{"name":"mrpsiho","email":"sales@builderius.io"}],"bin":{"sense":"bin/sense.js"},"dist":{"shasum":"46f876351ce6c833c1d030345d7f2286bb8bbb8d","tarball":"https://registry.npmjs.org/@builderius/sense-ai/-/sense-ai-1.2.2.tgz","fileCount":10,"integrity":"sha512-aZuQ5dauIDoESwNuAWonkOXmmaoj7rpa4m8ABTXd5HprGQk1BFJq9Md+1EMmdxNvXV2NIaVqrFd+U45bv7phqQ==","signatures":[{"sig":"MEYCIQDC80B8pJiHuK9OsC6DXl3VoLygzWDhd4rHjtkePaX+nwIhAOxUU52xz8a9jjdD1MyFbyUZdG/ADJ3ln5AUf4PmJwL4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":209301},"engines":{"node":">=22.0.0"},"gitHead":"91ddd010c141765c1f15d530b060d3a82bc53e8d","scripts":{"start":"node server.js","postinstall":"node postinstall.js"},"_npmUser":{"name":"mrpsiho","email":"sales@builderius.io"},"_npmVersion":"10.9.2","description":"Builderius Sense — MCP server for AI coding agents","directories":{},"_nodeVersion":"23.4.0","dependencies":{"bytenode":"1.5.7","node-pty":"^1.0.0","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sense-ai_1.2.2_1772181962063_0.48040907564877955","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@builderius/sense-ai","version":"1.3.0","license":"SEE LICENSE IN LICENSE","_id":"@builderius/sense-ai@1.3.0","maintainers":[{"name":"mrpsiho","email":"sales@builderius.io"}],"bin":{"sense":"bin/sense.js"},"dist":{"shasum":"e1aa9707e1e486d326697633ae360f2a4170a3c5","tarball":"https://registry.npmjs.org/@builderius/sense-ai/-/sense-ai-1.3.0.tgz","fileCount":10,"integrity":"sha512-zsFwePi895cTG302FF+DJRr3DJG0VeXehIjU4PxCboCXXF5nsFTI7lRrliDytOuQeAHxdwpXs+GYCOZTncXeDw==","signatures":[{"sig":"MEYCIQC2aUPtlxBtcRLL/bhP20brE8r3NM5rDu2KCBZsta3+BQIhAK18gNtNNU214XqEFwjWLp/q/X1hOA7g9I7nmcIJfM/J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216874},"engines":{"node":">=22.0.0"},"gitHead":"3dea38deaeb4c14bf69b674d796ce23b4728ab42","scripts":{"start":"node server.js","postinstall":"node postinstall.js"},"_npmUser":{"name":"mrpsiho","email":"sales@builderius.io"},"_npmVersion":"10.9.2","description":"Builderius Sense — MCP server for AI coding agents","directories":{},"_nodeVersion":"23.4.0","dependencies":{"bytenode":"1.5.7","node-pty":"^1.0.0","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sense-ai_1.3.0_1773025914125_0.5542049806531695","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@builderius/sense-ai","version":"1.3.2","license":"SEE LICENSE IN LICENSE","_id":"@builderius/sense-ai@1.3.2","maintainers":[{"name":"mrpsiho","email":"sales@builderius.io"}],"bin":{"sense":"bin/sense.js"},"dist":{"shasum":"2be4e80f9054678934bc51534112fe621f283c8a","tarball":"https://registry.npmjs.org/@builderius/sense-ai/-/sense-ai-1.3.2.tgz","fileCount":10,"integrity":"sha512-n2SaAaHZ6Vk475SN6pBNUXCzhWYKWoAlP1mXtvZ44quiD6erHw2X0sYVYbNpM36GR2G/AJF+DobdslNu+3a3UQ==","signatures":[{"sig":"MEYCIQDIbxlhJIStZO4vdHqq+l2Mkl7RqhLohJ4EyaqP6jmp6gIhAKIbERCsB77Mvs7yht1xloVj0RP7xlqWE+DPw71YaUx6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261547},"engines":{"node":">=22.0.0"},"gitHead":"a3ad9ba5e2af6ac96868d57aa52830353c716c0a","scripts":{"start":"node server.js","postinstall":"node postinstall.js"},"_npmUser":{"name":"mrpsiho","email":"sales@builderius.io"},"_npmVersion":"10.9.2","description":"Builderius Sense — MCP server for AI coding agents","directories":{},"_nodeVersion":"23.4.0","dependencies":{"bytenode":"1.5.7","node-pty":"^1.0.0","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sense-ai_1.3.2_1776237105196_0.5170593495954305","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@builderius/sense-ai","version":"2.0.0","description":"Live-editing MCP connector for the Builderius website builder","type":"module","license":"SEE LICENSE IN LICENSE","bin":{"sense":"bin/sense.js"},"engines":{"node":">=20.0.0"},"scripts":{"test":"node test/selection.test.mjs"},"dependencies":{"@modelcontextprotocol/sdk":"^1.12.1","ws":"^8.18.0","zod":"^4.3.6"},"_id":"@builderius/sense-ai@2.0.0","gitHead":"f01fba1184792b2a8d65e4dd8a81e2a56b02d03d","_nodeVersion":"23.4.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-a23GpHPXYnNS/Obt9GpKNTZIrSokhsy2elOWnGpLVT6pEyhyukFGBFB6hmwMAzaJal6CX/PL/hLFBmPtNpl5DA==","shasum":"789fc701d9d02eb3331a6e1d5fe9c388700b2aa8","tarball":"https://registry.npmjs.org/@builderius/sense-ai/-/sense-ai-2.0.0.tgz","fileCount":20,"unpackedSize":314184,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAb5l0vs39MdOLjyo0UEoqxDWT1YP/M5GYgjSJXr4jz8AiB7SCJI8g0TfRRa1Ua8DZjUp9g2iA7ifSM7T7YAswfQHA=="}]},"_npmUser":{"name":"mrpsiho","email":"sales@builderius.io"},"directories":{},"maintainers":[{"name":"mrpsiho","email":"sales@builderius.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sense-ai_2.0.0_1788878819154_0.4846368319668217"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-23T09:36:28.779Z","modified":"2026-09-08T14:46:59.587Z","1.0.0":"2026-02-23T09:36:29.114Z","1.0.1":"2026-02-23T13:06:54.746Z","1.0.2":"2026-02-23T23:24:54.196Z","1.0.3":"2026-02-23T23:40:10.115Z","1.0.4":"2026-02-23T23:50:57.673Z","1.0.5":"2026-02-23T23:57:34.855Z","1.0.6":"2026-02-24T00:03:09.957Z","1.0.7":"2026-02-24T00:27:18.387Z","1.0.8":"2026-02-24T01:59:00.001Z","1.0.9":"2026-02-24T08:40:25.906Z","1.0.10":"2026-02-24T14:52:30.949Z","1.0.11":"2026-02-24T15:10:49.449Z","1.0.12":"2026-02-24T15:41:46.950Z","1.0.13":"2026-02-24T16:05:00.101Z","1.0.14":"2026-02-24T16:14:43.915Z","1.0.15":"2026-02-24T16:28:11.146Z","1.0.16":"2026-02-24T16:36:21.636Z","1.0.17":"2026-02-25T00:02:26.845Z","1.0.18":"2026-02-25T10:47:45.568Z","1.2.0":"2026-02-25T22:26:24.932Z","1.2.1":"2026-02-26T20:05:21.346Z","1.2.2":"2026-02-27T08:46:02.304Z","1.3.0":"2026-03-09T03:11:54.346Z","1.3.2":"2026-04-15T07:11:45.339Z","2.0.0":"2026-09-08T14:46:59.284Z"},"license":"SEE LICENSE IN LICENSE","description":"Live-editing MCP connector for the Builderius website builder","maintainers":[{"name":"mrpsiho","email":"sales@builderius.io"}],"readme":"# @builderius/sense-ai\n\nLive editing for the [Builderius](https://builderius.io) website builder: an MCP\nserver that lets an AI coding agent build and edit templates in a builder tab you\nhave open.\n\nRequires Node 20+ and a Builderius Pro licence.\n\n## How it works\n\nBuilderius' editing API only exists **inside the browser**, so there is no server\nan agent can call. The builder page therefore dials *out* to this connector over\na WebSocket, and the connector relays commands into it.\n\n```\nyour agent  ──stdio MCP──▶  sense mcp\n                              │  POST 127.0.0.1:7681/builder-command\n                              ▼\n                     whoever holds the port\n                              │  ws://127.0.0.1:7681/builder\n                              ▼\n                  the Builderius builder in your browser\n```\n\n**One port carries every builder bridge on the machine.** If Clockheart Desktop is\nrunning it already holds that port, and this connector simply attaches to it and\nholds no socket of its own. If nothing is there, it starts its own bridge. It\nnever quietly moves to a different port — the builder reads its port from a\nWordPress setting, so a connector that relocated would be one nothing can reach.\n\n## Use\n\nAdd it to your agent as an MCP server, run from the WordPress root:\n\n```json\n{\n  \"mcpServers\": {\n    \"builderius\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@builderius/sense-ai\", \"mcp\", \"--port=7681\"],\n      \"env\": {\n        \"WP_API_URL\": \"https://example.com\",\n        \"WP_API_USERNAME\": \"your-wp-username\",\n        \"WP_API_PASSWORD\": \"xxxx xxxx xxxx xxxx xxxx xxxx\"\n      }\n    }\n  }\n}\n```\n\n**All three, not just the password.** The builder page authenticates with a\nshort-lived token the site derives from its own salt, not with your password, so\nthe connector has to exchange the password for that same token — and it needs\nthe site and the username to have something to exchange with. Given the password\nalone it falls back to sending the password itself, which the bridge cannot match\nagainst the page, and the symptom is `no builderius page is connected` while a\npage is demonstrably connected.\n\nThe password goes **in this config**, next to the server that uses it — not in a\nfile on the side. Create it in WordPress under **Builderius → Settings → Sense AI\n→ Live editing** (or Users → Profile → Application Passwords) and paste it here.\n`--port` must match the port on that same screen.\n\n`WORDPRESS_API_URL`, `WORDPRESS_API_USERNAME` and `WORDPRESS_API_PASSWORD` are\nstill read as older spellings of the same three.\n\nStarting the bridge is part of starting the MCP server, so there is nothing else\nto run. To drive it by hand instead:\n\n```bash\nnpx -y @builderius/sense-ai serve      # run the bridge in the foreground\nnpx -y @builderius/sense-ai status     # what is on the port, if anything\nnpx -y @builderius/sense-ai tabs       # which builder pages are connected\n```\n\nThen open a Builderius template. In WordPress, **Builderius → Live editing** must\nbe on, and its port must match.\n\n## Local HTTPS development sites\n\nA certificate every browser on the machine accepts — Herd, Valet, Local, DDEV,\nmkcert — is still rejected by Node, which does not read the OS trust store. The\nsymptom is not a certificate error: the token exchange fails, the connector falls\nback to a credential the builder page cannot match, and every command reports that\nno builder page is connected while one plainly is.\n\nOn a name that can only be this machine — `localhost`, loopback, `*.test`,\n`*.localhost`, `*.local`, `*.ddev.site` — this package handles it and says so on\nstderr. Nothing to configure.\n\nAnywhere else, point Node at the CA your tool installed, in the same `env` block:\n`\"NODE_EXTRA_CA_CERTS\": \"/path/to/local-CA.pem\"` (Valet and Herd:\n`~/.config/valet/CA/LaravelValetCASelfSigned.pem`; mkcert: `rootCA.pem` inside\n`mkcert -CAROOT`). Restart the MCP server afterwards.\n\n**Not `NODE_OPTIONS`.** `--use-system-ca` is not one of the flags Node accepts\nthrough that variable, so `\"NODE_OPTIONS\": \"--use-system-ca\"` does not merely fail\nto help — Node refuses to start at all and the MCP server never comes up.\n\n## Several builder pages open at once\n\nA command goes to exactly **one** page, never all of them. Broadcasting looks\nharmless and is how a build corrupts itself: each page runs the command against\nits own store and mints its own ids, so two pages will happily create two\ndifferent things under one name.\n\nWhich page, in order:\n\n1. A command that names an `entity` goes to the page holding that document.\n   Builderius keeps several templates open behind one connection, so a template\n   in a background tab still routes there.\n2. A command that names a `tab` goes to exactly that page.\n3. Reads whose answer is the same everywhere (`listTabs`, `getCssFramework`,\n   `getBreakpoints`, …) go to any page.\n4. Otherwise **the focused page wins** — the one you were looking at when you\n   typed. Once a run has picked a page it stays there, so a long build does not\n   follow you between windows.\n5. If several pages are open and none has ever reported focus, the command is\n   **refused** with the tab ids to retry with. Run `sense tabs` to see them.\n\n## Credentials\n\nThe credential is your WordPress **Application Password** — the same secret\nWordPress REST Basic Auth accepts, so one credential covers this connector and\nany WordPress MCP tools. WordPress owns it: revoke it under Users → Profile and\nit stops working everywhere.\n\nThe builder page gets it from WordPress itself. This MCP server reads it from its\nown config, via `WP_API_PASSWORD` in the `env` block above, alongside\n`WP_API_URL` and `WP_API_USERNAME` — that is the supported way, and it keeps the\nsecret with the server that uses it rather than in a stray file.\n\nA `.auth-token` file in the working directory still works as a fallback for\nsetups that predate this, one site per line, mode `0600`. Nothing writes it any\nmore; prefer the config.\n\nThe bridge cannot verify a credential against WordPress — it knows neither the\nsite URL nor the username — so it either trusts a list you configure with\n`--token`, or **adopts the first credential it sees** and announces it. That is\nacceptable because everything binds `127.0.0.1` on a machine you control; it is\nnot a boundary against other software already running as you.\n\n## Security\n\nLoopback only. Do not expose the port. The connector executes whatever commands\nan MCP client sends into your builder, so treat access to the port as equivalent\nto access to the builder.\n","readmeFilename":"README.md"}