@jungjaehoon/mama-os 0.17.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/README.md +132 -825
  2. package/dist/agent/agent-loop.d.ts +30 -5
  3. package/dist/agent/agent-loop.d.ts.map +1 -1
  4. package/dist/agent/agent-loop.js +68 -13
  5. package/dist/agent/agent-loop.js.map +1 -1
  6. package/dist/agent/code-act/constants.d.ts.map +1 -1
  7. package/dist/agent/code-act/constants.js +5 -1
  8. package/dist/agent/code-act/constants.js.map +1 -1
  9. package/dist/agent/code-act/host-bridge.d.ts.map +1 -1
  10. package/dist/agent/code-act/host-bridge.js +167 -8
  11. package/dist/agent/code-act/host-bridge.js.map +1 -1
  12. package/dist/agent/code-act/types.d.ts +1 -1
  13. package/dist/agent/code-act/types.d.ts.map +1 -1
  14. package/dist/agent/codex-mcp-process.d.ts +1 -1
  15. package/dist/agent/codex-mcp-process.js +1 -1
  16. package/dist/agent/gateway-tool-executor.d.ts +43 -1
  17. package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
  18. package/dist/agent/gateway-tool-executor.js +370 -101
  19. package/dist/agent/gateway-tool-executor.js.map +1 -1
  20. package/dist/agent/gateway-tools.md +18 -4
  21. package/dist/agent/tool-registry.d.ts +1 -1
  22. package/dist/agent/tool-registry.d.ts.map +1 -1
  23. package/dist/agent/tool-registry.js +60 -8
  24. package/dist/agent/tool-registry.js.map +1 -1
  25. package/dist/agent/types.d.ts +10 -2
  26. package/dist/agent/types.d.ts.map +1 -1
  27. package/dist/agent/types.js.map +1 -1
  28. package/dist/api/auth-middleware.d.ts.map +1 -1
  29. package/dist/api/auth-middleware.js +7 -0
  30. package/dist/api/auth-middleware.js.map +1 -1
  31. package/dist/api/connector-feed-handler.d.ts +42 -0
  32. package/dist/api/connector-feed-handler.d.ts.map +1 -0
  33. package/dist/api/connector-feed-handler.js +180 -0
  34. package/dist/api/connector-feed-handler.js.map +1 -0
  35. package/dist/api/graph-api.d.ts.map +1 -1
  36. package/dist/api/graph-api.js +35 -1
  37. package/dist/api/graph-api.js.map +1 -1
  38. package/dist/api/heartbeat-handler.d.ts +1 -1
  39. package/dist/api/heartbeat-handler.d.ts.map +1 -1
  40. package/dist/api/heartbeat-handler.js +21 -6
  41. package/dist/api/heartbeat-handler.js.map +1 -1
  42. package/dist/api/index.d.ts +22 -0
  43. package/dist/api/index.d.ts.map +1 -1
  44. package/dist/api/index.js +65 -6
  45. package/dist/api/index.js.map +1 -1
  46. package/dist/api/intelligence-handler.d.ts +110 -0
  47. package/dist/api/intelligence-handler.d.ts.map +1 -0
  48. package/dist/api/intelligence-handler.js +237 -0
  49. package/dist/api/intelligence-handler.js.map +1 -0
  50. package/dist/api/report-handler.d.ts +25 -0
  51. package/dist/api/report-handler.d.ts.map +1 -0
  52. package/dist/api/report-handler.js +93 -0
  53. package/dist/api/report-handler.js.map +1 -0
  54. package/dist/api/wiki-handler.d.ts +19 -0
  55. package/dist/api/wiki-handler.d.ts.map +1 -0
  56. package/dist/api/wiki-handler.js +136 -0
  57. package/dist/api/wiki-handler.js.map +1 -0
  58. package/dist/cli/commands/start.d.ts +22 -3
  59. package/dist/cli/commands/start.d.ts.map +1 -1
  60. package/dist/cli/commands/start.js +160 -2854
  61. package/dist/cli/commands/start.js.map +1 -1
  62. package/dist/cli/runtime/agent-loop-init.d.ts +41 -0
  63. package/dist/cli/runtime/agent-loop-init.d.ts.map +1 -0
  64. package/dist/cli/runtime/agent-loop-init.js +216 -0
  65. package/dist/cli/runtime/agent-loop-init.js.map +1 -0
  66. package/dist/cli/runtime/api-routes-init.d.ts +41 -0
  67. package/dist/cli/runtime/api-routes-init.d.ts.map +1 -0
  68. package/dist/cli/runtime/api-routes-init.js +941 -0
  69. package/dist/cli/runtime/api-routes-init.js.map +1 -0
  70. package/dist/cli/runtime/api-server-init.d.ts +39 -0
  71. package/dist/cli/runtime/api-server-init.d.ts.map +1 -0
  72. package/dist/cli/runtime/api-server-init.js +84 -0
  73. package/dist/cli/runtime/api-server-init.js.map +1 -0
  74. package/dist/cli/runtime/connector-init.d.ts +34 -0
  75. package/dist/cli/runtime/connector-init.d.ts.map +1 -0
  76. package/dist/cli/runtime/connector-init.js +176 -0
  77. package/dist/cli/runtime/connector-init.js.map +1 -0
  78. package/dist/cli/runtime/daemon.d.ts +38 -0
  79. package/dist/cli/runtime/daemon.d.ts.map +1 -0
  80. package/dist/cli/runtime/daemon.js +263 -0
  81. package/dist/cli/runtime/daemon.js.map +1 -0
  82. package/dist/cli/runtime/gateway-init.d.ts +49 -0
  83. package/dist/cli/runtime/gateway-init.d.ts.map +1 -0
  84. package/dist/cli/runtime/gateway-init.js +201 -0
  85. package/dist/cli/runtime/gateway-init.js.map +1 -0
  86. package/dist/cli/runtime/gateway-wiring.d.ts +51 -0
  87. package/dist/cli/runtime/gateway-wiring.d.ts.map +1 -0
  88. package/dist/cli/runtime/gateway-wiring.js +312 -0
  89. package/dist/cli/runtime/gateway-wiring.js.map +1 -0
  90. package/dist/cli/runtime/mama-core-init.d.ts +34 -0
  91. package/dist/cli/runtime/mama-core-init.d.ts.map +1 -0
  92. package/dist/cli/runtime/mama-core-init.js +208 -0
  93. package/dist/cli/runtime/mama-core-init.js.map +1 -0
  94. package/dist/cli/runtime/memory-agent-init.d.ts +36 -0
  95. package/dist/cli/runtime/memory-agent-init.d.ts.map +1 -0
  96. package/dist/cli/runtime/memory-agent-init.js +161 -0
  97. package/dist/cli/runtime/memory-agent-init.js.map +1 -0
  98. package/dist/cli/runtime/metrics-init.d.ts +28 -0
  99. package/dist/cli/runtime/metrics-init.d.ts.map +1 -0
  100. package/dist/cli/runtime/metrics-init.js +131 -0
  101. package/dist/cli/runtime/metrics-init.js.map +1 -0
  102. package/dist/cli/runtime/scheduler-init.d.ts +57 -0
  103. package/dist/cli/runtime/scheduler-init.d.ts.map +1 -0
  104. package/dist/cli/runtime/scheduler-init.js +162 -0
  105. package/dist/cli/runtime/scheduler-init.js.map +1 -0
  106. package/dist/cli/runtime/server-start.d.ts +23 -0
  107. package/dist/cli/runtime/server-start.d.ts.map +1 -0
  108. package/dist/cli/runtime/server-start.js +187 -0
  109. package/dist/cli/runtime/server-start.js.map +1 -0
  110. package/dist/cli/runtime/shutdown.d.ts +43 -0
  111. package/dist/cli/runtime/shutdown.d.ts.map +1 -0
  112. package/dist/cli/runtime/shutdown.js +216 -0
  113. package/dist/cli/runtime/shutdown.js.map +1 -0
  114. package/dist/cli/runtime/types.d.ts +154 -0
  115. package/dist/cli/runtime/types.d.ts.map +1 -0
  116. package/dist/cli/runtime/types.js +12 -0
  117. package/dist/cli/runtime/types.js.map +1 -0
  118. package/dist/cli/runtime/utilities.d.ts +71 -0
  119. package/dist/cli/runtime/utilities.d.ts.map +1 -0
  120. package/dist/cli/runtime/utilities.js +463 -0
  121. package/dist/cli/runtime/utilities.js.map +1 -0
  122. package/dist/connectors/claude-code/index.d.ts +29 -0
  123. package/dist/connectors/claude-code/index.d.ts.map +1 -0
  124. package/dist/connectors/claude-code/index.js +185 -0
  125. package/dist/connectors/claude-code/index.js.map +1 -0
  126. package/dist/connectors/drive/index.d.ts +10 -0
  127. package/dist/connectors/drive/index.d.ts.map +1 -1
  128. package/dist/connectors/drive/index.js +105 -47
  129. package/dist/connectors/drive/index.js.map +1 -1
  130. package/dist/connectors/framework/polling-scheduler.d.ts +7 -1
  131. package/dist/connectors/framework/polling-scheduler.d.ts.map +1 -1
  132. package/dist/connectors/framework/polling-scheduler.js +17 -2
  133. package/dist/connectors/framework/polling-scheduler.js.map +1 -1
  134. package/dist/connectors/framework/types.d.ts +2 -0
  135. package/dist/connectors/framework/types.d.ts.map +1 -1
  136. package/dist/connectors/index.d.ts +1 -1
  137. package/dist/connectors/index.d.ts.map +1 -1
  138. package/dist/connectors/index.js +1 -0
  139. package/dist/connectors/index.js.map +1 -1
  140. package/dist/connectors/kagemusha/history-compiler.d.ts +18 -0
  141. package/dist/connectors/kagemusha/history-compiler.d.ts.map +1 -0
  142. package/dist/connectors/kagemusha/history-compiler.js +35 -0
  143. package/dist/connectors/kagemusha/history-compiler.js.map +1 -0
  144. package/dist/connectors/kagemusha/index.d.ts +12 -0
  145. package/dist/connectors/kagemusha/index.d.ts.map +1 -1
  146. package/dist/connectors/kagemusha/index.js +125 -1
  147. package/dist/connectors/kagemusha/index.js.map +1 -1
  148. package/dist/connectors/kagemusha/query-tools.d.ts +89 -0
  149. package/dist/connectors/kagemusha/query-tools.d.ts.map +1 -0
  150. package/dist/connectors/kagemusha/query-tools.js +209 -0
  151. package/dist/connectors/kagemusha/query-tools.js.map +1 -0
  152. package/dist/connectors/sheets/index.d.ts +3 -0
  153. package/dist/connectors/sheets/index.d.ts.map +1 -1
  154. package/dist/connectors/sheets/index.js +29 -0
  155. package/dist/connectors/sheets/index.js.map +1 -1
  156. package/dist/gateways/discord.js +1 -1
  157. package/dist/gateways/discord.js.map +1 -1
  158. package/dist/gateways/message-router.js +4 -4
  159. package/dist/gateways/message-router.js.map +1 -1
  160. package/dist/memory/history-extractor.d.ts.map +1 -1
  161. package/dist/memory/history-extractor.js +40 -38
  162. package/dist/memory/history-extractor.js.map +1 -1
  163. package/dist/multi-agent/agent-event-bus.d.ts +40 -0
  164. package/dist/multi-agent/agent-event-bus.d.ts.map +1 -0
  165. package/dist/multi-agent/agent-event-bus.js +67 -0
  166. package/dist/multi-agent/agent-event-bus.js.map +1 -0
  167. package/dist/multi-agent/agent-process-manager.d.ts.map +1 -1
  168. package/dist/multi-agent/agent-process-manager.js +46 -5
  169. package/dist/multi-agent/agent-process-manager.js.map +1 -1
  170. package/dist/multi-agent/dashboard-agent-persona.d.ts +12 -0
  171. package/dist/multi-agent/dashboard-agent-persona.d.ts.map +1 -0
  172. package/dist/multi-agent/dashboard-agent-persona.js +75 -0
  173. package/dist/multi-agent/dashboard-agent-persona.js.map +1 -0
  174. package/dist/multi-agent/delegation-manager.d.ts +2 -1
  175. package/dist/multi-agent/delegation-manager.d.ts.map +1 -1
  176. package/dist/multi-agent/delegation-manager.js +3 -2
  177. package/dist/multi-agent/delegation-manager.js.map +1 -1
  178. package/dist/multi-agent/i18n-messages.d.ts +14 -30
  179. package/dist/multi-agent/i18n-messages.d.ts.map +1 -1
  180. package/dist/multi-agent/i18n-messages.js +35 -115
  181. package/dist/multi-agent/i18n-messages.js.map +1 -1
  182. package/dist/multi-agent/index.d.ts +0 -2
  183. package/dist/multi-agent/index.d.ts.map +1 -1
  184. package/dist/multi-agent/index.js +1 -4
  185. package/dist/multi-agent/index.js.map +1 -1
  186. package/dist/multi-agent/multi-agent-base.d.ts +0 -5
  187. package/dist/multi-agent/multi-agent-base.d.ts.map +1 -1
  188. package/dist/multi-agent/multi-agent-base.js +0 -23
  189. package/dist/multi-agent/multi-agent-base.js.map +1 -1
  190. package/dist/multi-agent/multi-agent-discord.d.ts +1 -2
  191. package/dist/multi-agent/multi-agent-discord.d.ts.map +1 -1
  192. package/dist/multi-agent/multi-agent-discord.js +14 -165
  193. package/dist/multi-agent/multi-agent-discord.js.map +1 -1
  194. package/dist/multi-agent/multi-agent-slack.d.ts.map +1 -1
  195. package/dist/multi-agent/multi-agent-slack.js +11 -138
  196. package/dist/multi-agent/multi-agent-slack.js.map +1 -1
  197. package/dist/multi-agent/system-reminder.d.ts.map +1 -1
  198. package/dist/multi-agent/system-reminder.js +20 -35
  199. package/dist/multi-agent/system-reminder.js.map +1 -1
  200. package/dist/multi-agent/task-continuation.d.ts +1 -1
  201. package/dist/multi-agent/task-continuation.js +2 -2
  202. package/dist/multi-agent/task-continuation.js.map +1 -1
  203. package/dist/multi-agent/wiki-agent-persona.d.ts +11 -0
  204. package/dist/multi-agent/wiki-agent-persona.d.ts.map +1 -0
  205. package/dist/multi-agent/wiki-agent-persona.js +107 -0
  206. package/dist/multi-agent/wiki-agent-persona.js.map +1 -0
  207. package/dist/multi-agent/workflow-types.d.ts +19 -19
  208. package/dist/multi-agent/workflow-types.d.ts.map +1 -1
  209. package/dist/multi-agent/workflow-types.js +2 -2
  210. package/dist/security/security-monitor.d.ts +3 -0
  211. package/dist/security/security-monitor.d.ts.map +1 -1
  212. package/dist/security/security-monitor.js +64 -2
  213. package/dist/security/security-monitor.js.map +1 -1
  214. package/dist/setup/setup-prompt.d.ts +1 -1
  215. package/dist/setup/setup-prompt.d.ts.map +1 -1
  216. package/dist/setup/setup-prompt.js +4 -4
  217. package/dist/sqlite.d.ts +5 -6
  218. package/dist/sqlite.d.ts.map +1 -1
  219. package/dist/sqlite.js +17 -96
  220. package/dist/sqlite.js.map +1 -1
  221. package/dist/wiki/obsidian-writer.d.ts +16 -0
  222. package/dist/wiki/obsidian-writer.d.ts.map +1 -0
  223. package/dist/wiki/obsidian-writer.js +161 -0
  224. package/dist/wiki/obsidian-writer.js.map +1 -0
  225. package/dist/wiki/types.d.ts +29 -0
  226. package/dist/wiki/types.d.ts.map +1 -0
  227. package/dist/wiki/types.js +9 -0
  228. package/dist/wiki/types.js.map +1 -0
  229. package/dist/wiki/wiki-compiler.d.ts +13 -0
  230. package/dist/wiki/wiki-compiler.d.ts.map +1 -0
  231. package/dist/wiki/wiki-compiler.js +82 -0
  232. package/dist/wiki/wiki-compiler.js.map +1 -0
  233. package/package.json +5 -3
  234. package/public/viewer/js/modules/chat.js +0 -29
  235. package/public/viewer/js/modules/connector-feed.js +317 -0
  236. package/public/viewer/js/modules/dashboard.js +368 -971
  237. package/public/viewer/js/modules/graph.js +140 -17
  238. package/public/viewer/js/modules/skills.js +3 -25
  239. package/public/viewer/js/modules/wiki.js +370 -0
  240. package/public/viewer/js/utils/api.js +63 -0
  241. package/public/viewer/js/utils/dom.js +109 -0
  242. package/public/viewer/log-viewer.html +1399 -0
  243. package/public/viewer/src/modules/chat.ts +0 -36
  244. package/public/viewer/src/modules/connector-feed.ts +356 -0
  245. package/public/viewer/src/modules/dashboard.ts +387 -1168
  246. package/public/viewer/src/modules/graph.ts +139 -17
  247. package/public/viewer/src/modules/skills.ts +3 -26
  248. package/public/viewer/src/modules/wiki.ts +402 -0
  249. package/public/viewer/src/types/global.d.ts +3 -0
  250. package/public/viewer/src/utils/api.ts +238 -0
  251. package/public/viewer/src/utils/dom.ts +152 -0
  252. package/public/viewer/viewer.css +17 -0
  253. package/public/viewer/viewer.html +434 -694
