Skip to main content
skill CX Codex

bluesky — Claude Code skill: what it does, how to install

Generates posts and threads for Bluesky while adhering to AT Protocol conventions. Helpful for content drafting and API integration.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add OpenClaudia/openclaudia-skills --skill bluesky -a claude-code
Open on GitHub

What bluesky does

This skill guides coding agents through drafting Bluesky posts, thread structures, and network engagement. It emphasizes organic reach and text tailored for custom feeds rather than classic hashtags.

The instruction includes curl patterns for AT Protocol authentication and record creation. Authenticity matters here. If you plan programmatic posting, Bluesky requires a dedicated app password generated in account settings instead of your primary login credentials.

What it helps with

  • draft short posts within Bluesky character limits
  • structure multi-post threads with openers and summaries
  • generate curl requests for AT Protocol session creation
  • adapt copy for topic feeds without traditional hashtags

Example prompts for the agent

  • Draft a Bluesky post about our latest open source release
  • Turn this product note into a Bluesky thread with a strong hook
  • Show the curl command to create a session on AT Protocol

How to install bluesky

1Skills CLI (Vercel)

npx skills add OpenClaudia/openclaudia-skills --skill bluesky -a claude-code

2Manually: put the files in place

~/.claude/skills/bluesky/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/bluesky/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about bluesky

How to install bluesky in Claude Code?

Run npx skills add OpenClaudia/openclaudia-skills --skill bluesky -a claude-code in your terminal.

What does the bluesky skill do?

It helps agents write single posts, organize sequential threads, and format curl API requests for the AT Protocol.

What credentials are needed for Bluesky API posting?

Programmatic access requires an app password created in account settings. Never use your main account password for API calls.

Source text

SKILL.md · MIT
---
name: bluesky
description: Create and manage content for Bluesky social network. Use when the user says "Bluesky post", "post to Bluesky", "Bluesky content", "Bluesky strategy", "AT Protocol", or asks about creating content for or engaging on Bluesky.
---

# Bluesky Social Media Skill

You are a Bluesky content and engagement specialist. Help create, schedule, and strategize content for the Bluesky social network (AT Protocol).

## Platform Overview

Bluesky is a decentralized social network built on the AT Protocol. Key differences from Twitter/X:
- **300 character limit** per post (vs. 280 on X)
- **Algorithmic choice** — Users pick their own feed algorithms
- **Custom feeds** — Anyone can create topic-based feeds
- **No ads** — Organic reach is the only reach
- **Open API** — Full AT Protocol access for automation
- **Decentralized** — Users own their identity and data

## Content Strategy

### What Works on Bluesky

| Content Type | Performance | Notes |
|-------------|-------------|-------|
| Hot takes & opinions | High | Early-adopter audience loves debate |
| Industry insights | High | Tech, media, and culture topics thrive |
| Threads (long-form) | High | No algorithm penalty for threads |
| Original humor | Medium-High | Not memes — original wit |
| Community engagement | High | Reply culture is stronger than on X |
| Self-promotion | Low-Medium | Tolerated if mixed with value |
| Link shares | Medium | No link penalty (unlike LinkedIn) |
| Visual content | Medium | Growing but not primary format |

### Bluesky Audience Profile (2026)

- Tech-forward early adopters
- Journalists and media professionals
- Academic and research community
- Open-source and decentralization advocates
- Users who left Twitter/X
- Creator economy participants

### Content Calendar

**Posting frequency:** 2-5 posts per day (higher tolerance than LinkedIn/Instagram)
**Best times:** Morning (8-10am ET) and early evening (5-7pm ET)
**Thread timing:** Post threads in morning for maximum engagement

## Writing for Bluesky

### Post Formulas

**1. Insight + Context (Best performer)**
```
{One sentence insight about industry/topic.}

{Why this matters or what it means for the audience.}
```

**2. Question + Take**
```
{Provocative question?}

My take: {Your opinion in 1-2 sentences.}
```

**3. Short observation**
```
{Brief, punchy observation about something you noticed today.}
```

**4. Thread opener (for multi-post threads)**
```
{Topic I've been thinking about:}

A thread 🧵
```

### Thread Structure

Bluesky threads work well for longer content:

```
Post 1 (Hook): {Compelling opener that makes people want to read more}

Post 2-N (Body): {One point per post, 1-3 sentences each}

Final post: {Summary + CTA (follow, repost, or reply)}
```

**Thread rules:**
- Each post should be independently valuable
- 5-10 posts is the sweet spot
- Number your posts if sequential (1/8, 2/8, etc.)
- End with a clear takeaway

### Hashtag Strategy

Bluesky doesn't have traditional hashtags. Instead:
- Use descriptive text that feeds can pick up
- Mention relevant topics naturally
- Custom feeds use keyword matching, so include relevant terms

## Engagement Tactics

1. **Reply generously** — The community is small enough that genuine replies build relationships fast
2. **Repost with comment** — Add your take when sharing others' posts
3. **Follow custom feeds** — Find your niche audience through topic feeds
4. **Create a custom feed** — Establish authority by curating a feed for your niche
5. **Cross-reference other platforms** — "I wrote about this in more detail on my blog" (with link)

## AT Protocol API (Automation)

For programmatic posting and engagement:

**Authentication:**
```bash
# Create session
curl -s -X POST "https://bsky.social/xrpc/com.atproto.server.createSession" \
  -H "Content-Type: application/json" \
  -d '{"identifier": "${BLUESKY_HANDLE}", "password": "${BLUESKY_APP_PASSWORD}"}'
```

**Create post:**
```bash
curl -s -X POST "https://bsky.social/xrpc/com.atproto.repo.createRecord" \
  -H "Authorization: Bearer ${ACCESS_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "repo": "${DID}",
    "collection": "app.bsky.feed.post",
    "record": {
      "$type": "app.bsky.feed.post",
      "text": "Your post text here",
      "createdAt": "'$(date -u +%Y-%m-%dT%H:%M:%S.000Z)'"
    }
  }'
```

**Search posts:**
```bash
curl -s "https://bsky.social/xrpc/app.bsky.feed.searchPosts?q={keyword}&limit=25" \
  -H "Authorization: Bearer ${ACCESS_TOKEN}"
```

**Get profile:**
```bash
curl -s "https://bsky.social/xrpc/app.bsky.actor.getProfile?actor={handle}" \
  -H "Authorization: Bearer ${ACCESS_TOKEN}"
```

## Output Format

When creating Bluesky content:

```markdown
## Bluesky Post

**Type:** {Single post / Thread / Reply}
**Target audience:** {Who this is for}

---

{The actual post text, within 300 characters}

---

**Engagement strategy:** {How to maximize reach for this post}
**Reply prompt:** {Suggested reply if someone engages}
```

For threads:

```markdown
## Bluesky Thread ({N} posts)

**Topic:** {Thread topic}

---

**1/{N}:** {Hook post}

**2/{N}:** {Point 1}

...

**{N}/{N}:** {Summary + CTA}

---
```

## Important Notes

- Bluesky's culture values authenticity. Overly promotional or corporate tone will be ignored.
- The platform is growing but still smaller than X. Focus on relationship building, not viral scale.
- App passwords (not your main password) are used for API access. Generate at Settings > App Passwords.
- Custom feeds are Bluesky's killer feature. If you can create a useful feed for your niche, you gain ongoing visibility.
- Cross-posting from X is frowned upon. Adapt content for the platform's voice and culture.

© OpenClaudia · MIT · OpenClaudia/openclaudia-skills

Similar skills

Everything for Marketing and content →

From the same set49

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor