Vincent van Gogh, Wheat Field with Cypresses (1889), oil on canvas
the memory · a second brain

A memory that survives the session.

A second brain for your coding agents that remembers what you decided, and why, day and night, on its own. Every claim cites its source, so no session re-explains a settled constraint or re-litigates a call you already made.

$ hyp search "telnyx decision" wiki/facts/telnyx-webhook-retry.md cite: session-0716 · prompt 12 wiki/entities/telnyx.md (+4 backlinks)

Recall with receipts. Every entry cites the exact prompt it came from, and an empty result says not found instead of inventing one.

scroll ↓

The cycle · the memory layer

A brain that sleeps on it.

Raw sessions become a typed graph through a cycle borrowed from how memory actually consolidates: capture while awake, digest and prune while asleep, recall on demand. The model proposes; a deterministic validator disposes. The confident lands on its own. The uncertain, and anything destructive, waits for your sign-off.

awake · opt-in per project

Capture

Every session is recorded per project, but only where you opt in. Secrets are redacted before they touch disk, and again before any model reads them. Configurable patterns catch tokens, keys, cards, and emails first, so those secrets are stripped from the raw log before it lands on disk.

Nothing is uploaded. The capture hook writes into your second brain on disk and queues prompts for the next digest pass.

hyp
# hook fires on each turn
capture ▸ redact ▸ queue
  redacted: 2 tokens · 1 email
  backlog: 37 prompts pending digest

Every stage but Dream is live today. Capture and Recall run while you work; Digest and Consolidate run asleep, on a schedule. The changes most able to poison this memory, the uncertain and the destructive, wait for your approval: they queue in pending.md until you rule on them.

Watch a session become memory: captured and redacted, digested into typed entries, recalled with a citation.

Why it can answer

It connects the dots, not just stores notes.

A flat MEMORY.md is a pile of loose notes. This memory links them, so it can answer the questions that actually come up mid-build: who else touched this, what happened after that PR, is this still how we do it. And when you change your mind, it never loses track of why.

The memory, drawn: each thing you keep referring to, joined to the things around it. Drag to turn it.
For the curious: the three node types, and how a correction keeps its reason
entity

A durable thing you keep referring to: a person, a project, a tool, a place. Entities accrue backlinks as other entries mention them.

event

Something that happened, dated, with a raw-transcript citation. A merged PR, a decision, an incident. Events are the timeline of the work.

fact

A standing belief the graph treats as current. When corrected, the old one is marked superseded, with a reason, and the new one cites it. Belief evolution, never overwrite.

retry after 30s
↳ retry after 5s · reason: rate-limit

Keeping the reason is the load-bearing idea. A raw agent that changes its mind leaves you two contradictory notes and no way to tell which is current. Here the correction keeps its ancestry: superseded_by points forward, the reason travels with it, and hyp returns the current fact and the history that produced it.

Every entry traces back to sources: [{ file, prompt_index }], a specific prompt in a raw transcript. There is no unsourced claim in your second brain.

Anatomy of one memory

Open any fact. It shows its work.

This is not a database row you take on faith. It is a markdown file you can open. And every claim in it points back to the exact prompt, in the exact session, that produced it.

~/.hyperception/vault/wiki/facts/telnyx-webhook-retry.md
---
type: fact
id: telnyx-webhook-retry
status: active
confidence: high
sources:
  - { file: raw/2026-07-16.md, prompt_index: 12 }   # the receipt
supersedes: ["[[telnyx-retry-30s]]"]              # the old belief, kept
about: ["[[telnyx]]"]
---
Webhook retries back off to 5s. The 30s window
tripped Telnyx's rate limit after the 429 incident.

The superseded entry is still on disk, one hop away, with the reason the belief changed. Ask git log who wrote what, when: memory with a paper trail, because it is the paper trail.

"A graph that timestamps when a fact expired still can't tell you why you changed your mind. This one keeps the reason."supersede chains
"It remembers what you shipped, not what you chatted about."the digest

