Prompt
I just added a --dry-run flag to our deploy CLI in src/commands/deploy.ts. Draft a Bluesky post for developers showing the flag in one line of usage, what it prints, and a link to docs.example.dev/cli/deploy. Keep it under 260 graphemes. How to do it
- Mint a Bluesky agent key In https://app.socialhandoff.com, open Connections, connect your Bluesky account, then create an agent key scoped to Bluesky with draft permission only. Copy the key when it is shown; only its hash is stored.
- Add the server to mcp.json In .cursor/mcp.json, add a server with url https://app.socialhandoff.com/mcp and a headers block carrying Authorization: Bearer and the Bluesky key. Keep the key in an environment variable, not in git.
- Confirm it in settings Open Cursor settings, then MCP, and check the server shows a green status with draft_post and schedule_post listed.
- Draft from the editor In agent chat, ask Cursor to turn the feature you just finished into a Bluesky post. It drafts, you approve in the inbox.
Example draft
New in the deploy CLI: --dry-run. It prints every resource it would create, change, or delete, then exits without touching anything. deploy --dry-run --env staging Docs: docs.example.dev/cli/deploy
Gotchas
- The 300 limit counts graphemes, so an emoji or accented letter counts as one. Anything longer should become a reply-chain thread, not a clipped post.
- Bluesky refuses images over 1 MB and allows at most 4 per post. Resize screenshots before the agent attaches them, and add alt text to each.
- Links, @handles, and #tags become clickable facets when the post publishes. Have the agent write the plain URL and handle, not markdown links.
- Cursor reads .cursor/mcp.json from the project. If you commit that file, reference the key through an environment variable so it never lands in git.
- Character limit: 300 graphemes per post. An emoji or an accented letter counts as 1 grapheme even if it uses several bytes.
- Media per post: Up to 4 images, or 1 video. Images and video cannot be mixed in one post.
- Image size: The AT Protocol image embed accepts blobs of about 1 MB each; the official app compresses larger photos. SocialHandoff checks for 1 MB per image.
- Video: Up to 3 minutes and 100 MB, MP4. SocialHandoff does not publish video to Bluesky.
Frequently asked questions
Can Cursor post to Bluesky without me leaving the editor?
It can draft and schedule without you leaving. Approval happens in the inbox, which you can keep open in a browser tab or on your phone.
Will Cursor link to my repo correctly on Bluesky?
Yes. Write the plain URL and it becomes a clickable link facet when the post publishes. The same happens for @handles and #tags.
Do I need a Bluesky app password?
Yes. Create one in Bluesky under Settings, then App passwords, and paste it when you connect the account. It can be revoked without changing your main password.