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
neurowirebinary. 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
pnpm add -g @neurowire/clinpm install -g @neurowire/cliNode 24+
Neurowire is ESM-only and needs Node >= 24. See Installation for the full matrix.
2. Point it at a URL
# 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.xmlNeurowire 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:
{
"name": "AI News",
"sources": [
{ "name": "Claude Blog", "url": "https://claude.com/blog" },
{ "name": "Simon Willison", "url": "https://simonwillison.net/atom/everything/" }
]
}Then fetch it:
neurowire --mesh ai-news.json --format json --limit 104. Render an HTML page
Install the page generator and turn a mesh into a self-contained HTML page (all CSS inline, no external requests):
pnpm add -g @neurowire/web
neurowire-web --mesh ai-news.json --out index.htmlnpm install -g @neurowire/web
neurowire-web --mesh ai-news.json --out index.htmlWhere to next
- CLI reference: every flag and subcommand.
- The model: the canonical feed shape.
- Atom format: the default serializer.
- Recipes: practical end-to-end workflows.