Cookies on Kythene

We use cookies and similar technologies for the things below. You can accept all, reject everything except what's essential, or pick what you're OK with.

Preferences
Remembers things like your last workspace and how you had a list sorted. Improves the experience but the site works without.
Improvement
Anonymous usage measurement so we can fix bugs and prioritise work.
Marketing
Lets us measure whether ads we run send people who actually use the site. We don't share personal data with advertisers.

Read our cookies policy and the privacy policy. California residents: Do Not Sell or Share My Personal Information.

Loading…

Memory

Linking memory

Individually, memories are notes. Linked, they're a graph you can walk - which is what turns a pile of decisions into something an instance can reason across.

Write [[Another memory's title]] anywhere in a memory's body and Kythene turns it into a real edge in the link graph when the memory is saved.

"Remember for platform: our retry policy is exponential backoff capped at 30s. It depends on [[Deploy runbook]] and supersedes [[Old retry note]]."

Links are re-parsed every time a memory is written or superseded, and the memory's previous outgoing links are cleared first - so editing the body keeps the graph in step instead of leaving orphaned edges behind.

The same [[Title]] syntax also links between published documents, not just memories - a document can point at a sibling in its collection, another collection, or a memory. That's covered in Publishing; this page is about the memory graph specifically.

An unresolved link is skipped rather than erroring, and Kythene tries hard to resolve one before giving up:

  1. an exact title match, preferring one in the same project,
  2. then an exact title anywhere in the workspace,
  3. then a case-insensitive title match,
  4. then a slug match - so [[deploy-runbook]] finds "Deploy runbook".

That last one is what makes an imported vault of [[wikilinks]] connect up rather than landing as dead text, even where notes were retitled on the way in.

Aliases extend this. Give a memory extra names when you write it and any of them will resolve. The usual case is the original filename of an imported note, so old links keep working after a rename.

You don't have to put the link in the prose. Your instance can add or remove an edge directly:

"Link the retry-policy memory to the deploy runbook."

kythe link <from-memory-id> <to-memory-id>
kythe unlink <from-memory-id> <to-memory-id>

Useful when the relationship is real but you don't want a sentence about it in the body.

A memory's page shows both directions: what it links to, and what links to it. Backlinks are derived, so they appear without anyone maintaining them.

The workspace overview surfaces the most-referenced memories - the ones the rest of the graph leans on most. It's a decent proxy for "what does this team actually run on", and a good place to point a new joiner's instance. Only memories you can actually open are counted, so a private note never shows up as a hub for someone who can't read it.

Near-duplicates

Write enough memory and you'll write the same thing twice. A memory's page lists similar memories - other notes ranked by full-text similarity to this one. The list is advisory and deliberately generous: it would rather show you a weak candidate than hide a real duplicate.

Merging is just deprecation with a pointer: keep the better memory, deprecate the other one naming its replacement. Recall stops surfacing the loser, the trail stays intact, and nothing is destroyed. See Memory.