Skip to content

Getting started

Neurowire turns any blog, website, RSS, or Atom feed into clean, modern feeds. Point it at a URL and get back NWF (a compact custom format), Atom, RSS 2.0, JSON Feed 1.1, or Markdown. Bundle many sources into one mesh, group meshes into a construct, and render any feed, mesh, or construct into a self-contained HTML news page.

Three surfaces

Neurowire is one toolkit you can reach through three doors:

  • Library: the npm packages (@neurowire/core, @neurowire/ingest, @neurowire/taps, @neurowire/web). Fetch, parse, merge, and serialize feeds from your own code. See Library usage.
  • CLI: the neurowire binary. Point it at a URL, get a terminal view or a serialized feed, bundle meshes, watch for new posts, push to Slack. See CLI reference.
  • HTTP API: a small Hono service exposing GET /feed, /mesh, and /construct. Run it yourself and call it over HTTP. See HTTP API.

The data model is the same across all three: every parser produces a single canonical feed shape, and every serializer consumes it. Learn the model in The model.

60-second quickstart

1. Install the CLI

bash
pnpm add -g @neurowire/cli
bash
npm install -g @neurowire/cli

Node 24+

Neurowire is ESM-only and needs Node >= 24. See Installation for the full matrix.

2. Point it at a URL

bash
# a terminal view (no --format)
neurowire https://blog.rust-lang.org/feed.xml

# or a serialized feed to stdout
neurowire https://blog.rust-lang.org/feed.xml --format atom > rust.xml

Neurowire detects whether the URL is a feed or an HTML page. For an HTML page it follows a declared feed link, falls back to a curated per-host recipe (a tap), then to heuristic auto-detection.

3. Bundle a mesh

A mesh is a named bundle of sources, fetched in parallel and merged into one newest-first feed. Drop this into ai-news.json:

json
{
  "name": "AI News",
  "sources": [
    { "name": "Claude Blog", "url": "https://claude.com/blog" },
    { "name": "Simon Willison", "url": "https://simonwillison.net/atom/everything/" }
  ]
}

Then fetch it:

bash
neurowire --mesh ai-news.json --format json --limit 10

4. Render an HTML page

Install the page generator and turn a mesh into a self-contained HTML page (all CSS inline, no external requests):

bash
pnpm add -g @neurowire/web
neurowire-web --mesh ai-news.json --out index.html
bash
npm install -g @neurowire/web
neurowire-web --mesh ai-news.json --out index.html

Where to next