@cmo-so/cli
v0.13.1
Published
CMO.so on the command line: your websites, ideas, blog posts, LinkedIn queue and results, plus a local MCP server for Claude Desktop, Cursor and other MCP clients.
Readme
@cmo-so/cli
CMO.so on the command line. Check results, review your LinkedIn and Facebook Page queue, manage blog post ideas and drafts, and script it all in CI. Everything Maggie can do in the app is one command away.
npx @cmo-so/cli login # sign in in your browser
npx @cmo-so/cli inbox # what needs you nowOr install it: npm i -g @cmo-so/cli, then use cmo.
Commands
cmo login | logout | whoami
cmo init sign in check + pick your default website
cmo workspaces [ls] | workspaces use <domain>
cmo inbox
cmo results [--period 7d|30d]
cmo ideas [ls] | add <url|text> | generate [-n 5] [--brief …] | import-sitemap [-n 10] [--sitemap <url>]
cmo ideas plan|discard|restore <id>
cmo posts [ls] [--status planned|draft|published] | show <id> | publish <id> | delete <id>
cmo social [ls] | approve <id…> | skip <id> | restore <id> | draft "<topic>" | pause | resume
cmo autopilot [status] | pause | resume
cmo keys [ls] cmo apps cmo open [path]
cmo connect api-pull [--key aicmo_…] [--write-env .env]
cmo tools every action, then: cmo run <tool> key=value…
cmo mcp local MCP server (stdio)WordPress sites (Maggie Core theme)
cmo wp connect <site> -u <admin> save the site's Administrator application password (asked, never shown)
cmo wp status | map [--sections] | pages [--search …] [--missing-seo] | sections
cmo wp page <page> [--section s2] a page's sections (ids: m… bands, s… reading column, a… sidebar)
cmo wp page create --title … --from sections.json [--parent …] [--publish] [--menu-parent …]
cmo wp page update <page> title=… slug=… status=… | delete <page> [--redirect-to …] | undo <page>
cmo wp page publish <page> [--homepage] | cmo wp home <page> [--posts-page …] [--latest-posts]
cmo wp page duplicate <page> --title … --replace Fairfax=Vienna
cmo wp section add <page> <type> --from slots.json [--after s1] [--preview]
cmo wp section update <page> <section> --from change.json [--preview] (edits | slots | faq)
cmo wp section move <page> <section> --before faq | section remove <page> <section>
cmo wp seo get <page> | set <page> --title … --description … --keywords … | audit [--posts 50] | import
cmo wp seo site --home-title … | seo business name=… telephone=…
cmo wp redirects [ls] | set <from> <to> [--code 301] | remove <from…>
cmo wp menu [get] | set --from menu.json cmo wp header|footer [get] | set --replace a=b --link old=new
cmo wp header set --button-text "Book Now" --button-url … cmo wp style [get] | set olive=#4F5B48
cmo wp pattern contact --replace "old=new" shared contact band / share buttons on every page
cmo wp child [status] | create maggie-<name> --name … [--activate] | update --color olive=#4F5B48 --css-file x.css
cmo wp child activate <slug|maggie-core> | restore <slug> <backup> the site's child theme, on the site (backups kept)
cmo wp child-theme <slug> --name "…" --from-site [--out dir] export the site's look as a child theme folder (for git)
cmo wp migrate plan [--out wp-baseline.json] | migrate verify --baseline wp-baseline.json the SEO gatePages are a path (/fairfax-va/hydrafacial/), URL, slug or id. cmo.so signs each request with the saved login (cmo wp connect); the website tools need a paid plan or the website's free trial.
Options for every command: --json (machine-readable), -w, --workspace <domain>, -y, --yes (don't ask before changes), --dry-run (show what a change would do).
Commands that change something show what will happen and ask first. In scripts, pass --yes; without a terminal and without --yes, nothing is changed.
Exit codes: 0 done · 2 wrong input · 3 not signed in · 4 plan, permission or daily limit · 5 server problem.
Signing in
cmo loginuses a device code: open the link, check the code, approve. The sign-in is stored in~/.config/cmo/credentials.json(readable only by you) and renews itself.cmo logoutdisconnects it; you can also remove it under Connected apps in your account.- For CI, create an API key in your account settings and set
CMO_API_KEY. It takes priority overcmo login. A read-only key can only run reads. CMO_WORKSPACEsets the default website for a script.
MCP
cmo mcp runs CMO.so as a local MCP server for Claude Desktop, Cursor, VS Code and others, signed in with cmo login or CMO_API_KEY. See @cmo-so/mcp for client configs, or connect the hosted server at https://mcp.cmo.so/mcp without installing anything.