The payoff

Ask it, in plain words, in the terminal.

This is the payoff: ask what past sessions decided (you, or your agent mid-build) and get it back with a citation. When the answer isn't there, it says not found instead of inventing a confident one.

hyp
$ hyp search "why signed webhooks"        # hybrid: BM25 + vector + rerank
  wiki/events/switched-to-signed-webhooks.md   cite: session-0709 · prompt 3
  wiki/facts/telnyx-webhook-retry.md          (supersedes: retry-30s)

$ hyp entity telnyx
  wiki/entities/telnyx.md   [tooling] · 6 backlinks · 3 facts · 2 events

$ hyp related telnyx --depth 2
  telnyx ──about──▶ webhook-retry ──caused_by──▶ rate-limit-429

$ hyp timeline --since 2026-07-01
  07-09  switched to signed webhooks
  07-16  pr-45-merged

$ hyp search "kafka migration"
  no matches · not in memory   # an empty recall says so
For the curious: the recall verbs, and how search ranks

Recall is a small set of hyp verbs, callable by you or by an Agent Skill mid-session. Search is hybrid (BM25 plus vector plus rerank) so a plain-language question still lands the right entry.

hyp search"<query>"

Hybrid retrieval. The default way in.

hyp grep"<term>"

A literal sweep, when you know the string.

hyp entity<slug>

One node, with everything that points at it.

hyp related<slug> --depth N

Walk the typed relations outward, as a real traversal.

hyp timeline--since <date>

The events, in order, in the window you name.

Corrected facts return with their supersede history intact, so recall shows the current answer and what it replaced.

Against the field

What everyone else calls memory.

Even the labs building these agents treat every session as an amnesiac shift-worker, reaching for a progress file and git because context compaction isn't enough. A second brain is that instinct done right: where most memory products ask you to trust a database, this one hands you the files.

Memory you can read.

Elsewhere, memory lives in a vector store you query blind. Yours is markdown in a folder: read it, grep it, git-diff it, take it with you. Delete the search index and rebuild it from git; the files are the truth.

ls ~/.hyperception/vault/wiki

Every fact keeps its receipt.

Recall without provenance is rumor. Here an entry with no source trace is not allowed to exist: every fact cites the exact prompt, in the exact session, it came from. You can check the receipt.

sources: [{ file, prompt_index }]

Corrections don't overwrite.

Most systems update a fact by destroying the old one. Here the old belief stays on disk, marked superseded, with the reason it changed and the receipts for both. The graph knows why you changed your mind.

status: superseded · one git-revert-clean commit

Nothing lands unvetted.

An extractor proposes, a second pass reviews, a deterministic validator disposes. The confident majority applies itself; the uncertain rest waits in a queue for your sign-off. The changes most able to poison this memory, the uncertain and the destructive, wait for your approval.

hyp pending · hyp approve

No server. No account. No vendor.

Secrets are redacted before anything touches disk. Your second brain is a git repo that syncs only to a private remote you point it at, or to nowhere at all.

hyp sync remote <url>

A typed knowledge graph that is also just markdown in a folder. The memory tools we studied make you pick one or the other.

Where your memory lives

Your second brain is a git repo on your disk.

Local-first, not hosted. Your memory is a directory you can read, diff, and back up like any other repo.

Everything lives in ~/.hyperception/vault/, its own git repo on your machine. Entries are plain markdown with typed frontmatter, so you can open any one, see its sources, and follow its supersede chain by hand if you ever want to.

Because it is just git, continuity is free: clone it on a new box and recall works immediately. Where your data lives and how secrets stay out of it is covered in full on Security & data ownership.

The new way of working

Stop re-explaining what your agent forgot.

A memory that answers "what did we decide, and why" with a citation instead of a guess. Typed, sourced, and superseded with a reason when it changes. Run it beside the work and every session compounds instead of resetting.