Content Management

View and manage your site's pages, blocks, collections, and settings from the command line.

Listing Content

The list command shows content on your site:

# List all pages
redo list pages

# List global blocks
redo list blocks

# List collections
redo list collections

# List media files
redo list media

# List site settings
redo list settings

Example Output

$ redo list pages

ID                  PATH            TITLE           STATUS
─────────────────────────────────────────────────────────────────
page_abc123         /               Home            published
page_def456         /about          About Us        published
page_ghi789         /contact        Contact         draft
page_jkl012         /blog           Blog            published
page_mno345         /blog/post-1    First Post      draft

Reading Content

Get detailed information about any item:

# Read a page
redo read page page_abc123

# Read by slug/path
redo read page /about

# Read a block
redo read block block_xyz789

# Read a setting
redo read setting site_title

Output includes the full content structure:

{
  "id": "page_abc123",
  "path": "/",
  "title": "Home",
  "status": "published",
  "blocks": [
    {
      "id": "block_hero",
      "type": "hero",
      "content": { ... }
    }
  ]
}

Creating Content

Create a Page

# Create a page at /services
redo create page /services

# Create with a title
redo create page /services "Our Services"

# Create a nested page
redo create page /blog/my-new-post "My New Blog Post"

Paths are normalized

The CLI automatically adds a leading slash if you forget it. services becomes /services.

Create a Block

# Create a global block
redo create block header

# Create a page-specific block
redo create block sidebar --page-id page_abc123

Updating Content

The update command uses a simple expression syntax for modifications:

# Update a page title
redo update 'page:page_abc123.title = "New Title"'

# Update block content
redo update 'block:block_xyz.content.heading = "Welcome"'

# Update a setting
redo update 'setting:site_title = "My Awesome Site"'

Loading Content from Files

Use @filepath to load content from a local file:

# Update block HTML from a file
redo update 'block:block_xyz.content.html = @content.html'

# Update page content from JSON
redo update 'page:page_abc.blocks = @page-blocks.json'

Deleting Content

# Delete a page
redo delete page page_abc123

# Delete a block
redo delete block block_xyz789

Deletion is permanent

Deleted content cannot be recovered. Consider using version history to restore accidentally deleted items.

Filtering and Output

JSON Output

Add --json for machine-readable output:

redo list pages --json | jq '.[] | select(.status == "draft")'

Format Options

# Table format (default)
redo list pages

# JSON format
redo list pages --json

# Quiet (IDs only)
redo list pages --quiet

Next: Local Sync →