A desktop application for reading, visualizing, and interacting with astrolabe.json knowledge networks.
Astrolabe is a reader and visualizer for astrolabe.json — a content-addressable data format for knowledge networks. Each entry is identified by the SHA-256 hash of its record string, carries an ordered reference list pointing to other entries, and stores an opaque record for semantic annotation. The reference list induces a width (number of references minus one) and, together with acyclicity constraints, a depth decomposition. These two dimensions — width and depth — organize the network into layers of increasing semantic complexity.
Astrolabe provides an interactive environment to read, browse, and analyze these structures:
- ReadView — render
.astrolabe/docs/*.mdxwith LaTeX, entry blocks, and cross-references - NetworkView — visualize the entry graph with d3-force simulation
- DetailView — inspect entries with structured record rendering
- Plugin system — extensible analysis and visualization
{
"<12-char-hash>": {
"ref": ["<hash>", ...],
"record": "<string>"
}
}- ref — an ordered list of hashes, any length.
|ref| - 1defines the width of the entry.- width 0:
ref = [self_hash]— an atom (base unit) - width 1:
ref = [A, B]— a binary relation - width k:
ref = [h₀, h₁, ..., hₖ]— a higher-dimensional semantic relation
- width 0:
- record — a plain string. The core layer does not interpret it. Plugins define conventions for structured content (JSON with
sort,source,title,notes, etc.) - hash —
SHA256(record)[:12 hex], content-addressable. The reference list does not participate in hash computation.
The format is general-purpose. Any domain — mathematics, software, biology, legal — can use it by defining its own record conventions.
Astrolabe documents can use \entryref{hash} and \entryblock{hash} macros in .mdx files and record notes fields to create cross-references and inline entry displays. Standard $...$ LaTeX math is rendered via KaTeX.
Plugins extend Astrolabe with custom analysis, visualization, and UI. They can transform network data, add sections to the detail panel, and define record conventions.
The built-in plugin for network analysis. It extracts width-0 (atoms) and width-1 (edges) entries as a directed graph, and supports multiple network analysis metrics and visualization modes. See src/plugins/leannets/README.md for the full specification.
npm install
cd backend && python3 -m venv .venv && source .venv/bin/activate && pip install -e ".[dev]"
# Run (backend + Tauri desktop app)
npm run dev:all
# Tests
npm test # frontend (vitest)
cd backend && python3 -m pytest # backend (pytest)