Skip to content

capercaillie + signal graph

gledati (slav.) — to watch.
what a good analyst does before speaking.


what this is

Tools that turn public noise into structured signal — and hand it to an agent rather than to a dashboard nobody opens.

The pattern is the same every time: watch a set of sources continuously, score and attribute what comes back, notice when several independent sources say the same thing, and expose the result as data something else can query. Competitors are the first subject. They are not the only one that shape fits.


🔭 signal — our first public repo

gledach/signals · see it live →

Competitive intelligence your agents can query.

Watches a market, turns public noise into scored and attributed signals, exposes them over MCP — eight tools and signal:// resources, so Claude Code or any MCP client can ask "what changed at the tools we track this week?" and get structured data back. The dashboard is one client, not the product.

 ┌──────────────────────────┐   ┌────────────┐   ┌──────────────────────┐
 │  ingest                  │──▶│   turso    │──▶│  battlecards         │
 │  news · HN · reddit      │   │  (libSQL)  │   │  analyst briefs      │
 │  youtube · github        │   └─────┬──────┘   │  convergence alerts  │
 │  certs · sitemaps        │         │          └──────────────────────┘
 │  trends · search · email │         ▼
 └──────────────────────────┘   ┌───────────┐    ┌──────────────────────┐
                                │  analyst  │    │  MCP surface         │
                                │  /scan    │    │  8 tools · 30 res.   │
                                │  /deep    │    │  read-only by        │
                                │  /gap     │    │  default             │
                                └───────────┘    └──────────────────────┘

The unit that matters is a convergence — not a mention. One correlated pattern that several independent publishers corroborate, scored from its own evidence, with the rule that fired it stated inline. Ten raw mentions of the same press release are one event.

 13       AI coding agents + app builders tracked, across two segments
 13       signal sources, from RSS to certificate-transparency logs
 2,600+   signals in turso
 8        MCP tools · read-only until you say otherwise
 3        runtime dependencies · no build step · clone and run offline

Clone it, run npm run db:migrate, and you get a populated dashboard with no account and no API key. Point it at your own market by editing one gitignored file.


🛠 how it is built

 runtime  ·  Node.js, zero-dep bias — three runtime dependencies, no build step
 ai       ·  Claude via OpenRouter · Haiku triage · Sonnet synthesis · Opus depth · BYOK
 data     ·  Turso · libSQL · SQLite · markdown-in-git
 agents   ·  MCP over stdio · read-only by default · spend ceiling shared with cron
 ux       ·  dense, Linear-inspired dashboards · Playwright visual checks

🧭 operating principles

local-first. the laptop is the runtime. cloud is for sharing state.
convergence over alerts. one correlated insight beats ten raw mentions.
signal over polish. output quality before dashboard aesthetics — but both.
say what you cannot see. every tool ships an honest audit of its own blind spots.
read-only until asked. an agent does not spend your money because it found a button.
idempotent retry, not dual-write. retry until it sticks; never split the source of truth.


            __          __           __
    ____ _ / /___  ____/ /___ ______/ /_
   / __ `// // _ \/ __  // __ `/ ___/ __ \
  / /_/ // //  __// /_/ // /_/ / /__/ / / /
  \__, //_/ \___/ \__,_/ \__,_/\___/_/ /_/
 /____/
signal  ·  live demo  ·  email  ·  if it ships to turso, it shipped.

Pinned Loading

  1. signals signals Public

    Competitive intelligence on your laptop, agents can query. Watches a market, turns public noise into scored and attributed signals, and exposes them over MCP — not a dashboard a human has to read. …

    JavaScript

Repositories

Showing 7 of 7 repositories

Top languages

Loading…

Most used topics

Loading…