posting-to-atproto

Create, validate, and publish AT Protocol posts for Bluesky workflows.

23|1|Updated Jan 24, 2026
One-click install
npx skills add https://github.com/cpfiffer/central --skill posting-to-atproto
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: posting-to-atproto
Source: https://github.com/cpfiffer/central/tree/main/.skills/posting-to-atproto
Command: npx skills add https://github.com/cpfiffer/central --skill posting-to-atproto

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires httpx, python-dotenv, and includes scripts (resource) components.

What problem does it solve?

Crafts and validates AT Protocol posts for Bluesky, including single posts, threads, and long-form entries, while enforcing formatting rules and safe linking.

Core Features & Use Cases

  • Grapheme-limit handling: ensures posts respect the 300 grapheme limit and uses facets for mentions and URLs.
  • Versatile posting: supports single posts, threaded conversations, and GreenGale long-form blog posts.
  • Publish workflow: provides a script to publish content directly to ATProto-backed environments.

Quick Start

Use the included publish-greengale.py script to publish a post by providing a title, rkey, and content.

Frequently Asked Questions about posting-to-atproto

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I automate posting to Bluesky using the AT Protocol?

Posting to Bluesky via the AT Protocol involves automating post creation, validation, and authenticated publishing. This skill enforces formatting rules and safe linking for single posts, threads, and long-form entries.

What is the grapheme limit for ATProto posts and how are facets handled?

The AT Protocol enforces a 300 grapheme limit for posts. This skill ensures content respects this limit and uses facets to correctly parse and format mentions and URLs.

Can I publish threaded conversations and long-form blog posts to ATProto?

Yes, ATProto publishing supports single posts, threaded conversations, and GreenGale long-form blog posts. The provided script publishes long-form entries using a title, rkey, and content.

Do I need httpx and python-dotenv to post to Bluesky via the AT Protocol?

Yes, posting to ATProto requires httpx and python-dotenv as dependencies. You must configure environment-provided credentials to perform authenticated publishing to Bluesky.

What's the best way to ensure safe linking when posting to Bluesky?

Safe linking is enforced by validating content and using AT Protocol facets for URLs and mentions. This skill automates validation to ensure links and mentions are correctly formatted before authenticated publishing.