Daniel Hjermitslev

Built on my own time

Aetherkeep

Behavioral enforcement system that makes AI memory deterministic, not aspirational

Loading the graph

The 373 notes that link to each other, and the 1,026 links between them, drawn from the vault's own links. Titles are left out: the vault is private.

notes in the vault
1,598
links between notes
1,026
commits
2,867
days with commits
96

After an autonomous agent destroyed an entire codebase, I built the system that prevents it from ever happening again.

7 behavioral hooks wrap every AI session in structural enforcement: identity injected at start in fixed order, escalating save pressure through the session, and exit blocked until context is documented. The AI has logged 35 self-observations about its own behavior across 150+ sessions. Not memory. Enforcement.

  • Git-backed Obsidian vault
  • MCP server
  • Synced PC ↔ GitHub ↔ VPS

A session, enforced

Hooks run at five points in every AI session. They run whether or not the model remembers to.

12345
  1. 1

    Session starts

    Identity and core context go in first, in a fixed order, about 500 tokens. Anything deeper is pulled through the MCP server when it is needed.

  2. 2

    Every prompt

    A reminder to save, which gets firmer the longer the session runs.

  3. 3

    Every write

    The note's structure is checked, and the change is committed to git in the background.

  4. 4

    Compaction

    State is marked before the context is compressed, and the core context goes in again afterwards.

  5. 5

    Session ends

    The session cannot close until working memory is updated and cleaned up.

One memory, three places

The vault lives in git. My PC, GitHub and the VPS where Rune runs hold the same copy, and every agent reaches it through the same MCP server.

My PC

Claude Code in my editor

vault

GitHub

The vault's origin

vault

VPS

Rune on Hermes Agent

vault

MCP server

TypeScript, SQLite and sqlite-vec. Semantic search, graph traversal and context routing, offered to any agent as nine tools.

  • aetherkeep_orient
  • aetherkeep_context
  • aetherkeep_search
  • aetherkeep_search_by_tag
  • aetherkeep_get
  • aetherkeep_create
  • aetherkeep_write
  • aetherkeep_relate
  • aetherkeep_status

In use since February

2,867 commits on 96 days
FebMarAprMayJunJulAugSep

Busiest day: 11 May, with 196 commits.

All systems

Have something to build, or a team I should join?

Email is the quickest way to reach me. LinkedIn works too.

danielhjermitslev@protonmail.com