shipnote logoshipnote
NEWNightly dataset is live→

Turn what you ship into posts you approve.

shipnote reads your public commits each night and prepares material for tweets and blog posts. Every claim is tied to a commit. Nothing goes out until you approve it.

shipnote · pipeline
human gate · review required
01 · DatasetWorking

Nightly export

Public commits and full diffs from the last 30 days, built by a scheduled GitHub Action.

02 · SelectWorking

Ranked commits

Merges, lockfile-only changes, and used commits are skipped. The rest are ranked by change and message quality.

03 · DraftPlanned

Grounded drafts

Tweets and blog drafts that cite commit SHAs. Claims without a matching commit are removed.

04 · ReviewPlanned

You approve

Each draft sits beside its evidence. You approve, edit, or reject. Nothing posts automatically.

2026-10-30: 450 commits, 447 selected, 3 skippeddrafting and approval: next milestones

Capabilities

Built for technical integrity

Written for developers who care about accuracy, their own data, and getting credit correctly.

Every claim traced to a commit

Each factual statement links to the commit and file it came from. Validation runs before you see a draft.

SHA validation · planned

No auto-posting

shipnote has no posting code. Drafts are files, and you decide what happens next.

By design

Runs on your account

The nightly job reads the account from the repository owner. A fork needs two settings and one run.

Fork and run

Secrets scanned before upload

Gitleaks, pinned to a version, scans the dataset. A finding fails the run before anything is uploaded.

Working

Get started

Run it on your own account

Fork the repository, then fetch and select from your own nightly dataset.

bash
$ gh repo fork abhiudayg/shipnote --clone
$ cd shipnote && bun install
$ SHIPNOTE_REPO=you/shipnote bun cli/shipnote.ts fetch
$ bun cli/shipnote.ts select
Read the documentation →