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