Skip to content

Editors and agents use the same actions

Every change in Lettern goes through an ability. That is why an agent can work on a site safely.

An ability is one action in Lettern: creating an entry, publishing a page, changing a design token, importing an image. Each has a schema for its input, a permission check and an entry in the audit log.

Publishing a page is entries/publish, whether an editor clicks the button, a deploy script runs it from the command line, or Claude does it over MCP. There is only one way to make that change.

Why this matters

Most systems grow a second API for automation next to the admin, and the two drift apart. Features appear in one and not the other, and permissions get checked in different places. Here the admin is a client of the same abilities as everything else, so anything an editor can do, a script or an agent can do too.

The same goes for limits. If a role can't delete pages, a token for that role can't either.

The ways in

  • The admin, for people.
  • The command line: php cms run entries/publish id=pricing.
  • The REST API, for your own tools.
  • MCP, at /mcp on every site, for Claude, ChatGPT, Cursor and other clients.
  • The assistant, Claude inside the admin, with your own API key.

What keeps agents safe

Agents act as a person, with that person's permissions. Clients sign in through a consent screen, or they use a token with a narrow scope such as entries/* or read. Abilities that could take over an account, like creating tokens, changing passwords or managing users and roles, are never offered to agents.

Inside the admin, the assistant asks before it deletes anything. It treats site content, form submissions and comments as data, never as instructions. Once a chat has read such content, every change it wants to make waits for your approval, so text planted by someone else can't make it act.

Every change lands in the audit log, marked with who made it and through which route.

What you can do with it

Ask an agent to fix the meta descriptions across a site, translate a page, fill a new collection from a spreadsheet, or go through the open comments on a page. Because pages are structured data, an agent edits the same block documents as the editor, using your components and tokens. It builds within your design rather than around it.

The abilities reference lists all of them, and the MCP guide shows how to connect a client in one command.

More from the blog