Commands
tracee posts
Draft, schedule, publish, duplicate and take down posts.
posts list
List posts.
tracee posts list [--status draft,scheduled] [--from <date>] [--to <date>] [--limit <n>] [--all]Calls listPosts.
posts get
Show one post.
tracee posts get <post_id>Calls getPost.
posts create
Create a post, and publish or schedule it.
tracee posts create --body <text>|--body-file <file|-> [--channel linkedin|<id>]… [--title <text>] [--link <url>] [--media <id>]… [--thread <text>]… [--planned-for <time>] [--publish now|<time>] [--note <text>]Calls createPost.
posts publish
Publish now, or at a time.
tracee posts publish <post_id> [--at <time>] [--note <text>]Calls publishPost.
posts delete
Delete a post that never went out (a person approves it).
tracee posts delete <post_id> [--note <text>]Calls deletePost.
submit
Send a post for approval. Files an approval request in a person's inbox, optionally for a time.
tracee posts submit <post_id> [--scheduled-for <scheduled_for>] [--note <note>]<post_id>argumentrequiredThe post, from GET /api/v1/posts (or the id POST /api/v1/posts returns)
uuid
--scheduled-forstringISO 8601 with offset
date-time
--notestringContext for the approver
up to 500 characters
--data <json|@file|-> sends the whole body instead of flags.
tracee posts submit $POST_ID \
--note "Launch day post, please check the numbers"reschedule
Move a scheduled post. Keeps its approval.
tracee posts reschedule <post_id> --scheduled-for <scheduled_for><post_id>argumentrequiredThe post, from GET /api/v1/posts (or the id POST /api/v1/posts returns)
uuid
--scheduled-forstringrequiredISO 8601 with offset
date-time
--data <json|@file|-> sends the whole body instead of flags.
tracee posts reschedule $POST_ID --scheduled-for 2026-11-20T09:00:00Zunschedule
Cancel a scheduled post. It stays approved, ready to schedule again.
tracee posts unschedule <post_id><post_id>argumentrequiredThe post, from GET /api/v1/posts (or the id POST /api/v1/posts returns)
uuid
tracee posts unschedule $POST_IDunpublish
Take a live post down. From every platform, or only variant_ids. Always asks a person: the answer is the approval request.
tracee posts unpublish <post_id> [--variant-ids <variant_ids>] [--note <note>]<post_id>argumentrequiredThe post, from GET /api/v1/posts (or the id POST /api/v1/posts returns)
uuid
--variant-idsstring[]Unpublish only these variants. From GET /api/v1/posts/{post_id} post_id=<post_id> (variants[].id). Repeat the flag or separate values with commas.
each uuid
--notestringContext for the approver
up to 500 characters
--data <json|@file|-> sends the whole body instead of flags.
tracee posts unpublish $POST_ID --note "Wrong link in the first comment"duplicate
Duplicate a post. Copies any post, even a published one, as a new draft.
tracee posts duplicate <post_id><post_id>argumentrequiredThe post, from GET /api/v1/posts (or the id POST /api/v1/posts returns)
uuid
tracee posts duplicate $POST_IDnext-slot
Next free posting time. The next time free on all those channels, from their posting times (else 9:00, 12:00 and 17:00).
tracee posts next-slot --channel-ids <channel_ids>--channel-idsstring[]requiredThe channels to find a time for. From GET /api/v1/connections Repeat the flag or separate values with commas.
each uuid
tracee posts next-slot --channel-ids $CHANNEL_IDsaved
Posts the team saved from other networks. Saved with the Tracee browser extension from LinkedIn, X, TikTok and others: text, author, counts and link. Ideas to write from.
tracee posts saved [--platform <platform>] [--limit <limit>]--platformstringOne network, e.g. linkedin, x, tiktok
up to 40 characters
--limitintegerThe limit
1–100
tracee posts saved --platform linkedin --limit 10replies
Suggest comments for someone else's post. Three comments in the brand's voice: an insight, a question, another angle.
tracee posts replies --post-text <post_text> [--post-author <post_author>] [--platform <platform>] [--angle <angle>]--post-textstringrequiredThe text of the post to reply to
1–20,000 characters
--post-authorstringWho wrote it
up to 200 characters
--platformstringThe post's network
up to 40 characters
--anglestringWhat the person wants to say, in a few words
up to 600 characters
--data <json|@file|-> sends the whole body instead of flags.
tracee posts replies \
--post-text "What is the one metric you would never stop tracking?" \
--platform linkedinsend-to-tasks
Send a post to a task app. Makes a task, card, issue, item or record in a connected task app (Asana, Trello, ClickUp, monday.com, Jira, Linear, Todoist, Google Tasks, Airtable, Notion) with the copy, the channels, the post's time as the due date and a link back. Asks a person first: the answer is the approval request.
tracee posts send-to-tasks <post_id> [--task-app <task_app>] [--place-ids <place_ids>] [--note <note>]<post_id>argumentrequiredThe post, from GET /api/v1/posts (or the id POST /api/v1/posts returns)
uuid
--task-appstringThe task app, e.g. asana; the last one used if left out
up to 40 characters
--place-idsstring[]One id per level of where the task goes, outermost first; the app's saved place if left out. From GET /api/v1/task-places task_app=<task_app> Repeat the flag or separate values with commas.
up to 4 itemseach 1–300 characters
--notestringContext for the approver
up to 500 characters
--data <json|@file|-> sends the whole body instead of flags.
tracee posts send-to-tasks $POST_ID --task-app "…"task-places
Where a task can go. The choices for the next level (workspace, project, board, list, table…) in a connected task app; add an id to place_ids and ask again until every level is chosen.
tracee posts task-places [--task-app <task_app>] [--place-ids <place_ids>]--task-appstringThe task app, e.g. asana; the last one used if left out
up to 40 characters
--place-idsstring[]One id per level of where the task goes, outermost first; the app's saved place if left out. From GET /api/v1/task-places task_app=<task_app> Repeat the flag or separate values with commas.
up to 4 itemseach 1–300 characters
search
Find posts by date, status, platform or words. Posts newest first, like the calendar: from/to pick by when a post goes out or went out; status, platforms, channel_ids, customer_id and query narrow them.
tracee posts search [--from <from>] [--to <to>] [--status <status>] [--platforms <platforms>] [--channel-ids <channel_ids>] [--customer-id <customer_id>] [--query <query>] [--limit <limit>]--fromstringFrom this date or time
up to 40 characters
--tostringUp to this date (inclusive) or time
up to 40 characters
--statusstring[]Only these statuses Repeat the flag or separate values with commas.
up to 9 items
Available options:
draftpending_approvalapprovedrejectedscheduledpublishedpartially_publishedfailedremoved--platformsstring[]Only posts with a variant on these networks, e.g. ["linkedin", "x"] Repeat the flag or separate values with commas.
up to 40 itemseach up to 30 characters
--channel-idsstring[]Repeat the flag or separate values with commas.
each uuid
--customer-idstringOnly posts on this client's channels. From GET /api/v1/customers
uuid
--querystringWords in the title or copy
up to 200 characters
--limitintegerThe limit
1–100
get-many
Get several posts. Up to 50 posts by id; each answers on its own (ok or error).
tracee posts get-many --post-ids <post_ids>--post-idsstring[]requiredSeveral posts at once, from GET /api/v1/posts Repeat the flag or separate values with commas.
1–50 itemseach uuid
tracee posts get-many --post-ids $POST_IDdelete-many
Delete several posts. Posts that never went out; each becomes an approval request when the workspace asks for one, and answers on its own.
tracee posts delete-many --post-ids <post_ids> [--note <note>]--post-idsstring[]requiredSeveral posts at once, from GET /api/v1/posts Repeat the flag or separate values with commas.
1–50 itemseach uuid
--notestringContext for the approver
up to 500 characters
--data <json|@file|-> sends the whole body instead of flags.
tracee posts delete-many --post-ids $POST_IDsettings
Change one channel's settings on a post. Platform settings of one channel's version of a post that hasn't gone out; copy, media and time stay.
tracee posts settings <post_id> <channel_id> --settings <settings> [--replace-settings]<post_id>argumentrequiredThe post, from GET /api/v1/posts (or the id POST /api/v1/posts returns)
uuid
<channel_id>argumentrequiredThe channel whose version to change. From GET /api/v1/connections
uuid
--settingsobjectrequiredPlatform settings to set, e.g. {"visibility": "CONNECTIONS"} JSON text or @file.json.
any keys
--replace-settings / --no-replace-settingsbooleanReplace all settings instead of merging
--data <json|@file|-> sends the whole body instead of flags.
tracee posts settings $POST_ID $CHANNEL_ID --settings '{}'comments
List a post's comments.
tracee posts comments <post_id><post_id>argumentrequiredThe post, from GET /api/v1/posts (or the id POST /api/v1/posts returns)
uuid
tracee posts comments $POST_IDcomment
Comment on a post. A note for the team on the post. Agents can't approve; nothing is published.
tracee posts comment <post_id> --comment <comment><post_id>argumentrequiredThe post, from GET /api/v1/posts (or the id POST /api/v1/posts returns)
uuid
--commentstringrequiredThe text
1–5,000 characters
--data <json|@file|-> sends the whole body instead of flags.
tracee posts comment $POST_ID --comment "…"export
Send a post to a newsletter or website as a draft. Copies the post into Mailchimp, Kit, beehiiv, MailerLite, Brevo or Klaviyo as a newsletter draft, or into Webflow, Contentful or WordPress.com as a draft. Never sends or publishes. Without app or target_id the answer lists the choices; the same post sent to the same place again updates that draft.
tracee posts export <post_id> [--app <app>] [--target-id <target_id>] [--subject <subject>] [--field-map <field_map>]<post_id>argumentrequiredThe post, from GET /api/v1/posts (or the id POST /api/v1/posts returns)
uuid
--appstringWhere the draft goes: mailchimp, kit, beehiiv, mailerlite, brevo, klaviyo, webflow, contentful, wordpress_com
up to 40 characters
--target-idstringThe list, publication or collection (POST /api/v1/posts/{post_id}/export without it lists them)
up to 500 characters
--subjectstringThe email subject or page title (default: the post's first line)
up to 250 characters
--field-mapobjectWebsites: which field gets each part, e.g. {"body": "post-body", "image": ""} JSON text or @file.json.
any keys
--data <json|@file|-> sends the whole body instead of flags.
tracee posts export $POST_ID --app hubspot