Install

Pick the surface that already fits your day.

Every surface ships the same engine and shares one index at ~/.basalt/. Run as many side by side as you like.

CLI — from npm stable

The CLI is published to the public npm registry as basalted. Node 22+ or Bun 1.3+ is required.

npm install -g basalted
# or:
bun add -g basalted

basalt init        # walks the vault, builds the index
basalt brief       # writes today's brief into the vault
basalt about       # prints version + bindings

Pin a version if you want reproducible installs:

npm install -g basalted@1.4.0

LLM augmentation (v1.1.0+). Pass --llm ollama, --llm openai, or --llm anthropic to any brief command for a synthesized one-sentence Implicit Thesis and an LLM verdict (proven / apparent) on each Contradiction. Keys come from OPENAI_API_KEY / ANTHROPIC_API_KEY environment variables — never on disk.

basalt brief --llm ollama          # local; no key needed
basalt thesis --llm anthropic       # claude-sonnet-4-6 by default
basalt brief --llm openai --llm-model gpt-4o-mini

Standalone binaries

If you don't want Node/Bun on the box, grab a single-file cross-compiled binary from the latest release (no runtime needed):

Same five platforms for the MCP binary — basalt-mcp-<platform> on the same release page.

Desktop — beta beta

Single-binary Tauri 2 builds for macOS Universal, Linux x64, and Windows x64. Downloads are attached to every GitHub release.

All releases: github.com/plsft/basalt/releases. Past versions and checksums are listed there.

Beta status — read before installing. Desktop builds are unsigned during the open beta. macOS will show a "developer cannot be verified" warning on first launch — right-click the app → Open → confirm. On Windows, SmartScreen may prompt "More info → Run anyway". Signed installers land once the Apple Developer ID + Authenticode certificates are wired into CI.

The desktop app is read-only against your vault. Promote-to-note creates new files only; architectural tests in the codebase enforce this.

Obsidian plugin beta

Reads your active vault and writes briefs into a configurable folder. Three install paths during the open beta.

1. Manual install (recommended)

  1. Download from the latest release: manifest.json · main.js · styles.css · sql-wasm.wasm
  2. Create the plugin folder in your vault:
    <your-vault>/.obsidian/plugins/basalt/
  3. Drop all four files into that folder.
  4. In Obsidian: Settings → Community plugins → Installed plugins → Refresh, then enable Basalt.

Prefer one download? Grab basalt-obsidian-plugin.zip from the same release and unzip into the plugin folder.

2. BRAT (auto-updating beta)

Install the BRAT plugin from the community store, then in BRAT settings click "Add beta plugin" and paste:

plsft/basalt

BRAT will auto-update Basalt every time a new release is tagged.

3. Community store

Pending review by the Obsidian team. Once approved, the plugin shows up in Settings → Community plugins → Browse → basalt.

MCP server — from npm

For Claude Desktop, Cursor, and anything else that speaks MCP:

claude mcp add basalt -- npx -y basalted-mcp

Exposes six read-only verbs. Promote-to-note is intentionally absent — agents can describe a finding; only humans turn it into a vault file.

Web cockpit

app.basalted.com — Pro tier. Sign in with GitHub or Google, register a vault, generate briefs against your indexed corpus.

Verify

Every surface prints the same identity:

basalt about
# basalt 1.4.0
# core   1.4.0
# engine ok
# index  /Users/you/.basalt/db.sqlite