Content Commands
Newsletter, social, blog, scraping, research pipeline, intelligence reports.
Commands
optimal content newsletter
Newsletter generation and distribution
optimal content newsletter generate
Generate a branded newsletter with AI content and push to Strapi CMS
| Flag | Description | Default | Required |
|---|---|---|---|
--brand <brand> | Brand: CRE-11TRUST or LIFEINSUR | yes | |
--date <date> | Edition date as YYYY-MM-DD (default: today) | ||
--excel <path> | Path to Excel file with property listings (CRE-11TRUST only) | ||
--dry-run | Generate content but do NOT push to Strapi |
optimal content newsletter generate --brand CRE-11TRUST
optimal content newsletter generate --brand LIFEINSUR --date 2026-03-26optimal content newsletter distribute
Trigger newsletter distribution via n8n webhook
| Flag | Description | Default | Required |
|---|---|---|---|
--document-id <id> | Strapi newsletter documentId | yes | |
--channel <ch> | Distribution channel: email or all | all |
optimal content newsletter distribute --document-id abc123 --channel emailoptimal content newsletter status
Check delivery status of a newsletter
| Flag | Description | Default | Required |
|---|---|---|---|
--document-id <id> | Strapi newsletter documentId | yes |
optimal content newsletter status --document-id abc123optimal content social
Social media post generation and publishing
optimal content social generate
Generate AI-powered social media ad posts and push to Strapi
| Flag | Description | Default | Required |
|---|---|---|---|
--brand <brand> | Brand: OPTIMAL, CRE-11TRUST, or LIFEINSUR | yes | |
--count <n> | Number of posts to generate | 9 | |
--week-of <date> | Week start date YYYY-MM-DD (default: next Monday) | ||
--campaign <theme> | Campaign theme override (default: auto-rotated) | ||
--dry-run | Generate without pushing to Strapi |
optimal content social generate --brand CRE-11TRUST
optimal content social generate --brand LIFEINSUR --count 3 --week-of 2026-03-23 --campaign "Q1 Launch"
optimal content social generate --brand OPTIMAL --count 5 --dry-runoptimal content social publish
Publish pending social posts to platforms via n8n
| Flag | Description | Default | Required |
|---|---|---|---|
--brand <brand> | Brand: OPTIMAL, CRE-11TRUST, or LIFEINSUR | yes | |
--limit <n> | Max posts to publish | ||
--dry-run | Preview without publishing | ||
--retry | Retry previously failed posts |
optimal content social queue
View pending social posts ready for publishing
| Flag | Description | Default | Required |
|---|---|---|---|
--brand <brand> | Brand: CRE-11TRUST or LIFEINSUR | yes |
optimal content social instagram
Publish pending social posts to Instagram via Meta Graph API
| Flag | Description | Default | Required |
|---|---|---|---|
--brand <brand> | Brand: CRE-11TRUST or LIFEINSUR | yes | |
--limit <n> | Max posts to publish | ||
--dry-run | Preview without publishing |
optimal content social instagram --brand CRE-11TRUST --limit 1optimal content blog
Blog post publishing
optimal content blog publish
Publish a Strapi blog post and optionally deploy portfolio site
| Flag | Description | Default | Required |
|---|---|---|---|
--slug <slug> | Blog post slug | yes | |
--deploy | Deploy portfolio site after publishing |
optimal content blog publish --slug quarterly-market-update
optimal content blog publish --slug quarterly-market-update --deployoptimal content blog drafts
List unpublished blog post drafts
| Flag | Description | Default | Required |
|---|---|---|---|
--site <site> | Filter by site (portfolio, insurance) |
optimal content blog drafts
optimal content blog drafts --site optimal.miamioptimal content scrape-ads
Scrape Meta Ad Library for competitor ad intelligence
| Flag | Description | Default | Required |
|---|---|---|---|
--companies <csv-or-file> | Comma-separated company names or path to a text file (one per line) | yes | |
--output <path> | Save CSV results to file (default: stdout) | ||
--batch-size <n> | Companies per batch | 6 |
optimal content scrape-ads --companies "Acme Corp,Beta Inc" --output ./ads-data.json
optimal content scrape-ads --companies "Acme Corp" --output ./ads.json --batch-size 10optimal content pipeline
Content research pipeline: status, generate, approve, list
optimal content pipeline status
Show content pipeline status: scraped items, insights, posts, campaign
optimal content pipeline statusoptimal content pipeline generate
Generate an AI post for a platform from latest insight
| Flag | Description | Default | Required |
|---|---|---|---|
--platform <platform> | Platform: twitter or facebook | yes | |
--topic <topic> | Topic to generate for | openclaw |
optimal content pipeline generate --platform twitter
optimal content pipeline generate --platform facebook --topic openclawoptimal content pipeline approve
Approve a draft post for Strapi sync
| Flag | Description | Default | Required |
|---|---|---|---|
--id <uuid> | Post UUID to approve | yes |
optimal content pipeline approve --id <uuid>optimal content pipeline list
List generated posts with optional filters
| Flag | Description | Default | Required |
|---|---|---|---|
--status <status> | Filter by status: draft, approved, posted, failed | ||
--platform <platform> | Filter by platform: twitter, facebook | ||
--limit <n> | Max posts to return | 20 |
optimal content pipeline list
optimal content pipeline list --status draft
optimal content pipeline list --status approved --platform twitteroptimal content pipeline publish
Publish an approved post to its platform (X/Twitter)
| Flag | Description | Default | Required |
|---|---|---|---|
--id <uuid> | Post UUID to publish | yes |
optimal content pipeline publish --id <uuid>optimal content pipeline sync
Sync approved posts from Supabase to Strapi for editorial review
optimal content pipeline syncoptimal content report
Intelligence report generation from research notes
optimal content report generate
Generate daily intelligence report from research notes
| Flag | Description | Default | Required |
|---|---|---|---|
--date <YYYY-MM-DD> | Date to generate report for (default: today) | ||
--skip-pdf | Generate HTML only, skip PDF rendering |
optimal content report generate
optimal content report generate --date 2026-03-30
optimal content report generate --skip-pdfoptimal content research
Research pipeline: status, notes, reports
optimal content research status
Show research pipeline status
| Flag | Description | Default | Required |
|---|---|---|---|
--json | Output as JSON |
optimal content research status
optimal content research status --jsonoptimal content research notes
View research notes for a date
| Flag | Description | Default | Required |
|---|---|---|---|
--date <YYYY-MM-DD> | Date (default: today) |
optimal content research notes
optimal content research notes --date 2026-03-30optimal content research reports
List available intelligence reports
| Flag | Description | Default | Required |
|---|---|---|---|
--date <YYYY-MM-DD> | View specific date | ||
--json | Output as JSON |
optimal content research reports
optimal content research reports --json