A local-first memory suite for AI agents. One install gets you a two-tier memory store, an M365 read/write surface, and a single CLI that ties them together. Your data stays on your machine.
mnem is the umbrella over four independent tools that already work
on their own. The umbrella adds one verb surface, one install command,
one place to find what is in the box.
mnem (meta-CLI + suite hub)
|
+------------------------+------------------------+
| | | |
YAAMS cognitive-ledger owa-piggy owa-tools
(Tier 1 raw) (Tier 2 curated) (M365 auth) (M365 read/write)
| Tool | Purpose | Binaries |
|---|---|---|
| YAAMS | Tier 1 raw memory store - every iMessage, mail, calendar event, GitHub issue, ingested and queryable from a single SQLite file. | yaams |
| cognitive-ledger | Tier 2 curated atomic notes engine - the gems you promote out of YAAMS and keep forever as markdown with frontmatter. | ledger, ledger-obsidian, sheep |
| owa-piggy | Microsoft 365 auth broker - turns your existing Outlook Web session into a reusable token. No app registration. | owa-piggy |
| owa-tools | M365 read/write CLI suite - calendar, mail, Graph, OneDrive, scheduling, people lookup, all JSON-by-default. | owa, owa-cal, owa-mail, owa-graph, owa-doctor, owa-people, owa-sched, owa-drive |
mnem itself adds one more binary that routes the verbs above into
a single user-facing surface.
brew install damsleth/tap/mnemThe Homebrew formula pulls the whole suite via dependencies. On
PyPI the package is mnem-suite (both mnem and mnem-cli were
already taken on PyPI by unrelated projects); the installed binary
is still mnem:
pipx install mnem-suiteThen:
mnem init # detect sources, write config, run a dry-run
mnem hello # one-screen tour of the verbs
mnem doctor # health check across every toolmnem init is idempotent and never edits your dotfiles.
mnem query "what did we decide at the brand kickoff?"
mnem ingest # all configured sources, partial-success tolerant
mnem promote review # interactive: promote YAAMS gems to the ledger
mnem mail send --to ... # owa-mail wrapper
mnem calendar today # owa-cal wrapper
mnem ledger init # bootstrap a new ledger
mnem auth status # owa-piggy wrapper
mnem doctor # aggregate health check
mnem version # own version + observed component versionsEvery JSON-capable command accepts --json (machine mode) and
--pretty (human rendering). Exit codes are predictable per
CONVENTIONS.md: 0 ok, 1 user error, 2 transient,
3 auth, 4 not found, 5 partial success.
brew install damsleth/tap/mnemmnem init- the wizard probes for iMessage, Apple Mail, Signal, GitHub, owa-piggy, Obsidian, and an existing cognitive-ledger. It enables what it finds and writesenabled: falsewith a hint for what it doesn't.mnem ingest- first run downloads embedding models (~2 GB) with a prompt before any download.mnem query "..."- ask the suite anything.
See SUITE.md for the full data flow and architecture, and CONVENTIONS.md for the CLI contract every tool in the suite conforms to.
Two agent skill repos sit on top of mnem:
damsleth/SKILLS- public, reusable agent skills. Includes/memory, which routes throughmnem.damsleth/SKILLS-private- personal-infracj-*skills (timereg, did, weekly review). Same installer pattern; private repo.
Skills wrap mnem. mnem does not call skills. One direction, no
circular dependencies.
MIT. See LICENSE.