Command line
Your content, from the terminal.
One command line for every client project. List what’s waiting, fix a field, upload a folder of photos, ask for a review, read the JSON. The same rules as the Studio, so a script can’t do what its person can’t.
terminal
npm install -g @moteurio/cli
moteur auth login --api-url https://api.moteur.io
moteur projects use client-site
moteur entries list article --limit 10Try it
What do you want to do?
Pick a job. Each command and its answer were recorded on the demo journal, signed in as a writer.
moteur entries list article --limit 4
┌────────────┬───────────────────┬───────────────────────────────────────┬──────────────────────────┐ │ id │ status │ title │ updated │ ├────────────┼───────────────────┼───────────────────────────────────────┼──────────────────────────┤ │ issue-05-6 │ in_review │ Les androïdes timides │ 2026-10-24T22:24:28.643Z │ ├────────────┼───────────────────┼───────────────────────────────────────┼──────────────────────────┤ │ issue-05-1 │ published · edits │ HORIZON-E: Rapport du Fond de l'Océan │ 2026-10-24T22:24:28.579Z │ ├────────────┼───────────────────┼───────────────────────────────────────┼──────────────────────────┤ │ issue-03-4 │ published · edits │ Le syndicat et les machines │ 2026-10-23T22:24:28.331Z │ ├────────────┼───────────────────┼───────────────────────────────────────┼──────────────────────────┤ │ hs-lexique │ draft │ Lexique │ 2026-10-22T22:24:28.219Z │ └────────────┴───────────────────┴───────────────────────────────────────┴──────────────────────────┘
moteur entries update article hs-lexique --set readingTime=2
Saved article/hs-lexique.
moteur entries review article hs-lexique
Review asked for article/hs-lexique.
moteur entries publish article hs-lexique
✗ Error: Publishing requires an approved review when the project has review workflow enabled. (HTTP 403 Forbidden)
moteur entries get article issue-05-1 --json | jq .entry.data.title
{
"fr": "HORIZON-E: Rapport du Fond de l'Océan",
"en": "HORIZON-E: Report from the Ocean Floor"
}moteur api GET /projects/demo/urls --json | jq length
212
moteur status
Project: Moteur Journal (demo) API: http://localhost:3100 Models: article, author, category, event, faq, issue, job, press-release, robot, series, settings
Setup
Three lines to start
Node 22 or newer, and an account on a Moteur API.
Install it
npm install -g @moteurio/cli puts moteur on your path.
Sign in
moteur auth login asks for your email, then your password or a code it sends by email, and keeps the sign-in in ~/.moteur.
Pick a project
moteur projects use client-site, and every command works on it unless you say --project.
For scripts
Made to be scripted
Every command takes the same few options, and fails like a script expects.
Output
Tables for you, JSON for jq
A table to read, by default. With --json, the API’s answer as it is.
- --quiet prints nothing but errors
- A refused command exits with 1
Rules
The Studio’s rules, in the terminal
It signs in as you, so it can do what your roles allow and nothing more.
- A writer’s publish waits for review
- Every change is a commit with your name
Agents
The same commands as MCP
The MCP server’s tools are these commands, declared once. Learn one, you know the other.
- moteur auth agent-token, for an agent acting for you
- Up to eight hours, and marked as the agent’s
Everything
Nothing out of reach
Models, pages, menus, media, forms, keys, webhooks, branches: a command each. For the rest, moteur api calls any route.
- moteur <group> --help lists what’s there
- --yes skips the questions before what can’t be undone
Moving in
A whole site, in one import
Moving a client’s content over is a script, not a week of copying: turn the export into one bundle of models, files, pages and entries, try it, then bring it in. All of it arrives, or none of it does, and every entry arrives as a draft for someone to read.
- Models, files, pages and entries in one bundle
- Tried first with --dry-run
- Drafts by default: nothing goes live by itself
move-in.sh
moteur imports run site.json --dry-run
moteur imports run site.json
# and back out, the same shape
moteur export --out site.jsonQuestions about the command line
A developer asksWhere do I get it?
MoteurOn npm: npm install -g @moteurio/cli. It needs Node 22 or newer, and works with Moteur Cloud or a Moteur you host.
An agency developer asksCan our CI publish content?
MoteurNot unattended yet. CI can read what the site reads with a read-only key (MOTEUR_API_KEY). Writing needs a person’s sign-in, handed in as MOTEUR_TOKEN, and that lasts a day at most. Long-lived tokens for scripts aren’t built yet.
An agent builder asksIs it the same as the MCP server?
MoteurThe same commands, declared once: the CLI runs them in your terminal, the MCP server offers them to agents as tools.
A developer asksWhat if there’s no command for it?
Moteurmoteur api calls any route, signed in as you: moteur api GET /projects/client-site/urls.
A self-hoster asksCan it run the server too?
MoteurThe engine runs with Node, and the CLI has operator commands for whoever runs a server: accounts, plans, plugins. On Moteur Cloud, that’s us.
Install it, and list something.
Start a project for free, sign in from your terminal, and see what’s waiting.