macOS
CLI or desktop build on Apple Silicon
Message ThinkRail from Telegram, WhatsApp, or Slack. Add the openquok-core skill so it schedules Facebook posts while you review on the calendar or kanban.
mkdir -p ~/.pi/agent/skills/openquok-core
curl -fsSL "https://raw.githubusercontent.com/Ratimon/openquok-monorepo/main/agent/skills/openquok-core/SKILL.md" \
-o ~/.pi/agent/skills/openquok-core/SKILL.mdOn it — openquok-core
Created drafts with cover image attached.
✓ Queued for Tue 9:00 AM · ref oq-7f3a
Your worktree IDE
Open a repo. Cut a workspace worktree. Ask the agent to draft and schedule like any other task. The openquok-core skill runs in that worktree’s shell. It finds connected channels, attaches media, and queues drafts. You approve on the calendar before anything publishes.
For Facebook Page owners with ThinkRail
Schedule Page posts, Reels, and Stories without switching between Business Suite tabs. Review drafts on one calendar before anything goes live. Message ThinkRail to draft Facebook posts from chat — you approve before publish.
Batch weeks of Page content. Review drafts before anything goes live. Campaigns ship on time without weekend scrambles. ThinkRail queues Facebook drafts at volume — your team approves before publish.
Manage multiple Facebook Pages in one workspace. Schedule at scale. Track insights per brand. Run ThinkRail per client workspace so Facebook drafts stay isolated.
Connect once
Choose an OpenQuok workspace, connect with OAuth2 — approve in your browser, and credentials stay on the machine that runs ThinkRail. Ask the agent in chat to draft and schedule without opening another app.
CLI authentication options
# OAuth2 device flow (interactive — opens browser)
openquok auth:login
openquok auth:statusbot
Sample channels
These chips set format and character limits. They are not your accounts.
Workspace tools. Sign in or sign up to use your library, Photo Editor, and signatures.
151 / 63,206
Pin a follow-up comment five minutes after publish — optional image on Facebook replies.
Reels and link previews
Upload one MP4. OpenQuok publishes it as a Reel on your Page. Add a URL on text posts for link-preview cards. Queue follow-up comments with delays. Do this in one composer draft.
CLI command options
# Draft + human checklist (Facebook)
openquok posts:create --json ./examples/facebook-text-only.json
openquok posts:review-todo <post-id> --note "…"
openquok posts:status <post-id> --status draft
openquok posts:status <post-id> -s scheduleSee what works
Track post impressions, reactions, and clicks plus Page video views in OpenQuok analytics. Then schedule more of what already works.
CLI analytics options
# Facebook platform metrics
INTEGRATION_ID=$(openquok integrations:list | jq -r '.[] | select(.identifier=="facebook") | .id')
openquok analytics:platform "$INTEGRATION_ID" -d 30
# Per-post insights
openquok analytics:post <post-id> -d 7On it — openquok-core
Created drafts with cover image attached.
✓ Queued for Tue 9:00 AM · ref oq-7f3a
Pulled platform analytics (7d)
Top post: 12.4k impressions, 842 reactions — carousel on product tips.
Facebook Page leads with +24% impressions vs last week.
On it — openquok-core
Created drafts with cover image attached.
✓ Queued for Tue 9:00 AM · ref oq-7f3a
Scale what works
Spot a winner in analytics, then cut another worktree for the next client or brand while a second pi session queues the next wave — credentials, channels, and agent context stay isolated as you scale.
Parallel CLI sessions
# Workspace A — launch (client brand)
openquok posts:create -c "…" -s "…" -t draft -i "<uuid>"
openquok posts:status <post-id> -s schedule
# Workspace B — another client (isolated credentials)
openquok posts:list --status draft
# Same workspace — metrics in parallel
openquok analytics:platform <integration-uuid> -d 7
openquok analytics:post <post-id> -d 30Playbooks & Building Blocks Directories
Mix Facebook-focused skills, and MCP servers — then tailor them to your ThinkRail workflow.
comparisons
Most social scheduler SaaS keeps you in a browser tab. OpenQuok is built for Facebook from ThinkRail
CLI
Facebook commands from the openquok-core skill — structured JSON on stdout, human-in-the-loop drafts, and workspace media uploads.
openquok integrations:list | jq -r '.[] | select(.identifier=="facebook") | .id' Discover your Facebook Page integration UUID
openquok integrations:settings "$FB_ID" Get Page posting rules, max length, and allowed tools
openquok posts:create --json {
"scheduledAt": "2026-01-01T12:00:00.000Z",
"status": "scheduled",
"body": "Hello from our Page",
"integrationIds": ["<integration-id>"]
} Schedule a text-only Page post
openquok posts:create --json {
"scheduledAt": "2026-01-01T12:00:00.000Z",
"status": "scheduled",
"body": "Read more on our site",
"integrationIds": ["<integration-id>"],
"providerSettingsByIntegrationId": {
"<integration-id>": {
"url": "https://example.com/article"
}
}
} Share a link with preview card (text-only, no media)
openquok posts:create --json {
"scheduledAt": "2026-01-01T12:00:00.000Z",
"status": "scheduled",
"body": "Photo update",
"integrationIds": ["<integration-id>"],
"media": [{ "id": "<media-id>", "path": "https://cdn.example.com/hero.jpg" }]
} Schedule a single-photo Page post
openquok posts:create --json {
"scheduledAt": "2026-01-01T12:00:00.000Z",
"status": "scheduled",
"body": "Two photos, one post",
"integrationIds": ["<integration-id>"],
"media": [
{ "id": "<media-id-1>", "path": "https://cdn.example.com/a.jpg" },
{ "id": "<media-id-2>", "path": "https://cdn.example.com/b.jpg" }
]
} Publish multiple photos in one Page post
openquok posts:create --json {
"scheduledAt": "2026-01-01T12:00:00.000Z",
"status": "scheduled",
"body": "New Reel on our Page",
"integrationIds": ["<integration-id>"],
"media": [{ "id": "<media-id>", "path": "https://cdn.example.com/reel.mp4" }]
} Publish an MP4 video as a Page Reel
openquok posts:create --json {
"scheduledAt": "2026-01-01T12:00:00.000Z",
"status": "scheduled",
"body": "Main post",
"integrationIds": ["<integration-id>"],
"providerSettingsByIntegrationId": {
"<integration-id>": {
"facebook": {
"replies": [
{ "id": "reply-1", "message": "First comment on the post", "delaySeconds": 60 }
]
}
}
}
} Schedule a Page post and a follow-up comment
openquok posts:create --json {
"scheduledAt": "2026-01-01T12:00:00.000Z",
"status": "scheduled",
"body": "Main post",
"integrationIds": ["<integration-id>"],
"providerSettingsByIntegrationId": {
"<integration-id>": {
"facebook": {
"replies": [
{
"id": "reply-1",
"message": "See the chart in this comment",
"delaySeconds": 60,
"media": [{ "id": "<reply-media-id>", "path": "https://cdn.example.com/comment-image.jpg" }]
}
]
}
}
}
} Schedule a Page post and a follow-up comment with one image
openquok analytics:platform "$FB_ID" -d 30 Pull 30-day Page analytics
openquok analytics:post "$POST_ID" -d 7 Per-post insights for a published Page post
Where you work
ThinkRail scopes files, diffs, terminals, and pi chats to the active git worktree — then invoke openquok-core like any other skill:
CLI or desktop build on Apple Silicon
CLI or desktop on arm64 and x64
CLI or desktop build for Windows x64
Each workspace is its own branch and cwd
Tabs, files tree, and live diffs per worktree
PTYs scoped to the active workspace cwd
Optional MCP extensions
Optional MCP tools beside skills — OpenQuok stays CLI-first
Start with Facebook, then schedule every other network from ThinkRail.
Frequently asked questions
What ThinkRail is, how to install openquok-core, scheduling Facebook posts, human approval, and how agents draft from chat.
Posts created through the CLI land in your OpenQuok workspace as drafts or scheduled items — nothing goes live on autopilot. You review on the calendar or kanban, move posts through draft and review, and approve what should publish. ThinkRail handles volume; you handle quality.
Step-by-step self-host setup for connecting OpenQuok to ThinkRail — install commands, auth patterns, and configuration snippets.
Connect your agent, review every draft, and schedule posts across channels before anything goes live.