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):
-
Linux:
basalt-linux-x64·basalt-linux-arm64 -
macOS:
basalt-darwin-x64·basalt-darwin-arm64 -
Windows:
basalt-windows-x64.exe
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)
-
Download from the latest release:
manifest.json·main.js·styles.css·sql-wasm.wasm -
Create the plugin folder in your vault:
<your-vault>/.obsidian/plugins/basalt/ - Drop all four files into that folder.
- 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