turn your claude sessions into draft posts. extract the moments worth sharing, drop them into your voice, ready to copy-paste.
a claude skill that reads the current session and drafts 3-5 social media posts (240 to 400 chars) based on what actually happened in it. lessons, ships, hot takes, receipts, funny moments, observations, educational bits.
built because most "AI writes my tweets" tools fail the same way: they optimize for posts that sound like posts. real posts sound like the person was annoyed, or shipped something, or noticed a thing. sessionclips extracts, it doesn't generate.
trigger it with /post or /clip or "draft a post from this" mid-session. claude will:
- scan the session for post-worthy moments across 8 categories (lesson, ship, hot take, receipt, funny, observation, process, educate)
- refuse to draft if anything sensitive is in the session (api keys, unpatched vulns, client work, pre-launch contracts)
- draft 3-5 variants with descriptive titles ("the cold open," "the sleeper hit," "the receipt drop")
- enforce your voice rules from
voice.md(no em dashes, no AI-tells, no CTAs, etc) - output everything in code blocks with char counts, ready to paste
example output:
drafts (3 variants)
pick whichever fits your mood, paste, post.
---
**1. the teach (educate, walks through the exact fix)**
```
spent 2 hours on an EAS build that kept failing silently.
fix: add `legacy-peer-deps=true` to .npmrc. expo SDK 54 has a peer dep conflict that throws no readable error.
filing under "things claude figured out faster than the docs."
```
(289 chars. teaches the expo+eas gotcha. would land with mobile devs.)
the repo ships with a pre-built sessionclips.zip at the root.
- download
sessionclips.zipfrom this repo (or click "code → download zip" and grab the file from inside) - in claude.ai: settings → capabilities → skills → upload skill
- drag and drop
sessionclips.zip - trigger it in any session by typing
/postor "draft a post from this"
if you've cloned the repo and edited sessionclips/voice.md to your voice, rebuild the zip:
windows (powershell):
.\pack.ps1mac / linux:
./pack.shboth produce a clean sessionclips.zip at the repo root, ready to upload.
git clone https://github.com/iam25th1/sessionclips.git
cp -r sessionclips/sessionclips ~/.claude/skills/sessionclips(yes, sessionclips/sessionclips is right: the first is the cloned repo folder, the second is the skill subfolder inside it.)
claude code will autoload it on next run.
if you upload the zip to claude.ai and it appears in your skills list but claude says something like "the SKILL.md file isn't on disk" or "can't read the skill" when you trigger it, the zip has the wrong structure. this usually happens when:
- you zipped the
sessionclips/folder instead of the files inside it - you right-clicked the folder on windows and used "send to → compressed folder," which wraps everything in an extra layer
- macOS added
__MACOSXor.DS_Storefiles that confuse the parser
the zip must look exactly like this when unzipped:
SKILL.md ← at the zip root, no folder wrapping
voice.md
NOT this:
sessionclips/ ← folder wrapping the files breaks the upload
├── SKILL.md
└── voice.md
NOT this:
sessionclips/
└── sessionclips/ ← double wrapping definitely breaks it
├── SKILL.md
└── voice.md
fix: use the included pack.sh (mac/linux) or pack.ps1 (windows) to build the zip correctly. they put SKILL.md and voice.md at the zip root with no wrapping.
manual fix on windows: navigate INTO sessionclips/, select SKILL.md and voice.md (both files, not the folder), right-click → "send to → compressed folder."
manual fix on mac: navigate INTO sessionclips/, select both files, right-click → "compress 2 items."
if you only have SKILL.md (no voice.md), uploading the loose .md file directly also works but you lose the voice customization layer.
the skill ships with a default voice (mine, lowercase, no em dashes, no AI-slop). to use it for your own posting:
- open
voice.md - edit the hard rules, stylistic preferences, and good/bad examples to match how you actually write
- add phrases you say, phrases you don't say, topics you post about
the skill reads voice.md before every draft. your edits take effect immediately.
sessionclips will not draft from sessions containing:
- api keys, tokens, passwords, .env contents
- specific client work or paid contract details
- security vulnerabilities you haven't patched yet
- pre-launch token contract addresses or unannounced launches
- anything you flagged "private" / "off the record" earlier in the session
- identifying details about other people without consent
if any of these are detected, the skill refuses with a one-line explanation and does not produce a "scrubbed" version unless you explicitly ask.
i ship a lot of things using claude. most of those sessions have at least one moment that would make a decent post. but "decent post" requires:
- pulling the actually interesting bit out of an hour of debugging
- compressing it to 280-400 chars
- not sounding like an LLM wrote it
- not posting api keys by accident
sessionclips does all four. i built it for myself (@25thprmr) and open-sourced it because the prompt engineering community is small and we should share tools.
things deliberately not in v1, ranked by likelihood of getting added:
- cross-session pattern detection. "you've hit this exact bug 4 times across sessions, that's a post." needs the past-chats search and is a different shape of skill.
- receipts auto-reply. when a draft makes a claim ("claude caught X"), auto-draft the follow-up reply with timestamps, diffs, or screenshots as proof.
- draft log. persistent storage of what's been drafted/posted so the skill doesn't keep resurfacing the same insight.
- multi-account support. voice profiles per account (personal vs project handles).
- thread mode. for sessions where one post isn't enough.
PRs welcome on any of these.
if you fork it for your own voice, you don't owe anyone a PR. if you find a bug in the extraction logic or the refusal list, open an issue. if you have a voice rule the default should ship with (a phrase that's universally AI-slop), open a PR to voice.md defaults.
MIT. do whatever you want with it.
built by @25thprmr with claude. the skill drafted its own launch posts, which felt appropriate.