A memory store on your computer

No hosted service. The record stays on your machine.

MAMA is a memory store that runs on your own computer, and an AI assistant that works from it. It keeps what flows through your connected messengers, mail, documents, and calendars as-is, and the assistant reads that record to tell you what changed and do what you ask.

An illustration of work signals flowing through MAMA into an evidence-backed briefing artifact on the owner's phone.
Why

Memory kept on your own computer.

An AI assistant is only useful with memory, and memory kept on a company's server disappears when the service changes or shuts down. MAMA keeps the record of what you did and decided on your own computer, in the original form, so a better model can read the same record tomorrow. The memory layer is fixed; which sources you connect and what work you hand over is up to you.

Principles

In order of importance.

01

Never lose the record.

Original text, time, source, and later changes are kept, not overwritten.

02

Know why it changed.

Every change the assistant makes names the message or event behind it, or is marked "no cause".

03

Act only where allowed.

Sending messages, paying, deleting: anything with outside effect requires prior permission for that target.

04

Remember corrections.

Say "keep reports short" or "cards on the dashboard" once; it is stored as a rule and applied from then on.

05

Stay independent of the model vendor.

The assistant's brain (Claude, Codex, Cline) is swappable; the record's format is not.

06

Everything else.

Speed and convenience improve only within the five above.

How it works

Three layers.

Layer What it holds
What you add sources to connect · work to hand over · rules you correct
The assistant one assistant · a tool catalog · permission scopes · a rule store
The memory store SQLite on your machine: originals · decision history · change causes · run logs · local search index

Memory store. Per-source originals live in ~/.mama/connectors/<name>/raw.db; decisions and change logs under ~/.mama/. Changing a decision adds a "this replaced that" link instead of deleting the old one. Each change log row holds what changed and what caused it; a row with a faked cause is rejected at write time. The search index (embeddings) is built locally.

Assistant. Your messages, scheduled reports, new source content, and timed jobs all reach one assistant. It picks tools from the catalog and hands long reads and background work to helper agents, taking back only the result. Every run carries a permission scope saying what it may touch and until when. Your corrections are stored as rules and offered as candidates in similar situations. Reports and the board are edited from the last published version, not rebuilt.

What you add. A new source is one IConnector implementation; polling and storage are handled. A new kind of work is one entry in the tool catalog. A new rule is one message.

Getting started

Requires Node 22.13+ and a logged-in claude or codex CLI.

claude auth login                   # or: codex login
npm install -g @jungjaehoon/mama-os
mama --help                         # tells you the next step
mama status                         # setup is done when the first report arrives
  • Messenger: mama gateway telegram --token-stdin (Slack and Discord work the same way)
  • Sources: mama connector add <name>, then mama connector status
  • Health/liveness: http://localhost:3847/health; authenticated operational routes remain under /api
  • For scripted installs, follow the missing list from mama status --json in order; it is finished only when complete: true.

Claude Code plugin: /plugin install mama. MCP: {"mcpServers":{"mama":{"command":"npx","args":["@jungjaehoon/mama-server"]}}}.

Security

The server answers only on your machine by default.

  • The server answers only on your machine (127.0.0.1) by default.
  • Sending, uploading, paying, and deleting happen only toward allowed targets. Unattended work (scheduled reports, incoming-content handling) has no send permission.
  • Only allow-listed chats are accepted from messengers (allowedChatIds for Telegram).
  • Values that look like passwords or keys are not stored in memory.
  • Outbound connections go only to the services you connected and the AI CLI you logged into. There is no MAMA company server; you run it yourself.

Running on another host or reaching it from outside. The operational API reaches a runtime that can read and write files and run commands. Exposing the server exposes that machine. If you open it up:

  1. Set MAMA_AUTH_TOKEN. Never expose the server without it, and treat the token and tunnel URL as secrets.
  2. For anything beyond a short test, put it behind Cloudflare Zero Trust (or mTLS / IP allow-listing) in addition to the token. Token-only access is for temporary testing.
  3. Keep the messenger allow-list, and restrict ~/.mama/ to the operating account.
  4. Back up ~/.mama/ together with ~/.claude/mama-memory.db.

Details: Security guide, Remote access.

Status and roadmap

What is done, and what is next.

Stage What Status
Memory store Originals kept, decision history, change causes, local search done
Single-owner assistant Scheduled reports, board and journal, corrections become rules done
Helpers and continuation Long work to helper agents; reports continue from the last version done (0.52.0)
Team members Verified people share the same memory within their own permissions next
File work Request → read → new version → approval → delivery → follow-up next
Extension guide How to add your own sources, tools, and rules next

Before 1.0, config and storage format changes ship with automatic migration; APIs may change.

Documentation

Read more.