v0.8.5 · alpha · MIT

One idea in.
Every platform out.
In your voice.

Open-source content automation. You write one anchor. Springy cascades it into native, on-brand drafts for LinkedIn, X, Threads, Bluesky, Reels, TikTok, Medium, and more. Local-first, Claude or GPT, human-gated. Not a SaaS.

$ npm install -g @andersonfda/springy
anderson@laptop ~/my-brand — springy demo
$ npx springy demo
── [1/5] RANKED OPPORTUNITY ──────────────
rank 1 · score 87/100
title Anthropic ships Claude Sonnet 5 — "deep reasoning" goes public
── [2/5] CASCADE GRAPH ──────────────────
        RANKED OPPORTUNITY
              │
              ▼
         ANCHOR ESSAY  (critique loop ×3)
              │
       ╔══════╧══════╗    ← you approve
       ║   HITL #1   ║
       ╚══════╤══════╝
      ┌───┬───┼───┬───┐
      ▼   ▼   ▼   ▼   ▼
   LinkedIn  Thread  Bluesky  Reel  TikTok  …
              │
       ╔══════╧══════╗    ← you approve
       ║   HITL #2   ║
       ╚══════╤══════╝
              ▼
       PUBLISH QUEUE (API → browser fallback)
── [3/5] ANCHOR ESSAY ───────────────────
# I tried Claude Sonnet 5 for 4 hours. Here's what changed.
[…truncated — full essay ~1200 words, critiqued against voice-RAG]
── [5/5] COST ESTIMATE ──────────────────
Anchor essay (critique ×3) ~$0.18
5 platforms × critique loop ~$0.40
Humanize + images ~$0.40
Total ~$0.98
$

`npx springy demo` — offline, zero cost, just run it

Not a SaaS. Not an agent. A graph.

Three things make springy output sound like you, not like another ChatGPT Substack post.

Brand-voice RAG

Every generation retrieves your 5 best past posts (embedded with Voyage-3) and conditions on them. You're extending your own voice, not fighting GPT-voice.

Critique loop

Generator → critic (8 dimensions, 9 for long-form with a vulnerability check) → revise → humanize. Hard gates prevent obvious AI slop from shipping.

Two human gates

One on the anchor essay. One on the fan-out. You approve what goes in the queue. Publishing is explicit: --live plus a one-time "type YES" marker per project.

Different from Buffer. Different from Zapier.

Schedulers don't write. Agents wander. Springy is the third shape.

Buffer / Typefully Zapier / Make Raw LLM agent springy
Writes the post you do optionally (generic) yes, but drifts yes, in your voice
Multi-platform fan-out manual per channel you glue it whatever it feels like deterministic graph
Local-first data SaaS cloud SaaS cloud cloud your laptop
Human approval gates scheduling only if you build them rarely two, always
Extensible no yes, via their DSL prompts-as-config plugins + MIT
Total cost $15–$30 / mo $30–$100 / mo your API bill $5–$30 / mo (API only)

Who this is for.

Indie hackers and solopreneurs building an audience alongside a product and tired of rewriting the same idea six times.

Agencies and small teams running multiple brands who need consistent voice without hiring a content manager.

Technical founders who'd rather npm install than sign up for a SaaS. CLI-first, configurable, forkable.

If you want a drag-and-drop visual editor and zero Terminal time, springy is not for you yet.

60 seconds to try.

Zero API keys. Zero cost. Just see what it does.

~/anywhere
# Run the offline demo — zero keys, zero cost.
$ git clone https://github.com/andersonfda/springy
$ cd springy
$ npm install
$ node bin/cli.js demo

# When you like what you see:
$ node bin/cli.js doctor       # preflight
$ node bin/cli.js cascade --top # your first real run
$ ./ship-with-confidence.sh

Distribution is a tax on builders.

Stop paying it with your afternoon. Write the thing. Let the pipeline do the translation.

MIT · built in public · github.com/andersonfda/springy