Automate Social Media with Goose, Block's Open-Source Agent
Goose can schedule and publish your social posts as one step inside a bigger task: add PostAxis as a remote extension, approve the sign-in once, and any Goose session can draft posts, check them against each network's rules and put them on your PostAxis calendar. Because Goose also reads files, runs commands and uses your other extensions, the post can come straight out of the work instead of being written afterwards. This guide is for developers and operators who use Goose on the desktop or in the terminal and want social media to be part of the routine.
What you can automate with Goose
Goose is an autonomous agent that chains steps together, so think in tasks, not single posts:
- Release notes to posts: read the commits since the last tag, write the notes and schedule the announcement, all in one session.
- A recurring weekly digest built from the week's changes and published to Telegram and LinkedIn.
- A full week of content around one theme, validated before anything is saved.
- Queue maintenance: list everything scheduled this week and repair posts that would fail on Instagram or X.
- Cross-extension tasks, where Goose pulls material through one extension and posts through PostAxis.
What you need
- A PostAxis account. Every plan starts with a 7-day free trial and includes MCP access with OAuth sign-in.
- At least one social account connected under Accounts in PostAxis.
- Goose, either the desktop app or the CLI, with a model provider configured.
- No API add-on is needed for the standard setup, since Goose signs in with OAuth.
How to connect Goose to PostAxis (step by step)
-
Create your PostAxis account. Sign up at app.postaxis.io.
-
Connect your social accounts. Open Accounts in PostAxis and connect Instagram, TikTok, YouTube, X, LinkedIn, Facebook, Threads or Telegram. Goose can only post to accounts connected here, and it never sees your social media passwords.
-
Add the extension. Name it
postaxisand use the endpoint below.- Desktop app: Extensions → Add custom extension, type Streamable HTTP.
- CLI: run
goose configure, choose Add Extension → Remote Extension (Streamable HTTP).
https://postaxis.io/api/mcp
-
Sign in. Goose opens the PostAxis sign-in in your browser. Log in and click Approve.
-
Make sure it is enabled. Check that the postaxis extension is switched on in the Extensions list. An extension added through
goose configureis available in both the CLI and the desktop app. -
Check it works. Start a session and ask:
List my PostAxis workspaces and the social accounts in each one.
Goose should call list_workspaces and list_accounts and answer with real account names. If it does, you are connected.
4 workflows you can copy
Release notes from the last tag
This is the job Goose is built for: read the repo, write something useful, act on it.
In this repo, read the commits since the last git tag and group them into new
features, fixes and other changes. Write release notes for CHANGELOG.md. Then write
an X post about the single most useful change and a LinkedIn post listing the main
changes in plain language. Schedule both for 17:00 Europe/Berlin today.
What Goose does: runs git to read the history, writes the notes, then calls list_accounts, get_platform_rules and create_post with a caption per account. You get something like: "Scheduled for 17:00 today: an X post (232 characters) and a LinkedIn post listing the four main changes."
Fill next week from one theme
When you know what you want to talk about but not what to say each day.
Next week is empty. Plan one post a day, Monday to Friday at 10:00
America/Los_Angeles, for X, LinkedIn and Threads, built around our pricing update.
Make each day a different angle: the change, who benefits, a common question, a
customer scenario, a reminder. Validate everything first and show me the list.
What Goose does: builds 15 versions (five posts, three networks each) and sends them through create_posts_bulk with validate_only=true, which checks every rule and saves nothing. Read the list, ask for changes, then tell Goose to save. One bulk call holds up to 50 posts.
The weekly "what's new" digest
Run this every Friday. If you use Goose recipes (available in recent versions), save the prompt as one so the digest is a single command; otherwise keep the prompt in a text file.
Summarise this week's merged commits as a "what's new" post for users: a short
intro line, then up to five bullet points, then a link to our changelog.
Publish it to our Telegram channel and our LinkedIn page now. Confirm when both
are live.
What Goose does: reads the week's history, writes the post, calls create_post with publish now, then get_post to check the per-network status. Telegram allows long text posts, so this is a good home for the full list.
Fix what won't publish
Before a busy week, let Goose audit the queue.
List my scheduled posts for the next seven days. For each one, check it against
the current Instagram and X rules. Fix any caption that is too long. If an
Instagram post has no image or video, do not guess; tell me which ones need media.
What Goose does: list_posts for the date range, get_platform_rules, get_post for details, and update_post for safe fixes. Instagram needs media, and PostAxis does not create images, so Goose flags those rather than inventing something.
Network limits Goose works within
| Network | Caption limit | Media rules |
|---|---|---|
| X (Twitter) | 280 characters | Optional; up to 4 images or one video |
| 3,000 characters | Optional; up to 9 images or one video | |
| Threads | 500 characters | Optional; up to 10 images or one video |
| Telegram | 4,096 characters, 1,024 with media | Optional; up to 10 images or one video |
| 2,200 characters | Required; 1 to 10 images or one video (Reel), professional accounts only |
Video must be MP4 or MOV, 3 to 300 seconds, in 16:9, 9:16, 4:3, 3:4 or 1:1, one per post, and never mixed with images.
When a post breaks a rule, PostAxis rejects it before saving and says why. For an autonomous agent this matters more than usual: Goose gets a clear error mid-task, corrects the post and carries on, instead of finishing the task with a broken post sitting in your calendar.
Tips for better posts
- Write a .goosehints file. Goose reads a
.goosehintsfile for project context. Add a social section with your audience, tone, link format and hashtag policy, so every session starts with the same voice. - Validate first. Ask for
validate_onlyon any plan with more than one or two posts. - Say the timezone. "17:00 Europe/Berlin", not "5pm". Without one, the agent uses the timezone it was told or UTC.
- Keep risky jobs in draft. For anything public-facing and new, ask Goose to save drafts. You review them under Drafts in PostAxis and schedule from the calendar.
- Bound autonomous tasks. Long Goose sessions can drift. Tell it exactly which networks, how many posts and what not to touch ("do not delete anything").
- Be careful running unattended. If you run Goose headless, start with drafts only until you trust the output, and remember the 300-posts-per-24-hours limit per account through MCP.
Troubleshooting
Goose doesn't list any PostAxis tools. The extension is probably switched off. Turn on postaxis in the Extensions list and start a new session.
The agent says no accounts are connected. Connect at least one account under Accounts in PostAxis. With several workspaces, tell Goose which one: "use my Acme workspace".
401 Unauthorized or "sign in again". The sign-in expired or was revoked. Reconnect the extension so Goose opens the PostAxis sign-in again.
A post was rejected before saving. PostAxis checks caption length, media count, video length and format first. Ask Goose to read the error and fix it.
Posts went out at the wrong time. Add the timezone to your request and ask Goose to update the affected posts.
FAQ
Can Goose post to social media automatically?
Yes. With PostAxis added as a remote extension, Goose can draft, schedule and publish posts to any account you connected in PostAxis, including X, LinkedIn, Threads, Telegram, Instagram, TikTok, YouTube Shorts and Facebook Pages.
Does it work in the Goose CLI too?
Yes. Add the extension with goose configure and it is available in both the CLI and the desktop app.
Is it free?
Goose is open source. MCP access with OAuth is included in every PostAxis plan, and every plan starts with a 7-day free trial.
Does Goose see my social media passwords?
No. Social accounts are connected inside PostAxis, and Goose only gets access to PostAxis through the sign-in you approve. You can revoke it any time under Settings → API keys, in Connected agents.
Does Goose write a different version for each network?
It can, and it should. Name the networks in one request and Goose sends one post with a version per network. PostAxis rejects any version that breaks that network's limits before it is saved.
Goose is most useful when posting is the last step of something it was already doing. The Goose agent page has the setup at a glance, the MCP reference lists every tool, and the complete guide to AI agents for social media compares Goose with other agents. For similar setups, read the guides for Claude Code and OpenCode. Start your free trial to try it.
Ready to simplify your social media?
PostAxis helps builders and creators publish to all platforms from one dashboard with scheduling, cross-posting, and automation.
Join the waitlist →