Postflight

An OpenClaw skill

Drafts on schedule.
Publishes on your word.

Three times a day it drafts a post about your open source work, sends it to your Telegram, and publishes only when you reply ship. There is no autonomous mode.

curl -fsSL https://raw.githubusercontent.com/soos3d/postflight/main/scripts/setup.sh | bash
openclaw skills install @soos3d/postflight

That's the instructions only. The X app, the Telegram bot, and the schedule still come from the wizard above.

MIT licensed. Runs on your machine or a $6 VPS.

The whole interface: a draft arrives, you reply ship, it posts.

Why this one is different

Supervised, not autonomous

Publishing requires the exact word ship from your Telegram account. The approval gate isn't a setting you can turn off. It's the product, and it's the reason this uses the official API instead of evading it.

Anti-slop voice

Hashtags, engagement bait, and "excited to announce" are banned in writing. Every post has to carry something usable: a command, a gotcha, a number, or real code. Your own tweets outrank every other style rule.

Runs on what you have

No SaaS and no separate model bill: auth reuses the Claude or ChatGPT subscription you already pay for. Your laptop or a 1 GB VPS both work, because approvals go through Telegram and posting goes through the API.

The daily loop

Each cron slot runs the same five steps.

  1. Check the budget

    A hard daily cap, three by default and yours to change, plus nothing resembling the last ten topics. Look up the slot's pillar in the weekly grid.

  2. Gather real material

    Commits, releases, and READMEs from your public repos via the gh CLI, AI stories from the Hacker News API, your own notes and photos. Facts the agent didn't fetch don't go in a draft.

  3. Write the post

    Following the voice rules. A repo post is media-first: a demo GIF or code screenshot with no URL in the body, plus the repo link as a separate reply. Both verified against X's real character weighting.

  4. Send it to Telegram

    Media included, so you approve the post as it will actually appear. Reply ship to post, skip to discard, or describe a change and it revises.

  5. On ship, publish

    Through the X API v2 via xurl, X's official OAuth CLI: upload the media, publish, confirm the returned id, then publish the link as the first reply. Log the URLs.

Honest limits

The things a landing page usually leaves out.

  • The guardrails are instructions, not technical controls. Fetched content is treated as data and a source carrying instructions aimed at the agent gets discarded, but that's a rule the model follows. The approval gate exists so anything that slips through still has to get past you.
  • Posting costs money. X's free tier ended in February 2026. Observed billing is about $0.02 per post, and a repo post bills as two because the link ships as a reply.
  • Draft quality is only proven on Claude. That's what the voice rules were tuned against. The ChatGPT/Codex path works, but expect to tune voice compliance yourself.
  • One account, one approver. Multi-account fights the per-machine state model, and the laptop and the server must never run at the same time or you'll double-post.

Full detail in How it works.

Try one loop without posting anything

Run the wizard, message your bot postflight: draft a post, and reply skip. You'll see the whole thing run with nothing published.