package/README.md CHANGED
@@ -1,898 +1,205 @@
1
1
  # @jungjaehoon/mama-os
2
2
 
3
- > **Your AI Operating System**
4
- > _Control + Visibility for AI-Powered Automation_
3
+ > Your scattered knowledge, organized by AI agents that never sleep.
5
4
 
6
- Always-on AI assistant powered by an authenticated backend CLI (Claude/Codex) with gateway integrations and autonomous agent capabilities.
5
+ ## The Problem
7
6
 
8
- ## What is MAMA OS?
7
+ Your knowledge is everywhere — Slack threads, email chains, code reviews, meeting notes, spreadsheets, Telegram messages. No human can track all of it. Important decisions get buried. Context gets lost between tools. When you need to make a decision, the information that would help is scattered across ten different apps and three months of history.
9
8
 
10
- MAMA OS transforms your configured backend into an always-on AI assistant that runs continuously on your machine. Unlike the MCP server that requires a client, MAMA OS operates independently with:
9
+ This isn't a memory problem. It's an intelligence problem. You don't just need to *store* information you need something that reads everything, connects the dots, identifies what matters, and tells you what you're missing.
11
10
 
12
- - **Gateway Integrations** - Discord, Slack, Telegram bot support
13
- - **Autonomous Agent Loop** - Continuous conversation handling via official backend CLI
14
- - **MAMA OS** - Built-in graph viewer and mobile chat interface
15
- - **Skills System** - Pluggable skills for document analysis, image translation, and more
16
- - **Cron Scheduler** - Scheduled task execution with heartbeat monitoring
11
+ ## What MAMA OS Does
17
12
 
