signals — Signals: public records that say a company just did something — openbash

Dated filings — money raised, a service stood up, a radio or a device registered, a fleet grown — from the registers that prove them.

signals

signals is a command on the openbash shell, reachable over HTTP, SSH and MCP with one key. It composes with the other programs through pipes; there is no per-program endpoint and no schema for the join.

signals new-carriers 2026-06-01 --state TX --min_power_units 10

help

signals: dated public filings, as JSON.

RETURNS
  One JSON object on stdout. `signals` with no arguments prints every study
  and what it takes.

WHY A DATE IS THE WHOLE POINT
  "This company makes medical devices" is a fact about the world. "This
  company registered a facility in March" is a reason to call them in April.
  Every record here carries the date it was filed, and a study that came back
  without one would not be worth running.

ABSENCE MEANS "HAS NOT FILED"
  These are registers, not directories. A company appears because it filed
  something. No Form D does not mean no funding — it means nothing was raised
  on that instrument; a priced round closes other ways. Read an empty answer
  as "nothing of this kind on record", never as "no such company".

WHICH STUDY REACHES A BUYER EARLIEST
  `certificates` is the freshest: a name appears in the transparency logs
  within hours of a service going live. `fcc` and `fda` are the earliest in a
  different sense — both are PRE-SHIPMENT. A company holds a grantee code or
  registers a facility months before there is a product to sell, which is a
  better moment to reach them than the week it launches. `funding` is money
  that was not there last quarter.

A PLATFORM DOMAIN ANSWERS "WHO JUST JOINED"
  `certificates myshopify.com` returns stores that got a certificate this
  week, because a new tenant gets a name under the platform's domain like
  anybody else. The same works for any hosted product with per-customer
  subdomains, and it needs no scraper anywhere near the platform.

THE FREIGHT STUDIES READ A MIRROR
  `carriers`, `new-carriers` and `fleet-changes` answer from a local copy of
  the federal motor carrier census, refreshed weekly. They are instant and
  cost no upstream call. Every answer carries `mirrored_at` and
  `carriers_held`, because an answer from a mirror is an answer about the last
  refresh — "no new carriers" read out of a stale mirror is a different claim,
  and a wrong one.

  `fleet-changes` exists because the source cannot be asked it. The census
  publishes fleet counts as text and keeps no history, so "who added trucks"
  is only answerable by having watched. That is what the mirror is for.

SELF-REPORTED COUNTS ARE NOT ALL TRUE
  Nothing validates a carrier's own filing. One claims 1,299,987 trucks
  against two drivers; 1,208 of them report more than fifty trucks per driver.
  Those come back with `counts_implausible: true` and sort last — they are
  marked, never dropped, because the carrier is real and only the number is
  wrong. Do not rank on `power_units` without reading that field.

COST
  The freight studies are free and instant. The other four fetch once and then
  keep the answer, so a repeat inside the freshness window costs nothing and
  says `cached: true`. `--refresh true` overrides that; it is for an answer
  known to be wrong, not for ordinary use.

Studies:
  funding       <company>
      SEC Form D filings naming this company — a private placement, with its date
  certificates  <domain>
      certificates issued for names at or under a domain — new subdomains, hours old
  fcc           <company>
      FCC equipment grantee registrations — a company committing to ship a radio, before it has one
  fda           <company>
      FDA device establishment registrations — who registered a facility, and what is listed in it
  carriers      <company>
      look a motor carrier up by name — its fleet size, drivers, address and when it registered
  new-carriers  <registered_since>
      every fleet that entered the federal register since a date — new trucking businesses
  fleet-changes <since>
      carriers whose fleet changed size since a date — a fleet adding trucks has work it cannot cover

JSON to stdout, so it composes: pipe to `jq` to pick a field, or `> /tmp/…` to keep it.
Run a study with no arguments — `signals funding` — to see what it takes.

What it answers

signals funding — SEC Form D filings naming this company — a private placement, with its date
signals certificates — certificates issued for names at or under a domain — new subdomains, hours old
signals fcc — FCC equipment grantee registrations — a company committing to ship a radio, before it has one
signals fda — FDA device establishment registrations — who registered a facility, and what is listed in it
signals carriers — look a motor carrier up by name — its fleet size, drivers, address and when it registered
signals new-carriers — every fleet that entered the federal register since a date — new trucking businesses
signals fleet-changes — carriers whose fleet changed size since a date — a fleet adding trucks has work it cannot cover