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.x for this repository's current development environment.
  • pnpm >=11.3.0 for 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.
  • 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.