mor: personal memory I own

Stuff gets buried. Notes in some SaaS. Snippets in Slack. Context trapped in products I don’t control.

mor — markdown files on my disk. cat, grep, git, done. Same spirit as Obsidian and org-mode, but it’s TypeScript. I write TypeScript. When I want to change how it works, I change it.

It’s also an MCP server, so claude.ai and chatgpt.com can access the notes too. Feels nice… for now.

What’s in there

Stuff I refuse to write twice. A Fastify chaos plugin that randomly 500s requests. An RxJS BehaviorSubject backed by localStorage with cross-tab sync. Architecture plans for readme-assert v7. The kind of thing that ends up in a dead gist or a Slack message from six months ago.

Mid-conversation, need a snippet? AI calls memory_search, pulls it up. No digging.

Usage

echo "Always use snake_case for Python" | mor add -t "Python naming"

mor find python naming
mor grep -E "async\s+function"

FTS5 full-text search, regex grep, optional vector search (OpenAI/Azure/Ollama). Add from files, URLs, stdin, $EDITOR, and chat.

MCP server exposes memory_search, memory_read, memory_create. Hook it up to Claude Code, Claude Desktop, Cursor — whatever.

Remote

mor serve on a box, connect from anywhere. OAuth or bearer token. mor sync for git-backed sync across machines.


Personal project. My workflow, my opinions. GitHub. For laughs, check out mor’s homepage. Made soaking with irony.