Skip to content

v0.2.0

Choose a tag to compare

@koistya koistya released this 26 Sep 12:15
· 2 commits to main since this release
ecc42be

Obserf finds public conversations where mentioning your project would actually help someone, ranks them, and drafts what to say. It never posts. You read the thread, check the venue's rules, edit the draft, and post it yourself.

It exists for maintainers who have no time to promote what they build. Search turns up hundreds of loosely related pages, and working out which are active, relevant and open to a maintainer's reply takes longer than writing the reply. Obserf turns that reading into a short, ranked inbox with a reason beside every finding. It runs on your machine, on your Claude Code subscription, with no account and no API key.

Get started

You need Bun 1.4+ and Claude Code signed in with a subscription.

bunx @obserf/cli init ~/dev/marketing    # create a workspace
cd ~/dev/marketing && bun install
$EDITOR projects/example.ts              # describe your project, write real queries
bun run obserf scan --dry-run            # discover and gate only: no model calls
bun run obserf scan                      # let Claude assess what survived
bun run obserf serve                     # review at http://127.0.0.1:4000

Hacker News and GitHub work without credentials. The README covers Reddit, Brave and writing a good profile.

What's new in 0.2

  • Two ways to say no. Use skipped for a good finding you won't pursue, and dismissed for one Obserf shouldn't have shown you, with a category saying why (--category, or keys 1–8 in the inbox). Only dismissals count against the ranking, and each category points at what to fix, usually a line in notFor.
  • Scores stay current. A score is computed from the stored ratings and the thread's age when you read it, so an old thread sinks on its own. rescore is gone because nothing needs it.
  • Look back at a scan. obserf runs shows what each scan ran, what the gate dropped and what it spent. obserf list --run <n> shows that scan's top 10 as it left them, frozen, next to what you've done with each since.
  • Judge before you see the reason. In the inbox, hide reasons keeps the model's score and reason off a new finding until you've decided for yourself.
  • Better drafts. Drafting reads the thread's current text first: Hacker News items, GitHub issues, pull requests, repository READMEs, and other pages as plain text. It refuses a thread that is deleted or locked, and it says when it had to fall back to the stored excerpt.
  • A smoother inbox. It picks up an edited profile without a restart, u undoes the last status change, and after a it asks where you posted.
  • Stricter by default. Each command rejects flags that belong to another command. The web API validates what the CLI validates, and an error never exposes source code or file paths.

Upgrading from 0.1

bun add @obserf/cli@0.2.0

Stop obserf serve and any running scan first. On the next command, Obserf backs up the database and then applies two migrations; the output says where the backup went.

In 0.1, dismissed meant both "not for me" and "shouldn't have been shown". Run bun run obserf list --status dismissed and change any finding that was really the first kind with bun run obserf triage <id> skipped, so it doesn't count against the ranking.

Supply chain

This is the first release published through npm trusted publishing. CI builds it from the tagged commit and staged it with provenance, and a maintainer approved it with 2FA. No npm token exists to leak. See SECURITY.md to report a vulnerability privately.

Full changelog: v0.1.0...v0.2.0