Repository navigation
Bluefield v0.2.0. First public release
The web, on the record. Bluefield turns any URL into clean Markdown or structured JSON and cryptographically signs every capture, so you can prove what your agent actually read, offline, with no account and no trusted server.
This is the first public tag. The npm packages are live at 0.2.0.
What it does
- Capture any HTTPS page as clean Markdown or structured JSON.
- Sign every capture with a Bluefield Provenance Manifest, called BPM. It is an Ed25519 signature over a JCS canonical JSON record binding the content hash from SHA-256, the URL, the fetch time, and the robots.txt state. Captures are tamper evident and verifiable offline, by anyone with the public key.
- Track changes over time with git like history and diffs.
- Give agents verifiable captures through a bundled MCP server, so an AI agent gets provenance natively rather than bolted on.
Local first by default. No hosted database, no telemetry. Bring your own proxy and LLM.
CLI
bf scrape <url> # capture a page (HTTPS only)
bf verify <id> # offline hash + signature check
bf diff <url> # changes between captures
bf log <url> # capture history
bf export <id> --out <path> # portable proof bundleInstall
Packages are on npm under the org @bluefields.
npm i -g @bluefields/cli
bf --helpOr build from source.
git clone https://github.com/danielvhofmann/bluefield && cd bluefield
pnpm install && pnpm -r build
node packages/cli/dist/cli.js --helpPackages
A TypeScript and Node monorepo, all published on npm at 0.2.0. The engine and CLI are AGPL-3.0. The spec, verifiers, and SDKs are Apache-2.0 so they can be embedded freely.
| Package | Purpose | License |
|---|---|---|
@bluefields/cli |
CLI and library | AGPL-3.0 |
@bluefields/fetcher |
Tiered HTTP to headless browser capture | AGPL-3.0 |
@bluefields/extractor |
HTML and PDF to Markdown and JSON | AGPL-3.0 |
@bluefields/differ |
Change classification | AGPL-3.0 |
@bluefields/attest |
BPM spec and offline verifier | Apache-2.0 |
@bluefields/sdk |
TypeScript client | Apache-2.0 |
@bluefields/mcp-server |
MCP tools for agents | Apache-2.0 |
@bluefields/primitives |
Shared utilities | Apache-2.0 |
@bluefields/db |
Drizzle schema | Apache-2.0 |
The BPM spec and test vectors live in packages/attest/spec/.
Where Bluefield is strong, and where it is not
The real differentiator is provenance and verifiability, not raw coverage or extraction quality. Being honest about that.
- Provenance. Signed, content addressed, offline verifiable captures. This is the point of the project.
- Fetch coverage. Strong but not complete on public pages. Anti bot fortress sites are the ceiling and need a user supplied unlocker. We do not pretend otherwise.
- Extraction quality. Solid, not superhuman. Dense listing, forum, and some structured pages are weaker than dedicated commercial extractors.
- HTTPS only.
If you need a tamper evident record of what a page said and when, this is built for you. If you only need maximum coverage of hostile sites, a specialized commercial API may fit better.