mansus GitHub

myself

A personal knowledge graph in one command. The agent you already have does the thinking; myself keeps what it learned.

Say it, then ask it.

bash

# save
$ myself remember relay is project
$ myself remember relay uses bun

# query
$ myself describe relay
relay
  is project
  uses bun
  ← felipe works-on relay

# molting
$ myself remember i am "Felipe's coding agent. Prefers bun. Answers tersely."
$ myself history i am

One binary written in Go, called through plain Bash. Nothing to host, nothing to log in to.

Seven decisions

  1. The agent is already the LLM

    Graph-memory systems such as Graphiti, on Neo4j, spend LLM calls extracting entities and deduplicating them. Inside a harness the agent does that work before it calls the tool. So the store stays dumb, deterministic and offline: no server, no Neo4j, no embeddings, no API keys.

  2. A CLI, not an MCP server

    Every harness has Bash: Claude Code, Paseo workers, pi. One binary on $PATH plus a skill file that teaches the commands, and any of them can use the brain.

  3. Triples plus time

    A fact is subject, predicate, object. Facts are never overwritten, only superseded, an idea borrowed from Graphiti's bi-temporal edges. So there is history, and --at asks the graph what it believed on a given day.

  4. Molting

    The agent keeps one fact, i am "…", and rewrites it whenever it is corrected. The old shells stay in myself history, so you can read how the agent changed.

  5. Dreaming

    myself dream reports duplicate entities, near-duplicate predicates and things that have no type. It only reports. The agent decides what to merge and does it with ordinary commands.

  6. One file

    The whole brain is one append-only JSONL file, ~/.myself/brain.jsonl. It diffs, it lives in git, and two brains merge like two branches.

  7. Obsidian as a mirror

    myself export --obsidian <dir> writes one note per entity with [[wikilinks]], and Obsidian's graph view shows the brain. It is one-way: the file is the truth, and edits in the vault do not come back.

Nothing is overwritten.

A correction does not erase the old fact. It stands behind the new one, fainter, and stays readable.

Fourteen commands

remember
save a fact or give an entity a type
forget
retire a fact; it stays in the history
alias
make a second name point at one entity
describe
everything known about one entity, both directions
ls
list entities, optionally of one type
predicates
the verbs in use, with counts
search
find entities and facts by text
path
how two entities connect
log
what was written, newest first
history
every past version of a fact
prime
a short brief for the start of a session
dream
report duplicates and untyped things
export
write the brain out, for example --obsidian
sync
pull and push the brain file through git

No release yet. The design is on GitHub and the commands above are the plan.

In design.