18
- **Use cases:**
13
+ MAMA OS is a local AI runtime that connects to your apps, reads everything continuously, and turns scattered records into organized knowledge.
19
14
 
20
- - Run MAMA as a Discord/Slack/Telegram bot for your team
21
- - Build custom workflows with the skills API
22
- - Access your configured backend from anywhere via mobile chat
23
- - Automate tasks with scheduled cron jobs
15
+ **What the agents actually do:**
24
16
 
25
- ## Installation
17
+ - **Identify what matters** — Out of thousands of daily messages, surface the decisions, deadlines, and changes that affect your work
18
+ - **Connect across sources** — A Slack conversation + a Trello card + an email attachment about the same project are linked automatically
19
+ - **Track decision evolution** — Not just what was decided, but what it replaced, what it builds on, and what it contradicts
20
+ - **Compile actionable knowledge** — Raw conversations become structured wiki pages with priorities, gaps, and suggested next steps
21
+ - **Brief you proactively** — When you start working, relevant context from all sources is already there — you didn't ask for it
26
22
 
27
- ```bash
28
- # Install globally
29
- npm install -g @jungjaehoon/mama-os
30
-
31
- # Or use with npx (no installation)
32
- npx @jungjaehoon/mama-os init
33
23
  ```
24
+ Without MAMA: You read 5 Slack channels, 3 email threads, check Trello,
25
+ re-read old PRs, then try to piece together the full picture.
34
26
 
35
- ## Prerequisites
36
-
37
- - **Node.js** >= 22.13.0 (required for unflagged `node:sqlite` support)
38
- - **At least one authenticated backend CLI**
39
- - Claude CLI: `npm install -g @anthropic-ai/claude-code` then `claude`
40
- - Codex CLI: `npm install -g @openai/codex` then `codex login`
41
- - **500MB disk space** - For embedding model cache
42
-
43
- ## Quick Start
44
-
45
- Get MAMA running in 30 seconds:
46
-
47
- ```bash
48
- # 1. Authenticate one backend CLI (one-time)
49
- # Claude: claude
50
- # Codex: codex login
51
-
52
- # 2. Initialize workspace
53
- mama init
54
-
55
- # 3. Start the agent
56
- mama start
57
-
58
- # 4. Check status
59
- mama status
27
+ With MAMA: Agents already read everything. You get a briefing with
28
+ what changed, what's at risk, and what needs your decision.
60
29
  ```
61
30
 
