Client editing for Cursor

Let clients edit your Cursor site.

You built the site in Cursor and you like the setup you have. The client asks for “a way to edit the text ourselves” and every CMS you look at wants to own the site.

Tusk is a client editing layer for sites you already built. You keep the code, the repo and the hosting. Tusk marks the text, photos and downloads the client may change, and the client changes them on their own live page. Nothing of Tusk runs between a visitor and the site.

Where your Cursor site needs to be

  1. Nothing to export. Cursor speaks MCP; the connect runs in the editor on the repo you already have.
  2. Deploy on any host with a deploy hook. Vercel, Netlify and Cloudflare Pages all do; GitHub Pages works with commit-to-deploy.

Connecting it, step by step

  1. Cursor → Settings → MCP → add the Tusk server (JSON below), or drop it in .cursor/mcp.json.
  2. In the terminal: npx @tuskcms/mcp login --site <slug>. Approve the link once.
  3. In Composer or chat: “Connect this site to Tusk CMS.” The agent marks the editable elements, adds the build step, sets up the deploy hook with you, publishes and confirms it reached the site.
  4. Invite the client from the Tusk dashboard.

The MCP config, for Cursor. Nothing to install: it runs from npm on demand.

{ "mcpServers": { "tusk": { "command": "npx", "args": ["-y", "@tuskcms/mcp"] } } }

No MCP? Paste this one line into any AI tool that can read a URL and edit files:

Connect this site to Tusk CMS. Read https://tuskcms.com/llms-full.txt first and follow it exactly.

Start from a template

The Tusk starter is a GitHub template: a three-page business site in plain HTML, already marked up, with the build step and Vercel and Netlify config in place. Use the template, deploy it, say “Connect this site to Tusk CMS.”, and hand it to the client. Then reshape it into their site.

Starting from a prompt instead? Ask your tool to build the site with the marks in from the start: the first-prompt version works in any builder.

What the client gets

  • Their own login. They open an editor with a live preview of their real website beside the fields you marked, click a heading, a paragraph, a photo or a download, change it, and press Publish.
  • Nothing of yours. No repo, no Cursor, no code, no layout or styles. What you did not mark cannot be edited.
  • History of the last 30 days, with any version restored as a draft, so a bad edit is never permanent.
  • A Publish that reaches the live site through your own host, and a dashboard that tells you both whether it did.

What you keep

  • The codebase, the hosting and the deploy. Tusk triggers a deploy hook you own, and that link, encrypted, is all it holds of your host.
  • A static site that stays static: published content and images are written into your build by two zero-dependency scripts. The deployed site never calls Tusk.
  • The retainer. The client pays you; you pay Tusk by site. Clients never pay for their login.
  • The exit. Export gives you a site’s words, photos, fields and 30 days of versions as files; disconnect cuts every tie and the site keeps serving.

Questions Cursor developers ask

Will Cursor’s next refactor remove the marks?

They are attributes in your source, and Cursor treats them like any code it sees. Agents tend to preserve them because they look deliberate. If one does go missing, Scan in the dashboard tells you which field lost its element and the connect prompt puts it back.

I use Cursor with a component library. Where do the marks go?

On the rendered element the client should be able to click: a heading, a paragraph, an image, a link to a download. Repeated cards (team, services, testimonials) become a list field the client can add to and reorder.

What does the client see?

An editor with their pages, the fields you marked, and a live preview of their own site beside them. They click the text on the preview, change it, press Publish. No repo, no Cursor, no code.

Also built with Claude Code, Windsurf, Next.js? Tusk works the same way. All builders: Lovable, v0, Bolt, Replit, Claude Code, Codex, Windsurf, Next.js, Astro, Eleventy, Framer, plain HTML, and any site with a build step or deploy hook.