← All tools

kriasoft/obserf

Popularity 75 Updated Development & Build

Local-first CLI that finds relevant conversations where your product can genuinely help, ranks the opportunities, and drafts responses.

githubauto-collected

Installation

A directly usable install command is not verified yet. Check the project documentation or releases.

Obserf

Obserf (obserf.com) finds public conversations and listings where mentioning your project could help someone, ranks them, and drafts what to say. It never posts.

Maintaining a project leaves little time to promote it. Search turns up hundreds of loosely related pages, and deciding which are active, relevant, and open to a maintainer's contribution takes longer than writing the replies. Obserf narrows that reading to a ranked inbox, with a reason for each finding:

 78 #42   Looking for a local way to tail and filter JSON logs
     example · question · 2 drafts · https://news.ycombinator.com/item?id=44444444
     The author is describing the exact problem the project solves and is asking
     for recommendations; HN tolerates a maintainer answering with disclosure.

<supIllustrative, not a recorded run.</sup

It needs Bun 1.4 or later and Claude Code signed in with a subscription — see Quick start.

How it works

  • Discover — your profile's queries go to Hacker News, Reddit, GitHub and Brave.
  • Gate — deterministic rules drop duplicates, findings you skipped, dismissed or acted on, blocked domains, stale or thin pages, and anything assessed recently that has not changed. None of this costs a model call.
  • Assess — Claude rates each survivor and gives a reason, with extra evidence where a source can fetch it, such as a GitHub list's merge activity. Code turns the ratings into a 0–100 score.
  • Review — in the terminal or a local web inbox: shortlist, skip, dismiss, or mark as acted on.
  • Draft — on request, from the thread's current text where Obserf can fetch it, otherwise the stored excerpt. You edit it and post it yourself.

An opportunity must be useful, permitted, and free, with a public way to take part: a comment, a reply, or a submission. The model has no tools and cannot read a venue's rules or pricing, so a finding is only not known to be forbidden and not known to cost money. Read the thread and the venue's rules before you post.

What stays on your machine

Obserf is a personal tool for one operator and a handful of projects. There is no account and no Obserf service. This repository ships no projects and no data: your profiles, your database and your .env live in a workspace you own, and your triage decisions and notes never leave it. The only server Obserf runs is obserf serve, on loopback.

What does leave: your queries go to the search providers you configure. Gate survivors go to Claude with the evidence gathered about them and your profile text, and again when you ask for a draft, with the thread's current text where Obserf can fetch it or the stored excerpt otherwise. Credentials authenticate only their own provider and never enter a prompt. Model calls go through Claude Code; if your environment routes them elsewhere, for example with ANTHROPICBASEURL or a CLAUDECODEUSE switch, the first model call names the variables.

Status

The discover, review and draft loop works end to end. Whether it finds enough worth posting is not yet measured: there is no outcome tracking or eval set, so treat the ranking as a reading order. See the roadmap.

Quick start

You need:

  • Bun 1.4 or later.
  • Claude Code, installed and signed in with a subscription. Obserf calls it through the Claude Agent SDK with tools disabled. No Anthropic API key is needed, and the calls use the same quota as your interactive Claude Code sessions (ADR-008).
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                      # assess the survivors with Claude
bun run obserf serve                     # review at http://127.0.0.1:4000