You ship. Beacon drafts the tweet.

Beacon watches your commits — scans them for secrets, scores what's worth telling, and drafts build-in-public posts for every platform you're on. Local, private, and never posted without you.

npm install -g beacon-bip
drafts for𝕏 / TwitterLinkedIndev.toRedditMedium
MIT licensed
works offline
~/projects/rocket-editor
$ git commit -m "feat: add offline sync for drafts"
[main 4f2c9a1] feat: add offline sync for drafts
 3 files changed, 87 insertions(+), 12 deletions(-)

✦ beacon · post-commit
   safety scan passed — no secrets found
   significance: 8/10 (threshold 6)
   drafting for twitter, linkedin, dev.to…

  3 drafts queued → run beacon review or beacon ui 

Every commit, five stages.

01 · capture

The post-commit hook reads your diff, message, and file stats into a typed snapshot. Diffs are truncated at ~8k chars to keep costs down.

02 · safety

A regex-only secret scanner runs before any LLM call. Critical findings block drafting entirely; warnings are redacted from what the model sees.

03 · significance

An LLM scores the commit 0–10 on the redacted diff. Typo fixes and dep bumps below your threshold (default 6) are skipped. No noise.

04 · draft

One LLM call writes a draft for every enabled platform — in your voice, your language, adapted to each platform's shape.

05 · queue

Drafts land atomically in ~/.beacon/queue.json, capped at 50. Nothing goes anywhere until you review.

Nothing leaves your machine without you.

Beacon never posts. It can't — it has no credentials for your social accounts. Approving a draft copies it to your clipboard, and that's the whole exit path.

  • approve → clipboard, never an API call
  • edit → your $EDITOR, or inline in the browser
  • discard or skip → the queue is yours
beacon review
✦ beacon review — 3 drafts in queue

draft 1/3 · significance 8/10
────────────────────────────────────
▸ twitter/x   linkedin   dev.to

  Shipped offline sync for Rocket Editor.
  Your drafts now survive a dead wifi
  connection — and so does your flow.
  87 lines, mostly worth it.

[a] approve → clipboard  [e] edit in $EDITOR
[d] discard             [s] skip
127.0.0.1:2322
3 drafts · significance 8/10live
twitter/xlinkedindev.to
Shipped offline sync for Rocket Editor. Your drafts now survive a dead wifi connection — and so does your flow. 87 lines, mostly worth it.
copy & approveeditdiscard
beacon ui

Or review it in the browser.

One command opens the same queue as a web app — every platform's draft side by side, edited inline. Commit in another terminal and the draft appears in the open tab, live.

  • one queue → approve in the terminal or the browser
  • 127.0.0.1 only → token-locked, never on the network
  • Ctrl-C → and it's gone

Built for people who'd rather be coding.

Secret scanner

API keys, JWTs, DB strings, .env assignments, private IPs — caught by regex before any model call. A leaked key blocks drafting for that commit, full stop.

Significance filter

Not every commit is a post. Each one is scored 0–10; anything under your threshold is quietly skipped. Your followers never see "fix typo".

Your voice & language

Your name, bio, and voice notes shape every draft — in any language you configure. It reads like you wrote it, because you told it how you write.

Digest mode

beacon draft --week turns a week of commits into one "here's what I shipped" post. Also --today and --since "3 days ago".

Five platforms, one prompt

Twitter/X, LinkedIn, and dev.to on by default; Reddit and Medium a toggle away. Each gets its own draft, adapted from a single pass.

Fully offline with Ollama

Point Beacon at a local model and your diff never leaves your machine at all. No key, no cost, no network. Anthropic and OpenAI-compatible APIs also supported.

Bring your own model:AnthropicOpenAIOpenRouterGroqTogetherOllama — local, no key

Fair questions.

Does it post automatically?

Never. Approving a draft copies it to your clipboard. Beacon has no access to your social accounts — there are no posting credentials anywhere in the tool.

Is my code sent anywhere?

Only a secret-redacted, truncated diff goes to your chosen LLM provider — or nowhere at all if you use Ollama. No cloud, no database, no sync: just two JSON files under ~/.beacon/. The one server Beacon runs is beacon ui — on 127.0.0.1, on your own machine.

What if I commit a secret?

The scanner catches it before any LLM call and blocks drafting for that commit entirely. The model never sees your raw diff — critical findings never reach it in any form.

Does it spam a draft for every commit?

No — commits scoring below the significance threshold (default 6/10) are skipped. Typo fixes, dep bumps, and routine refactors never make it to the queue.

What does it cost?

Beacon is free and MIT-licensed. You pay only your own LLM usage — or nothing at all with Ollama.

What do I need to run it?

Node ≥ 20 and git. That's it. Install globally with npm, run beacon init, and your next commit gets drafted.

Your next commit could be your next post.

Read the docs →