@momo-memory/momo-memory
v0.1.8
Published
Momo memory plugin for OpenClaw — cloud-backed team memory with auto-indexing from Gmail, GitHub, Notion, Slack, Discord
Maintainers
Readme
Momo Memory — OpenClaw Plugin
Cloud-backed team memory for OpenClaw. Connects your Gmail, GitHub, Notion, Slack, and Discord decisions into a searchable memory layer that any AI agent can query.
Momo extracts decisions from your team's tools, indexes them with embeddings + graph relationships, and makes them available through natural language search. This plugin brings that memory into OpenClaw.
Why Momo vs OpenClaw's Built-in Memory
| | OpenClaw Today | With Momo | |---|---|---| | Storage | Local-only (markdown, session transcripts) | Cloud-backed, encrypted, persistent | | Data Sources | Conversation-derived memories only | Auto-indexed Gmail/GitHub/Notion/Slack/Discord | | Extraction | Rule-based capture (regex triggers) | AI-powered decision extraction pipeline | | Sharing | Single-user, single-device | Team-shared decision context | | Intelligence | No semantic understanding | Structured decisions (rationale, confidence, entities) |
What Momo Solves
memory.md doesn't auto-populate — Momo's
agent_endhook automatically extracts decisions from every conversation. No trigger words needed.No clear criteria for long-term memory — Momo uses 10 explicit decision types (approval, commitment, selection, etc.) with confidence scoring. Structured data, not freeform markdown.
No persistent log or daily summaries — Every decision is permanently stored with embeddings and graph relationships. The
momo_summarytool generates period-based summaries (today/week/month).No automatic categorization — The extraction pipeline automatically identifies people, companies, projects, and links them via graph relationships. Ask "who have I been working with?" and get structured answers.
No way to view or query organized data — Search semantically with
momo_search, get formatted context withmomo_context, or browse the full graph in Momo's web UI.External tools can't access memory — Momo's API endpoints work with any tool, not just OpenClaw. Notion, Slack, and other integrations can read and write to the same memory.
Quick Start
openclaw plugin install momo-memoryThen configure your API key:
OpenClaw Config → Plugins → All → Momo Memory → Momo API KeyGet your API key at app.usemomo.com → Settings → API Keys.
Configuration
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| apiKey | string | — | Your Momo API key (momo_...). Required. |
| apiUrl | string | https://app.usemomo.com | Override for self-hosted instances. |
| autoCapture | boolean | true | Automatically extract decisions from conversations. |
| autoRecall | boolean | true | Automatically inject relevant memories before each response. |
You can also set the API key via the MOMO_API_KEY environment variable.
Tools
The plugin registers 7 tools that the AI agent can call:
momo_search — Search team decisions
Search across all your indexed sources using natural language.
"Search for decisions about the AWS migration"Parameters: query (required), limit (max 20), source (filter by gmail/github/notion/slack/discord/openclaw)
momo_store — Save a decision
Manually store a decision, commitment, or important fact to team memory.
"Remember that we chose Stripe over PayPal for payments"Parameters: title (required), summary (required), decisionType, confidence, rationale, involvedPersons
momo_context — Get formatted context
Retrieve a formatted summary of relevant past decisions for a topic — ready to use as LLM context.
Parameters: query (required), maxTokens (default 4000)
momo_summary — Team activity summary
Get decisions grouped by source for a time period.
Parameters: period (today/week/month)
momo_schedule — Create a scheduled task
Set up recurring AI-generated reports (daily brief, weekly summary, etc.) delivered via email, Slack, or in-app.
Parameters: name, prompt, scheduledTime (HH:MM), frequency (daily/weekly/monthly), deliveryChannel
momo_list_schedules — List scheduled tasks
View all your scheduled tasks with status and next run time.
momo_cancel_schedule — Cancel a scheduled task
Disable a scheduled task by ID.
Hooks
Auto-Recall (before_agent_start)
When enabled, Momo checks each user message against your team's memory and injects relevant decisions into the LLM context before it responds. This means the agent automatically "remembers" past decisions without being asked.
- Skips short messages (< 30 chars) and casual chat (greetings, "ok", etc.)
- Injects up to 2,000 tokens of context
- Runs at priority 10
Auto-Capture (agent_end)
When enabled, Momo buffers conversation messages and extracts decisions after a 5-minute silence or when the buffer reaches 20 messages. This means decisions made during conversations are automatically saved to team memory.
- Needs at least 4 messages (2 exchanges) before extracting
- Keeps last 4 messages as overlap for continuity across batches
- Buffers are flushed on plugin shutdown
CLI Commands
# Search team decisions
openclaw momo search "pricing strategy"
openclaw momo search "AWS" --limit 10 --source github
# Team activity summary
openclaw momo summary # this week
openclaw momo summary today
openclaw momo summary month
# List scheduled tasks
openclaw momo schedules
# Check connection status
openclaw momo status
# List connected integrations and available tools
openclaw momo toolsDynamic Integration Tools
Beyond the 7 built-in tools, the plugin automatically discovers and registers tools based on your connected integrations. Tools only appear when the corresponding integration is connected in Momo.
Run openclaw momo tools to see what's available for your account.
Gmail (6 tools)
| Tool | Description |
|------|-------------|
| gmail_list_emails | List emails from inbox with search and filtering |
| gmail_get_email | Get full content of a specific email |
| gmail_get_thread | Get all messages in an email thread |
| gmail_search_emails | Search emails using Gmail's advanced search syntax |
| gmail_send_email | Send a new email |
| gmail_reply_to_email | Reply to an existing email thread |
Slack (8 tools)
| Tool | Description |
|------|-------------|
| slack_get_my_identity | Get current user's Slack identity |
| slack_list_channels | List channels user has access to |
| slack_get_channel_messages | Get recent messages from a channel |
| slack_get_thread | Get all messages in a thread |
| slack_search_messages | Search messages across channels |
| slack_get_my_mentions | Find messages where you are @mentioned |
| slack_send_message | Send a message to a channel |
| slack_reply_to_thread | Reply to a thread |
GitHub (7 tools)
| Tool | Description |
|------|-------------|
| github_list_repos | List user's repositories |
| github_list_connected_repos | List repos connected to Momo |
| github_list_commits | List recent commits for a repo |
| github_get_commit | Get commit details including files changed |
| github_list_prs | List pull requests |
| github_get_pr | Get details of a specific PR |
| github_list_issues | List issues for a repo |
Notion (7 tools)
| Tool | Description |
|------|-------------|
| notion_search_pages | Search for pages in workspace |
| notion_get_page | Get full content of a page as markdown |
| notion_list_databases | List databases in workspace |
| notion_query_database | Query a database to get entries/rows |
| notion_create_page | Create a new sub-page under an existing page |
| notion_append_content | Append content to an existing page |
| notion_add_database_entry | Add a new entry to a database |
Linear (6 tools)
| Tool | Description |
|------|-------------|
| linear_list_teams | List all teams in workspace |
| linear_list_projects | List projects in workspace |
| linear_list_issues | List issues with optional filters |
| linear_get_issue | Get details of a specific issue (e.g. ENG-123) |
| linear_create_issue | Create a new issue |
| linear_search_issues | Search issues by keyword |
Discord (8 tools)
| Tool | Description |
|------|-------------|
| discord_get_my_identity | Get current user's Discord identity |
| discord_list_servers | List servers (guilds) user has access to |
| discord_list_channels | List text channels in a server |
| discord_get_channel_messages | Get recent messages from a channel |
| discord_get_thread | Get all messages in a thread |
| discord_search_messages | Search messages containing specific text |
| discord_get_my_mentions | Find messages where you are @mentioned |
| discord_send_message | Send a message to a channel |
How Memory Works
See HOW_MEMORY_WORKS.md for a detailed explanation of how Momo collects, extracts, stores, and retrieves decisions.
Links
License
MIT
