Skip to content

iam25th1/Sessionclips

Repository files navigation

sessionclips

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.


what it does

trigger it with /post or /clip or "draft a post from this" mid-session. claude will:

  1. scan the session for post-worthy moments across 8 categories (lesson, ship, hot take, receipt, funny, observation, process, educate)
  2. refuse to draft if anything sensitive is in the session (api keys, unpatched vulns, client work, pre-launch contracts)
  3. draft 3-5 variants with descriptive titles ("the cold open," "the sleeper hit," "the receipt drop")
  4. enforce your voice rules from voice.md (no em dashes, no AI-tells, no CTAs, etc)
  5. 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.)

install

option 1: claude.ai (web/desktop), recommended

the repo ships with a pre-built sessionclips.zip at the root.

  1. download sessionclips.zip from this repo (or click "code → download zip" and grab the file from inside)
  2. in claude.ai: settings → capabilities → skills → upload skill
  3. drag and drop sessionclips.zip
  4. trigger it in any session by typing /post or "draft a post from this"

option 2: build the zip yourself (after editing voice.md)

if you've cloned the repo and edited sessionclips/voice.md to your voice, rebuild the zip:

windows (powershell):

.\pack.ps1

mac / linux:

./pack.sh

both produce a clean sessionclips.zip at the repo root, ready to upload.

option 3: claude code

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.


installation troubleshooting

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 __MACOSX or .DS_Store files 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.


make it yours

the skill ships with a default voice (mine, lowercase, no em dashes, no AI-slop). to use it for your own posting:

  1. open voice.md
  2. edit the hard rules, stylistic preferences, and good/bad examples to match how you actually write
  3. 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.


hard refusals

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.


why this exists

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.


roadmap

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.


contributing

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.


license

MIT. do whatever you want with it.


credits

built by @25thprmr with claude. the skill drafted its own launch posts, which felt appropriate.

About

turn your claude sessions into draft posts. extract the moments worth sharing, drop them into your voice, ready to copy-paste.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors