Development environment
Install the mcut monorepo, run local development, and validate changes.
Prerequisites
mcut is a Bun workspace monorepo managed with Turbo.
- Use Bun
1.3.14. - Package consumers should use Node
20.11or newer. - Run commands from the repository root unless a package README says otherwise.
Install
bun installCI uses a frozen lockfile:
bun install --frozen-lockfileWorkspace layout
packages/*: publishable@mcut/*SDK packages.examples/*: runnable examples for headless editing and MCP workflows.apps/studio: the local editor and shadcn registry source.apps/web: the marketing site and/docsimplementation.docs/: maintainer and release process notes for the repository.
Run locally
Editor + MCP bridge
Run this from the repo root:
bun run setup # once per worktree
bun run devbun run dev starts:
- Studio at
http://localhost:3000by default - the local bridge on port
44737by default, with WebSocket browser sync at/mcut-mcpand Streamable HTTP MCP at/mcp
In Conductor workspaces, Studio uses CONDUCTOR_PORT and the bridge uses
CONDUCTOR_PORT + 1, so each workspace can run concurrently.
Open the connected editor URL printed by bun run dev. To print it again:
bun run scripts/mcut-local-dev.ts urlThen enable the mcut-live MCP server in Codex. Codex connects MCP tools to the
bridge's HTTP endpoint — it does not start a second bridge. To print the MCP URL:
bun run scripts/mcut-local-dev.ts mcp-urlThe package also exposes compatibility stdio entrypoints: mcut-mcp for
file-backed projects, mcut-mcp-live for clients that should start their own
live bridge, and mcut-bridge mcp for clients that cannot connect over HTTP.
Docs site only
bun run dev:webValidate changes
Use the narrowest command that covers your change while working, then run the broader checks before opening a pull request.
bun run build
bun run typecheck
bun run test
bun run lint
bun run smoke:packagesRelease validation runs the full package gate:
bun run release:checkrelease:check builds packages, typechecks, runs tests, runs package smoke
checks, and validates package metadata.
Website docs
The website docs are written in apps/web/content/docs. The web app generates
Fumadocs sources and static Markdown mirrors during build:
bun run --filter=mcut-web buildUse the web package checks when editing docs or site code:
bun run --filter=mcut-web typecheck
bun run --filter=mcut-web lint