Example vault

A vault that teaches itself

The demo vault is a small research lab: five people, two companies, three projects, two papers and three topics. It uses every Typed Graph feature and includes a guide to typed graphs and a hands-on openCypher course. Every example in it runs live.

Download the vault (.zip) Browse on GitHub Try it in the browser

Open it in three steps

  1. Download and unzip typed-graph-demo-vault.zip. The plugin is already inside.
  2. In Obsidian, choose Open another vault → Open folder as vault and pick the unzipped folder.
  3. Turn on community plugins when Obsidian asks, then open Start Here.

If you work from a clone of the repository, npm install && npm run example:install builds the plugin straight into example/.

The guide

NoteWhat you learn
Start HereA live graph to check the setup, a tour, and five things to try in two minutes.
How typed graphs workNodes and labels, typed edges, signs, properties, pinned ids, stubs, schema notes, style precedence and edge embeds, each with a live query.
Cypher manualTwelve short lessons, from MATCH to variable-length paths, and a cheat sheet.
Query galleryEvery block option (view, columns, height, per-block styles) and recipes: ego networks, trust networks, funding chains, research maps.
Sidecar and agentsRunning the sidecar on this vault, the HTTP API, LadybugDB-only Cypher, and connecting Claude through MCP.
Diagnostics playgroundDeliberate mistakes: a broken property block, an unpinned embed, a missing edge, a syntax error and a write query.

The Cypher manual

Each lesson is a few sentences and a live block you can edit. The result updates as you type.

  1. Nodes: MATCH, RETURN, labels and property maps
  2. Relationships: direction, type alternation, edge properties
  3. Filtering with WHERE: comparisons, IN, CONTAINS, IS NULL
  4. Signs and built-in properties: r.sign, r.id, n.stub, type(), labels()
  5. Several patterns at once, and longer chains
  6. OPTIONAL MATCH as a left join
  7. Aggregation: count, sum, avg, collect, DISTINCT
  8. Chaining with WITH, and filtering on an aggregate
  9. Variable-length paths and path variables
  10. Sorting and paging
  11. Stubs and schema checks written as queries
  12. Limits of the built-in engine, and when to use backend: ladybug
```graph-query
view: table

MATCH (p:Person)-[:contributes]->(proj:Project)
WITH p, count(proj) AS projects
WHERE projects > 1
RETURN p.title AS person, projects
```

What is in the data

The vault is small enough to read in ten minutes, and each feature appears somewhere in it:

---
type: Person
role: research lead
joined: 2019-03-01
---
Alice met Bob in {{edge: alice-knows-bob . since}}.

## Team
knows:: [[Bob]] {since: 2020, label: "met at NeurIPS", id: "alice-knows-bob"}
mentors:: [[Dave]] {since: 2024}
- works_at:: [[Acme]] {role: "research lead", since: 2019}
leads:: [[Search]], [[Crawler]]

## Trust
+trusts:: [[Bob]] {weight: 0.9}
-distrusts:: [[Mallory]] {id: "alice-mallory", why: "phishing email"}

Tested like code

The vault is part of the test suite. Every query in it must parse and return rows, every embed must resolve, and the schema warnings and stubs must be exactly the deliberate ones. If the plugin changes in a way that breaks an example, the build fails before a release ships.