CLI Reference
The Simple Page CLI lets you work with published markdown sites locally, create signed off-chain drafts, and submit static builds for review before they are published on ENS.
The current CLI is centered on repo and draft workflows. The older simplepage publish <domain> <path> command is not part of the current command table.
Installation
pnpm add -g @simplepg/cli
Check the installed version and command list:
simplepage --help
simplepage repo --help
simplepage drafts --help
Main Workflows
Edit a Simple Page Site Locally
Clone the published markdown files for an ENS name:
simplepage repo clone jthor.eth
cd jthor.eth
The clone contains regular index.md files plus a .simplepage/ directory that tracks the upstream root and CAR blocks.
Edit the markdown files, then inspect your local changes:
simplepage repo status
simplepage repo diff
Before a CLI can push drafts for a domain, the ENS owner must authorize its generated agent key:
simplepage auth jthor.eth --name docs-cli
Open the printed URL, connect the wallet that owns the ENS name, and sign the SIWE capability. Then push your local markdown changes as a draft:
simplepage repo push-draft docs-refresh
Review and publish the draft in the browser:
simplepage drafts review jthor.eth --open
Publishing still updates the ENS contenthash on-chain. The CLI only prepares and signs the off-chain draft.
Start a New Markdown Repo
Create a local markdown repo from the new.simplepage.eth template:
simplepage repo new yourname.eth
cd yourname.eth
This is useful when the domain does not yet have a Simple Page deployment. After editing, use the same auth, push-draft, and drafts review flow.
Submit a Static Site Draft
For a generated static site, build it first, then push the output directory as a raw draft:
pnpm run build
simplepage auth myapp.eth --name build-agent
simplepage drafts push-raw myapp.eth release-2026-07 ./dist
simplepage drafts review myapp.eth --open
The browser Drafts page shows the CID, preview link, and publish button. The ENS owner publishes the selected draft by signing the contenthash transaction.
Commands
| Command | Purpose |
|---|---|
simplepage info <ens-name> |
Show subscription units, latest sponsor, and current content hash. |
simplepage auth <ens-name> |
Print an authorization URL for the local CLI agent key. |
simplepage drafts push-raw <ens-name> <draft-name> <path> |
Store a signed draft from a file or directory. |
simplepage drafts list <ens-name> |
List stored draft revisions for a domain. |
simplepage drafts review <ens-name> |
Print or open the browser review page for drafts. |
simplepage repo clone <ens-name> |
Clone published Simple Page markdown files. |
simplepage repo new <ens-name> |
Create a markdown repo from the Simple Page template. |
simplepage repo status |
Show local changes and whether upstream changed. |
simplepage repo diff |
Print a line diff for local markdown changes. |
simplepage repo pull |
Fetch and apply upstream markdown changes. |
simplepage repo reset [files...] |
Reset local markdown changes to the tracked root. |
simplepage repo reset --hard |
Reset all markdown changes and clear active draft state. |
simplepage repo push-draft <draft-name> |
Build a new Simple Page root from local markdown changes and store it as a signed draft. |
simplepage repo checkout <draft-name> |
Check out the latest revision of a draft into the local working tree. |
Common Options
| Option | Used By | Description |
|---|---|---|
-r, --rpc <url> |
most commands | Ethereum RPC URL. |
-c, --chain-id <number> |
most commands | Chain ID. Defaults to mainnet in the CLI. |
-d, --dservice <url> |
auth, drafts, repo clone, repo new, repo pull, repo push-draft, repo checkout |
Override the Simple Page Node endpoint. |
--fallback |
auth, drafts review |
Use new.simplepage.eth as the app URL instead of the target site when possible. |
--open |
drafts review |
Open the review URL in the default browser. |
Local Repo Layout
A CLI markdown repo looks like this:
yourname.eth/
├── index.md
├── about/
│ └── index.md
└── .simplepage/
├── blocks.car
└── state.json
Only the markdown files are intended for normal editing. .simplepage/blocks.car and .simplepage/state.json track the content root, local drafts, and the blocks needed to build new roots.
Requirements
- Node.js
24.xfor this repository's current development environment. pnpm>=11.3.0for package management.- An ENS domain with an active Simple Page subscription before drafts can be uploaded.
- The ENS owner wallet to authorize agents and publish drafts.
Related Pages
- Custom Websites - publish static builds through raw drafts.
- API - endpoints used by drafts, capabilities, and page uploads.
- Run a Node - operate your own Simple Page Node.