Skip to content

social-hook draft

Draft lifecycle management.


social-hook draft approve

Mark a draft as approved for posting.

The scheduler will post it when its scheduled time arrives. Preview drafts must be promoted to a platform first.

Example: social-hook draft approve draft_abc123

Arguments:

Name Required Description
draft_id yes Draft ID to approve

social-hook draft cancel

Cancel a pending draft, removing it from the posting queue.

Example: social-hook draft cancel draft_abc123

Arguments:

Name Required Description
draft_id yes Draft ID to cancel

social-hook draft connect

Connect a preview-mode draft to an account.

Links the draft's target to an existing OAuth account, clearing preview mode. The account's platform must match the draft's platform.

Example: social-hook draft connect draft-abc123 --account my-x-account Example: social-hook draft connect draft-abc123 --account my-x-account --yes (skip confirmation)

Arguments:

Name Required Description
draft_id yes Preview-mode draft ID to connect

Options:

Flag Type Default Description
--account, -a string Account name to connect (must match draft platform)
--json boolean false Output as JSON
--yes, -y boolean false Skip confirmation

social-hook draft edit

Edit draft content.

Records the change in the draft's change history (visible in draft show). If the draft is a thread, tweet boundaries are automatically re-split.

Example: social-hook draft edit draft-abc123 --content "Updated post text here"

Arguments:

Name Required Description
draft_id yes Draft ID to edit

Options:

Flag Type Default Description
--content, -c string New content

social-hook draft list

List drafts with optional filters.

Example: social-hook draft list --pending --json Example: social-hook draft list --decision decision-abc123 Example: social-hook draft list --commit 47a5191 Example: social-hook draft list --tag auth

Options:

Flag Type Default Description
--status, -s string Filter by status
--project, -i string Filter by project ID
--decision, -d string Filter by decision ID
--commit, -c string Filter by commit hash
--tag, -t string Filter by episode tag (matches decision episode_tags)
--pending boolean false Show only actionable drafts (draft/approved/scheduled)
--json boolean false Output as JSON

social-hook draft media-edit

Edit the media spec for a draft.

The media spec is a JSON object that controls media generation (e.g., code snippet, language, theme). After editing, run media-regen to produce a new media file from the updated spec.

Example: social-hook draft media-edit draft-abc123 --spec '{"code": "print(42)", "language": "python"}'

Arguments:

Name Required Description
draft_id yes Draft ID to edit media spec for

Options:

Flag Type Default Description
--spec, -s string New media spec as JSON string

social-hook draft media-regen

Regenerate media for a draft using its stored media spec.

The media spec is a JSON object describing what to generate (e.g., code snippet image, diagram). Edit the spec first with media-edit, then run this command to produce a new file from the updated spec.

Example: social-hook draft media-regen draft-abc123

Arguments:

Name Required Description
draft_id yes Draft ID to regenerate media for

social-hook draft media-remove

Remove media from a draft.

Example: social-hook draft media-remove draft-abc123

Arguments:

Name Required Description
draft_id yes Draft ID to remove media from

social-hook draft post-now

Post a draft immediately to its platform.

Requires platform credentials in ~/.social-hook/.env.

Example: social-hook draft post-now draft_abc123 Example: social-hook draft post-now draft_abc123 --yes (skip confirmation)

Arguments:

Name Required Description
draft_id yes Draft ID to post immediately

Options:

Flag Type Default Description
--yes, -y boolean false Skip confirmation prompt
--json boolean false Output as JSON

social-hook draft promote

Promote a preview draft to a real platform.

Creates a new draft for the target platform using the LLM drafter, then marks the preview draft as superseded.

Example: social-hook draft promote draft-abc123 --platform x

Arguments:

Name Required Description
draft_id yes Preview draft ID to promote

Options:

Flag Type Default Description
--platform, -p string Target platform (e.g., x, linkedin)
--json boolean false Output as JSON

social-hook draft quick-approve

Approve and schedule a draft for the next optimal posting time in one step.

Combines approve + schedule. Considers your configured posting limits, preferred time windows, and minimum gap between posts to pick the best slot.

Example: social-hook draft quick-approve draft_abc123

Arguments:

Name Required Description
draft_id yes Draft ID to approve and schedule

social-hook draft redraft

Redraft content using the Expert agent with a new angle.

Calls the Expert LLM agent to rewrite the draft with a different direction. May also update the media spec. Changes are recorded in the draft's change history.

Example: social-hook draft redraft draft-abc123 --angle "focus on the performance gains"

Arguments:

Name Required Description
draft_id yes Draft ID to redraft

Options:

Flag Type Default Description
--angle, -a string New angle or direction for the draft

social-hook draft reject

Reject a draft and optionally record feedback as voice memory.

When --reason is provided, the feedback is saved to voice memory so the drafter learns from it in future runs. If the draft is an intro draft, rejection cascades to re-draft the introduction for that platform.

Example: social-hook draft reject draft-abc123 --reason "too technical for the audience"

Arguments:

Name Required Description
draft_id yes Draft ID to reject

Options:

Flag Type Default Description
--reason, -r string Rejection reason

social-hook draft reopen

Reopen a cancelled or rejected draft, returning it to 'draft' status.

Intro drafts cannot be reopened -- create a new draft instead. Clears any previous error message on the draft.

Example: social-hook draft reopen draft-abc123

Arguments:

Name Required Description
draft_id yes Draft ID to reopen

social-hook draft retry

Re-queue a failed draft for another posting attempt.

Resets the retry counter and sets status back to scheduled so the scheduler will try posting it again.

Example: social-hook draft retry draft_abc123

Arguments:

Name Required Description
draft_id yes Draft ID to retry

social-hook draft schedule

Schedule a draft for posting at a specific or optimal time.

With --time, posts at that exact ISO datetime. Without --time, automatically picks the next optimal slot based on your configured posting limits, time windows, and minimum gap between posts.

Example: social-hook draft schedule draft_abc123 Example: social-hook draft schedule draft_abc123 --time 2026-03-25T10:00:00

Arguments:

Name Required Description
draft_id yes Draft ID to schedule

Options:

Flag Type Default Description
--time, -t string Schedule time (ISO format)

social-hook draft show

Show full detail for a draft including media spec and change history.

Example: social-hook draft show draft-abc123

Arguments:

Name Required Description
draft_id yes Draft ID to show

Options:

Flag Type Default Description
--open boolean false Open media files in default viewer
--json boolean false Output as JSON

social-hook draft unapprove

Revert approval on a draft, returning it to 'draft' status.

Use when you approved a draft prematurely and want to make further edits before scheduling or posting.

Example: social-hook draft unapprove draft-abc123

Arguments:

Name Required Description
draft_id yes Draft ID to unapprove

social-hook draft unschedule

Revert scheduling on a draft, returning it to 'draft' status.

Clears the scheduled time. Use when you need to edit or reschedule a draft that was already queued for posting.

Example: social-hook draft unschedule draft-abc123

Arguments:

Name Required Description
draft_id yes Draft ID to unschedule