62
- MAMA will start in daemon mode and run continuously in the background.
63
-
64
- ## CLI Commands
65
-
66
- | Command | Description | Options |
67
- | ------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
68
- | `mama init` | Initialize MAMA workspace | `-f, --force` - Overwrite existing config<br>`--backend <auto\|claude\|codex>` - Preferred backend<br>`--skip-auth-check` - Skip auth validation |
69
- | `mama setup` | Interactive setup wizard | `-p, --port <port>` - Port number (default: 3847)<br>`--no-browser` - Don't auto-open browser |
70
- | `mama start` | Start MAMA agent | `-f, --foreground` - Run in foreground (not daemon) |
71
- | `mama stop` | Stop MAMA agent | |
72
- | `mama status` | Check agent status | |
73
- | `mama run <prompt>` | Execute single prompt (testing) | `-v, --verbose` - Detailed output |
74
-
75
- ### Command Examples
76
-
77
- ```bash
78
- # Initialize with force (overwrites existing config)
79
- mama init --force
80
-
81
- # Initialize with explicit backend
82
- mama init --backend codex
83
-
84
- # Run setup wizard on custom port
85
- mama setup --port 8080
86
-
87
- # Start in foreground (see logs in terminal)
88
- mama start --foreground
89
-
90
- # Test a single prompt
91
- mama run "What's the weather today?" --verbose
92
- ```
93
-
94
- ## Gateway Integrations
95
-
96
- MAMA Standalone supports multiple chat platforms. Configure them via the setup wizard or manually in `config.yaml`.
97
-
98
- ### Discord Bot
99
-
100
- **Setup Steps:**
101
-
102
- 1. Create application at https://discord.com/developers/applications
103
- 2. Add bot and enable **MESSAGE CONTENT INTENT**
104
- 3. Copy bot token
105
- 4. Invite bot to your server with permissions:
106
- - Read Messages/View Channels
107
- - Send Messages
108
- - Read Message History
109
- - Add Reactions
110
-
111
- **Configuration:**
112
-
113
- ```yaml
114
- gateways:
115
- discord:
116
- enabled: true
117
- token: 'YOUR_DISCORD_BOT_TOKEN'
118
- default_channel_id: '123456789' # Optional
119
- ```
120
-
121
- **Usage:**
122
-
123
- ```
124
- # In Discord
125
- @YourBot hello!
126
- @YourBot analyze this image [attach image]
127
- @YourBot /translate [image with text]
128
- ```
129
-
130
- ### Slack Bot
131
-
132
- **Setup Steps:**
133
-
134
- 1. Create app at https://api.slack.com/apps
135
- 2. Add bot token scopes:
136
- - `channels:history`
137
- - `channels:read`
138
- - `chat:write`
139
- - `users:read`
140
- 3. Enable Socket Mode and create app-level token
141
- 4. Install to workspace
142
-
143
- **Configuration:**
144
-
145
- ```yaml
146
- gateways:
147
- slack:
148
- enabled: true
149
- bot_token: 'xoxb-...'
150
- app_token: 'xapp-...'
151
- ```
152
-
153
- **Usage:**
154
-
155
- ```
156
- # In Slack
157
- @mama what's the status?
158
- @mama /report
159
-
160
- # File upload support
161
- @mama [attach image] translate this
162
- ```
163
-
164
- ### Telegram Bot
165
-
166
- **Setup Steps:**
167
-
168
- 1. Message @BotFather on Telegram
169
- 2. Send `/newbot` and follow prompts
170
- 3. Copy bot token
171
- 4. Get your chat ID from @userinfobot
172
-
173
- **Configuration:**
174
-
175
- ```yaml
176
- gateways:
177
- telegram:
178
- enabled: true
179
- token: '123456789:ABCdefGHI...'
180
- allowed_chat_ids:
181
- - 987654321 # Your chat ID
182
- ```
183
-
184
- **Usage:**
185
-
186
- ```
187
- # In Telegram
188
- /start
189
- Hello MAMA!
190
- /translate [send image]
191
- ```
31
+ **This is what AI agents can do that humans can't** — read every channel, every thread, every document, every day, and never miss a connection.
192
32
 
193
- ## MAMA OS
33
+ - **Private by design** — All data stays on your device. Nothing leaves your machine.
34
+ - **AI-independent** — Works with Claude, Codex, or any future backend. Your memory outlives any AI provider.
194
35
 
195
- Built-in web interface for managing MAMA and chatting with your configured backend.
36
+ ## How It Runs
196
37
 
197
- **Access:** `http://localhost:3847` (default port)
38
+ MAMA OS runs AI agents as **official CLI subprocesses** — the same way you'd use `claude` or `codex` in your terminal. This is the provider-sanctioned execution method, fully compliant with Anthropic and OpenAI Terms of Service.
198
39
 
