Bismuth bismuth
web v0.1.0 cli v0.2.3
← Back

About Bismuth

Privacy & data

No tracking
No accounts
No server storage

Bismuth runs entirely in your browser. Your documents are parsed locally — they are never uploaded to any server. No data leaves your machine.

The only network requests made are:

  • Google Fonts — the layout loads Inter and JetBrains Mono via Google Fonts. If you prefer not to make this request, you can self-host the fonts or use a content-blocking extension.

No cookies, no local storage, no fingerprinting.

Analytics

This site uses Umami, an open-source, GDPR-compliant analytics tool hosted at analytics.ewancroft.uk. It collects anonymous page views and referrer data — no cookies, no personal data, no cross-site tracking. Your IP address is truncated before processing. You can verify the privacy policy at umami.is/privacy.

Supported formats

Leaflet

Converts pub.leaflet.content and site.standard.document records with full block support — headings, paragraphs, lists, images, and embeds.

Pckt

Handles blog.pckt.content with both inline and blob-mode content resolution.

Offprint

Supports app.offprint.content including task lists, web embeds, and coloured highlights.

What's converted

  • Headings (h1–h6)
  • Paragraphs and line breaks
  • Bold, italic, and strikethrough
  • Ordered and unordered lists
  • Links and images
  • Code blocks (fenced)
  • Block quotes
  • Task lists (Offprint)

Not converted: Embeds are represented as links. Complex layouts (tables, columns) are flattened.

CLI / Local usage

Bismuth also ships as a Node.js command-line tool for converting documents locally or in scripts.

Prerequisites

  • Node.js v18 or later
  • pnpm (recommended) — or npm / yarn

Install & build

# Clone the repository
git clone https://github.com/ewanc26/pkgs.git
cd pkgs/packages/bismuth

# Install dependencies
pnpm install

# Build
pnpm build

Usage

# Convert a file
pnpm start input.json

# Convert and write to a file
pnpm start input.json -o output.md

# Read from stdin
cat input.json | pnpm start -

# Dry run (print to stdout)
pnpm start input.json --dry-run

Full documentation is available at docs.ewancroft.uk/projects/bismuth.

Licence

Bismuth is free software released under the GNU Affero General Public License v3.0 (AGPL-3.0-only).

In short: you are free to use, modify, and redistribute this software, but any modified version you run as a network service must also be released under the same licence with its source code made available.

The full licence text is included in the repository.

Credits

Created by

Ewan Croft Author & maintainer

Contributors

Contributions via GitHub are always welcome. The full contributor list is maintained there.

Dependencies