199
- ### Features
200
-
201
- **📊 Dashboard Tab**
202
-
203
- - Gateway status overview
204
- - Memory statistics
205
- - Agent configuration
206
- - Top topics
207
-
208
- **💬 Chat Tab**
209
-
210
- - Real-time chat with backend CLI sessions
211
- - Voice input (Web Speech API, Korean optimized)
212
- - Text-to-speech with adjustable speed
213
- - Hands-free mode (auto-listen after TTS)
214
- - Long press to copy messages (750ms)
215
- - Slash commands: `/save`, `/search`, `/checkpoint`, `/resume`, `/help`
216
- - Auto-checkpoint (5-minute idle auto-save)
217
- - Session resume with banner UI
218
- - MCP tool display (see Read, Write, Bash execution)
219
-
220
- **🧠 Memory Tab**
221
-
222
- - Interactive reasoning graph visualization
223
- - Checkpoint timeline sidebar
224
- - Draggable detail panel
225
- - Topic filtering and search
226
- - Export decisions (JSON, Markdown, CSV)
227
-
228
- **🧩 Skills Tab**
229
-
230
- - Browse installed skills with status badges (published/draft/coworking)
231
- - Click to open in Skill Lab Playground for editing
232
- - Skill verification with 12-point checklist
233
-
234
- **🧪 Playground Tab**
235
-
236
- - **Skill Lab** — Step-by-step skill creation, modification, and verification
237
- - **Cron Workflow Lab** — Node-based DAG editor for cron workflows (trigger → prompt → condition → action)
238
- - **Wave Visualizer** — Multi-Agent task execution flow visualizer (Simulation + Live modes)
239
- - Bidirectional sync with Skills Tab (select skill → opens in Skill Lab)
240
- - "Open in new tab" for full-screen editing
241
-
242
- **⚙️ Settings Tab**
243
-
244
- - Configure gateway tokens
245
- - Heartbeat scheduler settings
246
- - Agent configuration (model, max turns, timeout)
247
-
248
- ### Mobile Access
249
-
250
- MAMA OS is PWA-enabled and works great on mobile:
251
-
252
- 1. Open `http://localhost:3847` on your phone
253
- 2. Add to home screen
254
- 3. Use voice input for hands-free interaction
255
-
256
- **For external access** (e.g., from phone on different network), see [Security](#security) section.
257
-
258
- ## Skills System
259
-
260
- MAMA includes built-in skills and supports custom skill creation.
261
-
262
- ### Built-in Skills
263
-
264
- **📸 Image Translation**
265
-
266
- ```
267
- # Discord/Telegram
268
- [Send image with text]
269
- MAMA: [Translates text to Korean]
270
-
271
- # Or explicitly
272
- /translate [image]
273
- ```
274
-
275
- **📄 Document Analysis**
276
-
277
- ```
278
- # Send Excel, PDF, or Word file
279
- MAMA: [Analyzes and summarizes content]
280
- ```
281
-
282
- **📊 Heartbeat Report**
283
-
284
- ```
285
- /report
286
- MAMA: [Collects activity from all gateways and creates summary]
287
- ```
288
-
289
- ### Skill Forge
290
-
291
- Create custom skills with AI assistance:
292
-
293
- ```
294
- /forge weather-check - A skill that tells weather info
295
-
296
- # 3 AI agents collaborate:
297
- # 1. 🏗️ Architect - Designs structure
298
- # 2. 💻 Developer - Writes code
299
- # 3. 🔍 QA - Quality verification
300
-
301
- # Each step has 5-second countdown for review
302
- ```
303
-
304
- Skills are stored in `workspace/skills/` and auto-loaded on startup.
305
-
306
- ## Cron Jobs & Heartbeat
307
-
308
- ### Cron Jobs
309
-
310
- Schedule automated tasks:
311
-
312
- ```
313
- # Add cron job
314
- /cron add "0 9 * * *" "Daily morning briefing"
315
-
316
- # List cron jobs
317
- /cron list
318
-
319
- # Remove cron job
320
- /cron remove [id]
321
- ```
322
-
323
- **Cron syntax:**
324
-
325
- ```
326
- * * * * *
327
- │ │ │ │ │
328
- │ │ │ │ └─ Day of week (0-7, 0 and 7 are Sunday)
329
- │ │ │ └─── Month (1-12)
330
- │ │ └───── Day of month (1-31)
331
- │ └─────── Hour (0-23)
332
- └───────── Minute (0-59)
333
- ```
334
-
335
- **Examples:**
336
-
337
- ```
338
- "0 9 * * *" # Every day at 9 AM
339
- "0 18 * * 5" # Every Friday at 6 PM
340
- "*/30 * * * *" # Every 30 minutes
341
- "0 0 1 * *" # First day of every month at midnight
342
- ```
40
+ Some third-party agent frameworks (OpenClaw, etc.) use unofficial API access, token extraction, or header spoofing — approaches that violate provider policies and risk account suspension. MAMA OS doesn't do any of that. If you have Claude Code or Codex CLI installed and authenticated, MAMA OS just works. No API keys, no workarounds, no risk.
343
41
 
344
- ### Heartbeat
345
-
346
- MAMA periodically wakes up to check for new messages across gateways.
347
-
348
- **Configuration:**
349
-
350
- ```yaml
351
- heartbeat:
352
- enabled: true
353
- interval_minutes: 30
354
- quiet_hours:
355
- start: 23 # 11 PM
356
- end: 8 # 8 AM
357
- ```
358
-
359
- During quiet hours, heartbeat is paused to avoid notifications.
360
-
361
- ## Multi-Agent Swarm
362
-
363
- Run multiple AI agents in Discord that collaborate, delegate tasks, and work autonomously.
364
-
365
- > Developed independently, released the same day as Anthropic's [Agent Teams](https://docs.anthropic.com/en/docs/claude-code/agent-teams).
366
- > Same vision — coordinated AI agents — but designed for **chat platforms** (Discord/Slack/Telegram), not CLI.
367
-
368
- ### Agent Tier System
369
-
370
- | Tier | Role | Tool Access | Capabilities |
371
- | ---------- | ------------ | ------------------------------------------------- | ---------------------------------------- |
372
- | **Tier 1** | Orchestrator | All tools (Read, Write, Edit, Bash, ...) | Full access + delegation to other agents |
373
- | **Tier 2** | Advisor | Read-only (Read, Grep, Glob, WebSearch, WebFetch) | Analysis and recommendations |
374
- | **Tier 3** | Executor | Read-only (Read, Grep, Glob, WebSearch, WebFetch) | Scoped tasks, no delegation |
375
-
376
- Tier defaults can be overridden per agent with explicit `tool_permissions.allowed/blocked`.
377
-
378
- ### 5-Stage Message Routing
379
-
380
- Messages are routed through a priority pipeline:
381
-
382
- ```text
383
- Message arrives
384
-
385
- ├─ 1. Free Chat? → All agents respond (when free_chat: true)
386
- ├─ 2. Explicit Trigger? → "!dev fix the bug" → Developer responds
387
- ├─ 3. Category Match? → "리뷰해줘" → Reviewer responds (regex patterns)
388
- ├─ 4. Keyword Match? → "bug" in auto_respond_keywords → Developer responds
389
- └─ 5. Default Agent → Fallback agent responds
390
- ```
391
-
392
- ### Configuration
393
-
394
- ```yaml
395
- multi_agent:
396
- enabled: true
397
- free_chat: false
398
-
399
- agents:
400
- sisyphus:
401
- name: 'Sisyphus'
402
- display_name: '🏔️ Sisyphus'
403
- trigger_prefix: '!sis'
404
- persona_file: '~/.mama/personas/sisyphus.md'
405
- bot_token: 'DISCORD_BOT_TOKEN_1'
406
- tier: 1
407
- can_delegate: true
408
- auto_continue: true
409
- auto_respond_keywords: ['architect', 'plan', '설계']
410
- cooldown_ms: 5000
411
-
412
- developer:
413
- name: 'Developer'
414
- display_name: '🔧 Developer'
415
- trigger_prefix: '!dev'
416
- persona_file: '~/.mama/personas/developer.md'
417
- bot_token: 'DISCORD_BOT_TOKEN_2'
418
- tier: 1 # Full access for code changes
419
- auto_continue: true
420
- auto_respond_keywords: ['bug', 'code', 'implement', '구현']
421
-
422
- reviewer:
423
- name: 'Reviewer'
424
- display_name: '📝 Reviewer'
425
- trigger_prefix: '!review'
426
- persona_file: '~/.mama/personas/reviewer.md'
427
- bot_token: 'DISCORD_BOT_TOKEN_3'
428
- tier: 1 # Full access for code changes
429
- auto_respond_keywords: ['review', 'check', '리뷰', '검토']
430
-
431
- # Regex-based category routing
432
- categories:
433
- - name: 'code_review'
434
- patterns: ['리뷰해', "review\\s+(this|the)"]
435
- agent_ids: ['reviewer']
436
- priority: 10
437
- - name: 'implementation'
438
- patterns: ['구현해', 'implement', 'build']
439
- agent_ids: ['developer']
440
- priority: 5
441
-
442
- # Autonomous work sessions
443
- ultrawork:
444
- enabled: true
445
- max_steps: 20
446
- max_duration: 1800000 # 30 minutes
447
-
448
- # Auto-resume incomplete responses
449
- task_continuation:
450
- enabled: true
451
- max_retries: 3
452
-
453
- loop_prevention:
454
- max_chain_length: 10
455
- global_cooldown_ms: 2000
456
- ```
457
-
458
- ### Delegation
459
-
460
- Tier 1 agents can delegate tasks to other agents:
461
-
462
- ```text
463
- DELEGATE::{agent_id}::{task description}
42
+ ```bash
43
+ # Already have Claude Code installed?
44
+ mama start # That's it. MAMA uses your existing CLI authentication.
464
45
  ```
465
46
 
466
- Example in a persona file:
47
+ ## How It's Secured
467
48
 
468
- ```markdown
469
- When implementation is needed, delegate:
470
- DELEGATE::developer::Implement the login endpoint with JWT
49
+ MAMA OS has full system access — so security is not optional, it's foundational.
471
50
 
472
- When code review is needed, delegate:
473
- DELEGATE::reviewer::Review the auth module changes
474
- ```
475
-
476
- **Constraints:**
51
+ - **Local-only by default** Binds to localhost. External access requires explicit tunnel setup with authentication (Cloudflare Zero Trust).
52
+ - **5-layer prompt injection defense** — Output sanitization, channel trust boundaries, silent mode for unknown sources, bulk extraction limits. Built from a real incident, not theory.
53
+ - **Intrusion detection** — Honeypot traps for scanner probes (`.git`, `.env`, `wp-login.php`), per-IP suspicion scoring, automatic tarpit delays, and IP deny-listing when thresholds are exceeded.
54
+ - **Agent permission tiers** — Tier 1 (full access), Tier 2 (read-only), Tier 3 (scoped read-only). Each agent only gets the tools it needs.
55
+ - **Fail-safe shutdown** — When an intrusion cannot be contained, MAMA shuts itself down gracefully rather than operating in a compromised state.
477
56
 
478
- - Only Tier 1 agents with `can_delegate: true`
479
- - Maximum delegation depth: 1 (no re-delegation)
480
- - Circular delegation automatically prevented
481
- - Notifications appear in Discord
57
+ These aren't theoretical protections. The prompt injection defense was built after a real attack where an adversary injected a fake "server failure" message into a monitored channel, causing the AI agent to voluntarily expose system configuration. The IP banning system has blocked actual intrusion attempts in production.
482
58
 
483
- ### Task Continuation
59
+ See the full [Security Guide](../../docs/guides/security.md) for Cloudflare Zero Trust setup, token authentication, threat scenarios, agent isolation, and Code-Act sandbox security.
484
60
 
485
- When an agent's response appears incomplete, MAMA auto-retries:
486
-
487
- - **Completion markers:** `DONE`, `완료`, `TASK_COMPLETE`, `finished`
488
- - **Incomplete signals:** "I'll continue", "계속하겠", truncation near 2000 chars
489
- - **Max retries:** Configurable (default: 3)
490
- - Supports Korean and English patterns
61
+ ## Quick Start
491
62
 
492
- ### UltraWork Mode (Ralph Loop 3-Phase)
63
+ ```bash
64
+ # 1. Authenticate a backend CLI (one-time)
65
+ claude # or: codex login
493
66
 
494
- Trigger autonomous multi-step sessions:
67
+ # 2. Install and start
68
+ npx @jungjaehoon/mama-os init
69
+ mama start
495
70
 
71
+ # 3. Open the viewer
72
+ open http://localhost:3847
496
73
  ```
497
- User: "Build the auth system ultrawork"
498
- ```
499
-
500
- **3-Phase Loop:**
501
74
 
502
- ```text
503
- Phase 1: Planning
504
- → Lead agent creates implementation plan
505
- → Optional Council discussion for plan review
506
- → Plan persisted to disk (plan.md)
75
+ **Prerequisites:** Node.js >= 18, one authenticated backend CLI (Claude or Codex), 500MB disk space.
507
76
 
508
- Phase 2: Building
509
- → Executes plan via DELEGATE:: delegation
510
- → Each step recorded to progress.json
511
- → Council escalation on failures
77
+ ## Connectors (15)
512
78
 
513
- Phase 3: Retrospective
514
- → Reviews completed work against plan
515
- → Council discussion for quality check
516
- → RETRO_COMPLETE → session ends
517
- → RETRO_INCOMPLETE → re-enters Phase 2 (max 1 retry)
518
- ```
79
+ MAMA connects to your apps and extracts structured facts into the memory graph.
519
80
 
520
- **State persistence** (`~/.mama/workspace/ultrawork/{session_id}/`):
521
-
522
- | File | Purpose |
523
- | ------------------ | -------------------------- |
524
- | `session.json` | Session metadata and phase |
525
- | `plan.md` | Phase 1 output |
526
- | `progress.json` | Completed step records |
527
- | `retrospective.md` | Phase 3 output |
528
-
529
- **Config:**
530
-
531
- ```yaml
532
- multi_agent:
533
- ultrawork:
534
- enabled: true
535
- phased_loop: true # false = legacy freeform loop
536
- persist_state: true # file-based state persistence
537
- max_steps: 20
538
- max_duration: 1800000 # 30 min
81
+ ```bash
82
+ mama connector add slack # Activate + auth guide
83
+ mama connector list # Status of all connectors
539
84
  ```
540
85
 
541
- **Trigger keywords:** `ultrawork`, `울트라워크`, `deep work`, `autonomous`, `자율 작업`
542
-
543
- Session progress is reported in Discord/Slack in real-time.
544
-
545
- ### Persona Files
546
-
547
- Each agent loads a persona from a markdown file:
86
+ | Connector | Prerequisites | Config |
87
+ |-----------|--------------|--------|
88
+ | **Slack** | Bot Token (api.slack.com OAuth scopes) | `bot_token`, `app_token` |
89
+ | **Discord** | Bot Token (discord.com/developers → MESSAGE CONTENT INTENT) | `token`, `default_channel_id` |
90
+ | **Telegram** | Bot Token (@BotFather) | `token`, `allowed_chat_ids` |
91
+ | **Chatwork** | API Token (account settings) | `api_token`, `room_ids` |
92
+ | **iMessage** | macOS only (reads local chat.db) | No config needed |
93
+ | **Gmail** | [gws CLI](https://github.com/nicholasgasior/gws) installed + Google OAuth | `gws` in PATH |
94
+ | **Calendar** | gws CLI installed + Google OAuth | `gws` in PATH |
95
+ | **Drive** | gws CLI installed + Google OAuth | `gws` in PATH |
96
+ | **Sheets** | gws CLI installed + Google OAuth | `gws` in PATH, `spreadsheet_ids` |
97
+ | **Notion** | Integration Token (notion.so/my-integrations) | `api_token`, `database_ids` |
98
+ | **Obsidian** | [Obsidian](https://obsidian.md) installed + [Obsidian Terminal](https://github.com/polyipseity/obsidian-terminal) plugin enabled | `vault_path` in config.yaml |
99
+ | **Trello** | API Key + Token (trello.com/app-key) | `api_key`, `token`, `board_ids` |
100
+ | **Kagemusha** | Kagemusha running locally | Reads `kagemusha.db` directly |
101
+ | **Claude Code** | Claude Code plugin installed | Automatic via hooks |
548
102
 
549
- ```markdown
550
- # Sisyphus - Lead Architect
103
+ **Google Workspace connectors** (Gmail, Calendar, Drive, Sheets) require the [gws CLI](https://github.com/nicholasgasior/gws) — a Google Workspace command-line tool. Install it, run `gws auth` once for OAuth, then MAMA polls via CLI.
551
104
 
552
- You are Sisyphus, the tireless lead architect.
105
+ Each connector classifies its source (truth / hub / spoke / reference) for the 3-pass extraction pipeline. Config: `~/.mama/connectors.json`.
553
106
 
554
- ## Role
107
+ ## Knowledge Agents
555
108
 
556
- - Break down complex tasks into manageable pieces
557
- - Delegate specialized work to Developer and Reviewer agents
558
- - Ensure quality and consistency
109
+ MAMA OS runs specialized agents for knowledge management — not coding (that's what Claude Code does natively).
559
110
 
560
- ## Delegation Guidelines
111
+ | Agent | Role | Requires |
112
+ |-------|------|----------|
113
+ | **Conductor** | Orchestrates other agents, handles user chat | — |
114
+ | **Dashboard Agent** | Generates project briefings from connected sources | — |
115
+ | **Wiki Agent** | Compiles knowledge into Obsidian vault | [Obsidian](https://obsidian.md) + [Terminal plugin](https://github.com/polyipseity/obsidian-terminal) |
116
+ | **Memory Agent** | Extracts decisions from conversations automatically | — |
561
117
 
562
- When implementation is needed:
563
- DELEGATE::developer::task description here
118
+ Agents delegate via `delegate()` with skill injection and automatic retry. Configure in `~/.mama/config.yaml`.
564
119
 
565
- When code review is needed:
566
- DELEGATE::reviewer::review description here
567
- ```
568
-
569
- Place persona files in `~/.mama/personas/`.
120
+ ## Viewer
570
121
 
571
- ## Onboarding Wizard
122
+ Web UI at `http://localhost:3847`. PWA-enabled for mobile (add to home screen).
572
123
 
573
- First-time setup includes a 9-phase autonomous onboarding:
124
+ | Tab | What it shows |
125
+ |-----|--------------|
126
+ | **Dashboard** | Agent activity, memory stats, system health |
127
+ | **Feed** | Real-time stream from all connected sources |
128
+ | **Wiki** | Knowledge base (syncs with Obsidian vault) |
129
+ | **Memory** | Interactive reasoning graph (1000+ nodes), search, export |
130
+ | **Logs** | Daemon logs with filtering, pinning, stats, WebSocket mode |
131
+ | **Settings** | Connectors, gateways, agents, cron, token budget |
574
132
 
575
- 1. **The Awakening** - MAMA is born, meets you for the first time
576
- 2. **Getting to Know You** 💬 - Natural conversation to understand your needs
577
- 3. **Personality Quest** 🎮 - Fun scenario-based quiz (customized to your role)
578
- 4. **The Naming Ceremony** 🏷️ - Give MAMA a unique name and emoji
579
- 5. **Checkpoint** ✅ - Confirm all settings before proceeding
580
- 6. **Security Talk** 🔒 - Understand capabilities and risks (mandatory)
581
- 7. **The Connections** 🔌 - Step-by-step Discord/Slack/Telegram setup
582
- 8. **The Demo** 🎪 - See MAMA's capabilities in action
583
- 9. **Grand Finale** 🎉 - Complete setup and start using MAMA
133
+ Floating chat panel on every tab voice input, TTS, slash commands.
584
134
 
585
- **Start onboarding:**
586
-
587
- ```bash
588
- mama setup
589
- ```
135
+ ## Gateway Integrations
590
136
 
591
- The wizard runs in your browser at `http://localhost:3847` and guides you through each step with your configured backend.
137
+ Run MAMA as a bot in Discord, Slack, Telegram, or Chatwork. Configure via `mama setup` or edit `~/.mama/config.yaml` directly.
592
138
 
593
139
  ## Architecture
594
140
 
595
141
  ```
596
- ┌─────────────────────────────────────────────────┐
597
- │ MAMA Standalone Architecture │
598
- ├─────────────────────────────────────────────────┤
599
- │ │
600
- │ Discord Bot Slack Bot Telegram Bot │
601
- │ │ │ │
602
- └─────────────┴──────────────┘ │
603
- │ │ │
604
- │ ┌──────────▼──────────┐ │
605
- │ │ Message Router │ │
606
- │ │ (Gateway Layer) │
607
- │ └──────────┬──────────┘ │
608
- │ │ │
609
- │ ┌──────────▼──────────┐ │
610
- │ │ Agent Loop │ │
611
- │ │ (Backend CLI) │ │
612
- │ └──────────┬──────────┘ │
613
- │ │ │
614
- │ ┌──────────▼──────────┐ │
615
- │ │ Skills System │ │
616
- │ │ (Pluggable) │ │
617
- │ └──────────┬──────────┘ │
618
- │ │ │
619
- │ ┌──────────▼──────────┐ │
620
- │ │ MAMA Core │ │
621
- │ │ (Memory + DB) │ │
622
- │ └─────────────────────┘ │
623
- │ │ │
624
- │ ┌──────────▼──────────┐ │
625
- │ │ MAMA OS Viewer │ │
626
- │ │ (Web UI) │ │
627
- │ └─────────────────────┘ │
628
- │ │
629
- └─────────────────────────────────────────────────┘
630
- ```
631
-
632
- **Key Components:**
633
-
634
- - **Gateway Layer** - Handles Discord/Slack/Telegram message routing
635
- - **Agent Loop** - Continuous conversation handling via configured backend CLI
636
- - **Skills System** - Pluggable capabilities (image translation, document analysis)
637
- - **MAMA Core** - Shared memory and database (from @jungjaehoon/mama-core)
638
- - **MAMA OS** - Web-based management interface
142
+ Connectors (15) Gateways (4)
143
+ Slack, Gmail, Sheets... Discord, Slack, Telegram, Chatwork
144
+ | |
145
+ v v
146
+ 3-Pass Extraction Multi-Agent System
147
+ | |
148
+ +--------+-------+------+
149
+ |
150
+ MAMA Core (mama-memory.db)
151
+ Local SQLite + 1024-dim embeddings
152
+ |
153
+ +------+------+
154
+ | |
155
+ Viewer UI Claude Code Plugin
156
+ ```
157
+
158
+ ## CLI
159
+
160
+ | Command | Description |
161
+ |---------|-------------|
162
+ | `mama init` | Initialize workspace |
163
+ | `mama setup` | Interactive setup wizard |
164
+ | `mama start` | Start daemon |
165
+ | `mama stop` | Stop daemon |
166
+ | `mama status` | Check status |
167
+ | `mama connector <add\|remove\|list\|status>` | Manage connectors |
639
168
 
640
169
  ## Configuration
641
170
 
642
- MAMA uses `config.yaml` in your workspace directory.
643
-
644
- **Example configuration:**
645
-
646
- ```yaml
647
- # Agent settings
648
- agent:
649
- model: 'claude-sonnet-4-20250514'
650
- max_turns: 10
651
- timeout_seconds: 300
652
-
653
- # Gateway integrations
654
- gateways:
655
- discord:
656
- enabled: true
657
- token: 'YOUR_TOKEN'
658
- default_channel_id: '123456789'
659
-
660
- slack:
661
- enabled: false
662
- bot_token: 'xoxb-...'
663
- app_token: 'xapp-...'
664
-
665
- telegram:
666
- enabled: false
667
- token: '123456:ABC...'
668
- allowed_chat_ids: []
669
-
670
- # Heartbeat scheduler
671
- heartbeat:
672
- enabled: true
673
- interval_minutes: 30
674
- quiet_hours:
675
- start: 23
676
- end: 8
677
-
678
- # Skills
679
- skills:
680
- enabled: true
681
- auto_load: true
682
- directory: './skills'
683
-
684
- # MAMA OS
685
- viewer:
686
- enabled: true
687
- port: 3847
688
- ```
689
-
690
- ## Security
691
-
692
- **IMPORTANT:** MAMA Standalone has full access to your system via the configured backend CLI.
693
-
694
- ### Capabilities
695
-
696
- MAMA can:
697
-
698
- - 🗂️ **Read/write files** - Any file your user account can access
699
- - ⚡ **Execute commands** - Run terminal commands (npm, git, etc.)
700
- - 🌐 **Make network requests** - Fetch data, call APIs
701
- - 🔌 **Send messages** - Via configured gateway integrations
702
-
703
- ### Recommendations
704
-
705
- **For maximum safety:**
706
-
707
- - Run MAMA in a Docker container
708
- - Use a dedicated user account with limited permissions
709
- - Don't give MAMA access to production systems
710
- - Review gateway permissions carefully
711
-
712
- **Gateway security:**
713
-
714
- - Discord: Use role-based permissions to limit bot access
715
- - Slack: Only install to test workspaces initially
716
- - Telegram: Use `allowed_chat_ids` to restrict who can interact
717
-
718
- **External access:**
171
+ Main config: `~/.mama/config.yaml`
719
172
 
720
- If you want to access MAMA OS from outside localhost (e.g., from your phone):
173
+ | Variable | Default |
174
+ |----------|---------|
175
+ | `MAMA_DB_PATH` | `~/.mama/mama-memory.db` |
176
+ | `MAMA_HTTP_PORT` | `3847` |
177
+ | `MAMA_WORKSPACE` | `~/.mama/workspace` |
721
178
 
722
- 1. **Recommended:** Use Cloudflare Zero Trust tunnel with authentication
723
- 2. **Testing only:** Use `cloudflared tunnel --url http://localhost:3847`
724
- 3. **If using Cloudflare Zero Trust:** start MAMA with `MAMA_TRUST_CLOUDFLARE_ACCESS=true` so Access-authenticated `/api/*` requests are not blocked by a second auth layer
179
+ ## Related Packages
725
180
 
726
- ⚠️ **Never expose MAMA OS to the internet without authentication** - Anyone with access can control your system via your backend session.
727
-
728
- See [Security Guide](../../docs/guides/security.md) for detailed setup instructions.
729
-
730
- ## Compliance
731
-
732
- MAMA OS operators are responsible for complying with their backend provider Terms/Usage policies.
733
-
734
- ### Account Usage Rules
735
-
736
- - Do not share personal CLI accounts, sessions, or credentials.
737
- - Do not run multi-user team bots on a personal account plan.
738
- - For team channels, use organization-approved plans/accounts (Team/Enterprise or API org setup).
739
- - Do not bypass provider safeguards (token extraction, header spoofing, rate-limit evasion).
740
-
741
- ### Why this matters for chat channels
742
-
743
- - A single bot in a group channel can still represent multi-user usage.
744
- - Even if credentials are not directly shared, providers may treat shared bot access as account sharing.
745
- - Multi-agent channels can increase concurrency/pattern complexity, so keep audit logs and sane limits.
746
-
747
- ## Environment Variables
748
-
749
- | Variable | Description | Default |
750
- | ---------------- | ------------------------ | -------------------------- |
751
- | `MAMA_DB_PATH` | SQLite database location | `~/.claude/mama-memory.db` |
752
- | `MAMA_HTTP_PORT` | MAMA OS port | `3847` |
753
- | `MAMA_WORKSPACE` | Workspace directory | `./mama-workspace` |
754
-
755
- > **Note:** Authentication is handled by the selected backend CLI. Run `claude` or `codex login` first.
756
-
757
- ## Troubleshooting
758
-
759
- ### Agent won't start
760
-
761
- ```bash
762
- # Check if already running
763
- mama status
764
-
765
- # Stop existing instance
766
- mama stop
767
-
768
- # Start in foreground to see logs
769
- mama start --foreground
770
- ```
771
-
772
- ### Gateway not connecting
773
-
774
- ```bash
775
- # Verify token in config.yaml
776
- cat mama-workspace/config.yaml
777
-
778
- # Check gateway status in MAMA OS
779
- # Open http://localhost:3847 → Dashboard tab
780
- ```
781
-
782
- ### Backend CLI authentication errors
783
-
784
- ```bash
785
- # Re-authenticate Claude CLI
786
- claude
787
-
788
- # Re-authenticate Codex CLI
789
- codex login
790
-
791
- # Check CLI status
792
- claude --version
793
- codex --version
794
-
795
- # Test with verbose output
796
- mama run "test" --verbose
797
- ```
798
-
799
- ### Port already in use
800
-
801
- ```bash
802
- # Change port in config.yaml
803
- vim mama-workspace/config.yaml
804
-
805
- # Or use setup wizard
806
- mama setup --port 8080
807
- ```
808
-
809
- ## Comparison with Other Packages
810
-
811
- | Package | Purpose | Use When |
812
- | ---------------------------- | ------------------------------------------- | ----------------------------------- |
813
- | **@jungjaehoon/mama-os** | Your AI Operating System (agent + gateways) | You want Discord/Slack/Telegram bot |
814
- | **@jungjaehoon/mama-server** | MCP server for Claude clients | You use Claude Code/Desktop |
815
- | **@jungjaehoon/mama-core** | Shared core library | You're building custom integrations |
816
-
817
- **Not what you're looking for?**
818
-
819
- - **For Claude Code/Desktop:** Use [@jungjaehoon/mama-server](../mcp-server/README.md)
820
- - **For custom integrations:** Use [@jungjaehoon/mama-core](../mama-core/README.md)
821
- - **For the full project:** See [main README](../../README.md)
181
+ | Package | Purpose |
182
+ |---------|---------|
183
+ | **@jungjaehoon/mama-os** | Always-on AI runtime (this package) |
184
+ | **@jungjaehoon/mama-server** | MCP server for Claude Desktop |
185
+ | **@jungjaehoon/mama-core** | Shared memory engine |
822
186
 
823
187
  ## Development
824
188
 
825
- ### Project Structure
826
-
827
- ```
828
- packages/standalone/
829
- ├── src/
830
- │ ├── cli/ # CLI commands
831
- │ ├── agent/ # Agent loop implementation
832
- │ ├── gateways/ # Discord, Slack, Telegram
833
- │ ├── skills/ # Built-in skills
834
- │ ├── onboarding/ # Setup wizard
835
- │ └── config/ # Configuration management
836
- ├── public/
837
- │ └── viewer/ # MAMA OS web interface
838
- ├── templates/ # Workspace templates
839
- └── tests/ # Test suite
840
- ```
841
-
842
- ### Building from Source
843
-
844
189
  ```bash
845
- # Clone repository
846
190
  git clone https://github.com/jungjaehoon-lifegamez/MAMA.git
847
- cd MAMA
848
-
849
- # Install dependencies
850
- pnpm install
851
-
852
- # Build standalone package
853
- cd packages/standalone
854
- pnpm build
855
-
856
- # Link for local testing
857
- npm link
858
-
859
- # Test
860
- mama init
861
- mama start --foreground
862
- ```
863
-
864
- ### Running Tests
865
-
866
- ```bash
867
- # All tests
868
- pnpm test
869
-
870
- # Watch mode
871
- pnpm test:watch
872
-
873
- # Type checking
874
- pnpm typecheck
191
+ cd MAMA && pnpm install && pnpm build
192
+ pnpm test # 2800+ tests across all packages
875
193
  ```
876
194
 
877
195
  ## Links
878
196
 
879
- - [GitHub Repository](https://github.com/jungjaehoon-lifegamez/MAMA)
880
- - [Documentation](https://github.com/jungjaehoon-lifegamez/MAMA/tree/main/docs)
881
- - [Issues](https://github.com/jungjaehoon-lifegamez/MAMA/issues)
882
- - [npm Package](https://www.npmjs.com/package/@jungjaehoon/mama-os)
883
- - [MCP Server Package](https://www.npmjs.com/package/@jungjaehoon/mama-server)
197
+ [GitHub](https://github.com/jungjaehoon-lifegamez/MAMA) · [npm](https://www.npmjs.com/package/@jungjaehoon/mama-os) · [Docs](https://github.com/jungjaehoon-lifegamez/MAMA/tree/main/docs) · [Issues](https://github.com/jungjaehoon-lifegamez/MAMA/issues)
884
198
 
885
199
  ## License
886
200
 
887
- MIT - see [LICENSE](../../LICENSE)
888
-
889
- ## Acknowledgments
890
-
891
- MAMA was inspired by [mem0](https://github.com/mem0ai/mem0) (Apache 2.0). While MAMA is a distinct implementation focused on local-first SQLite/MCP architecture, we appreciate their pioneering work in LLM memory management.
892
-
893
- The multi-agent swarm architecture was inspired by [oh-my-opencode](https://github.com/nicepkg/oh-my-opencode). Their agent orchestration approach informed our design. The key difference is that MAMA's swarm is built for **chat platforms** (Discord, Slack, Telegram) — multiple bot accounts collaborating in real-time channels — rather than a local CLI environment.
201
+ MIT
894
202
 
895
203
  ---
896
204
 
897
- **Author:** SpineLift Team
898
- **Last Updated:** 2026-02-20
205
+ **Last Updated:** 2026-04-10