@jungjaehoon/mama-os 0.1.1
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.
- package/CHANGELOG.md +67 -0
- package/README.md +643 -0
- package/dist/agent/agent-loop.d.ts +98 -0
- package/dist/agent/agent-loop.d.ts.map +1 -0
- package/dist/agent/agent-loop.js +417 -0
- package/dist/agent/agent-loop.js.map +1 -0
- package/dist/agent/auto-recall.d.ts +48 -0
- package/dist/agent/auto-recall.d.ts.map +1 -0
- package/dist/agent/auto-recall.js +178 -0
- package/dist/agent/auto-recall.js.map +1 -0
- package/dist/agent/claude-cli-wrapper.d.ts +130 -0
- package/dist/agent/claude-cli-wrapper.d.ts.map +1 -0
- package/dist/agent/claude-cli-wrapper.js +227 -0
- package/dist/agent/claude-cli-wrapper.js.map +1 -0
- package/dist/agent/claude-client.d.ts +50 -0
- package/dist/agent/claude-client.d.ts.map +1 -0
- package/dist/agent/claude-client.js +214 -0
- package/dist/agent/claude-client.js.map +1 -0
- package/dist/agent/gateway-tool-executor.d.ts +75 -0
- package/dist/agent/gateway-tool-executor.d.ts.map +1 -0
- package/dist/agent/gateway-tool-executor.js +348 -0
- package/dist/agent/gateway-tool-executor.js.map +1 -0
- package/dist/agent/index.d.ts +13 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +18 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/mcp-executor.d.ts +75 -0
- package/dist/agent/mcp-executor.d.ts.map +1 -0
- package/dist/agent/mcp-executor.js +307 -0
- package/dist/agent/mcp-executor.js.map +1 -0
- package/dist/agent/session-pool.d.ts +148 -0
- package/dist/agent/session-pool.d.ts.map +1 -0
- package/dist/agent/session-pool.js +272 -0
- package/dist/agent/session-pool.js.map +1 -0
- package/dist/agent/streaming-callback-manager.d.ts +85 -0
- package/dist/agent/streaming-callback-manager.d.ts.map +1 -0
- package/dist/agent/streaming-callback-manager.js +103 -0
- package/dist/agent/streaming-callback-manager.js.map +1 -0
- package/dist/agent/types.d.ts +437 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +29 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/api/cron-handler.d.ts +44 -0
- package/dist/api/cron-handler.d.ts.map +1 -0
- package/dist/api/cron-handler.js +195 -0
- package/dist/api/cron-handler.js.map +1 -0
- package/dist/api/error-handler.d.ts +22 -0
- package/dist/api/error-handler.d.ts.map +1 -0
- package/dist/api/error-handler.js +104 -0
- package/dist/api/error-handler.js.map +1 -0
- package/dist/api/heartbeat-handler.d.ts +49 -0
- package/dist/api/heartbeat-handler.d.ts.map +1 -0
- package/dist/api/heartbeat-handler.js +91 -0
- package/dist/api/heartbeat-handler.js.map +1 -0
- package/dist/api/index.d.ts +61 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +145 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/types.d.ts +156 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +62 -0
- package/dist/api/types.js.map +1 -0
- package/dist/auth/index.d.ts +7 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +11 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/oauth-manager.d.ts +59 -0
- package/dist/auth/oauth-manager.d.ts.map +1 -0
- package/dist/auth/oauth-manager.js +237 -0
- package/dist/auth/oauth-manager.js.map +1 -0
- package/dist/auth/types.d.ts +92 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +23 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/cli/commands/init.d.ts +19 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +155 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/run.d.ts +19 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +89 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/setup.d.ts +19 -0
- package/dist/cli/commands/setup.d.ts.map +1 -0
- package/dist/cli/commands/setup.js +134 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/start.d.ts +24 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +1073 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/status.d.ts +10 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +85 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/stop.d.ts +10 -0
- package/dist/cli/commands/stop.d.ts.map +1 -0
- package/dist/cli/commands/stop.js +65 -0
- package/dist/cli/commands/stop.js.map +1 -0
- package/dist/cli/config/config-manager.d.ts +51 -0
- package/dist/cli/config/config-manager.d.ts.map +1 -0
- package/dist/cli/config/config-manager.js +216 -0
- package/dist/cli/config/config-manager.js.map +1 -0
- package/dist/cli/config/types.d.ts +172 -0
- package/dist/cli/config/types.d.ts.map +1 -0
- package/dist/cli/config/types.js +48 -0
- package/dist/cli/config/types.js.map +1 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +92 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/utils/pid-manager.d.ts +66 -0
- package/dist/cli/utils/pid-manager.d.ts.map +1 -0
- package/dist/cli/utils/pid-manager.js +167 -0
- package/dist/cli/utils/pid-manager.js.map +1 -0
- package/dist/concurrency/index.d.ts +13 -0
- package/dist/concurrency/index.d.ts.map +1 -0
- package/dist/concurrency/index.js +22 -0
- package/dist/concurrency/index.js.map +1 -0
- package/dist/concurrency/lane-manager.d.ts +113 -0
- package/dist/concurrency/lane-manager.d.ts.map +1 -0
- package/dist/concurrency/lane-manager.js +245 -0
- package/dist/concurrency/lane-manager.js.map +1 -0
- package/dist/concurrency/session-key.d.ts +41 -0
- package/dist/concurrency/session-key.d.ts.map +1 -0
- package/dist/concurrency/session-key.js +61 -0
- package/dist/concurrency/session-key.js.map +1 -0
- package/dist/concurrency/types.d.ts +69 -0
- package/dist/concurrency/types.d.ts.map +1 -0
- package/dist/concurrency/types.js +16 -0
- package/dist/concurrency/types.js.map +1 -0
- package/dist/gateways/channel-history.d.ts +102 -0
- package/dist/gateways/channel-history.d.ts.map +1 -0
- package/dist/gateways/channel-history.js +181 -0
- package/dist/gateways/channel-history.js.map +1 -0
- package/dist/gateways/context-injector.d.ts +74 -0
- package/dist/gateways/context-injector.d.ts.map +1 -0
- package/dist/gateways/context-injector.js +121 -0
- package/dist/gateways/context-injector.js.map +1 -0
- package/dist/gateways/discord.d.ts +122 -0
- package/dist/gateways/discord.d.ts.map +1 -0
- package/dist/gateways/discord.js +602 -0
- package/dist/gateways/discord.js.map +1 -0
- package/dist/gateways/index.d.ts +30 -0
- package/dist/gateways/index.d.ts.map +1 -0
- package/dist/gateways/index.js +49 -0
- package/dist/gateways/index.js.map +1 -0
- package/dist/gateways/message-router.d.ts +116 -0
- package/dist/gateways/message-router.d.ts.map +1 -0
- package/dist/gateways/message-router.js +315 -0
- package/dist/gateways/message-router.js.map +1 -0
- package/dist/gateways/message-splitter.d.ts +54 -0
- package/dist/gateways/message-splitter.d.ts.map +1 -0
- package/dist/gateways/message-splitter.js +146 -0
- package/dist/gateways/message-splitter.js.map +1 -0
- package/dist/gateways/plugin-loader.d.ts +76 -0
- package/dist/gateways/plugin-loader.d.ts.map +1 -0
- package/dist/gateways/plugin-loader.js +221 -0
- package/dist/gateways/plugin-loader.js.map +1 -0
- package/dist/gateways/session-store.d.ts +77 -0
- package/dist/gateways/session-store.d.ts.map +1 -0
- package/dist/gateways/session-store.js +233 -0
- package/dist/gateways/session-store.js.map +1 -0
- package/dist/gateways/slack.d.ts +90 -0
- package/dist/gateways/slack.d.ts.map +1 -0
- package/dist/gateways/slack.js +281 -0
- package/dist/gateways/slack.js.map +1 -0
- package/dist/gateways/telegram.d.ts +79 -0
- package/dist/gateways/telegram.d.ts.map +1 -0
- package/dist/gateways/telegram.js +207 -0
- package/dist/gateways/telegram.js.map +1 -0
- package/dist/gateways/types.d.ts +340 -0
- package/dist/gateways/types.d.ts.map +1 -0
- package/dist/gateways/types.js +6 -0
- package/dist/gateways/types.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/memory-logger.d.ts +47 -0
- package/dist/memory/memory-logger.d.ts.map +1 -0
- package/dist/memory/memory-logger.js +126 -0
- package/dist/memory/memory-logger.js.map +1 -0
- package/dist/onboarding/all-tools.d.ts +18 -0
- package/dist/onboarding/all-tools.d.ts.map +1 -0
- package/dist/onboarding/all-tools.js +149 -0
- package/dist/onboarding/all-tools.js.map +1 -0
- package/dist/onboarding/autonomous-discovery-tools.d.ts +13 -0
- package/dist/onboarding/autonomous-discovery-tools.d.ts.map +1 -0
- package/dist/onboarding/autonomous-discovery-tools.js +268 -0
- package/dist/onboarding/autonomous-discovery-tools.js.map +1 -0
- package/dist/onboarding/bootstrap-template.d.ts +5 -0
- package/dist/onboarding/bootstrap-template.d.ts.map +1 -0
- package/dist/onboarding/bootstrap-template.js +142 -0
- package/dist/onboarding/bootstrap-template.js.map +1 -0
- package/dist/onboarding/complete-autonomous-prompt.d.ts +13 -0
- package/dist/onboarding/complete-autonomous-prompt.d.ts.map +1 -0
- package/dist/onboarding/complete-autonomous-prompt.js +1220 -0
- package/dist/onboarding/complete-autonomous-prompt.js.map +1 -0
- package/dist/onboarding/onboarding-state.d.ts +70 -0
- package/dist/onboarding/onboarding-state.d.ts.map +1 -0
- package/dist/onboarding/onboarding-state.js +184 -0
- package/dist/onboarding/onboarding-state.js.map +1 -0
- package/dist/onboarding/personality-quiz.d.ts +35 -0
- package/dist/onboarding/personality-quiz.d.ts.map +1 -0
- package/dist/onboarding/personality-quiz.js +219 -0
- package/dist/onboarding/personality-quiz.js.map +1 -0
- package/dist/onboarding/phase-5-summary.d.ts +22 -0
- package/dist/onboarding/phase-5-summary.d.ts.map +1 -0
- package/dist/onboarding/phase-5-summary.js +151 -0
- package/dist/onboarding/phase-5-summary.js.map +1 -0
- package/dist/onboarding/phase-6-security.d.ts +33 -0
- package/dist/onboarding/phase-6-security.d.ts.map +1 -0
- package/dist/onboarding/phase-6-security.js +473 -0
- package/dist/onboarding/phase-6-security.js.map +1 -0
- package/dist/onboarding/phase-7-integrations.d.ts +66 -0
- package/dist/onboarding/phase-7-integrations.d.ts.map +1 -0
- package/dist/onboarding/phase-7-integrations.js +619 -0
- package/dist/onboarding/phase-7-integrations.js.map +1 -0
- package/dist/onboarding/phase-8-demo.d.ts +43 -0
- package/dist/onboarding/phase-8-demo.d.ts.map +1 -0
- package/dist/onboarding/phase-8-demo.js +346 -0
- package/dist/onboarding/phase-8-demo.js.map +1 -0
- package/dist/onboarding/phase-9-finalization.d.ts +22 -0
- package/dist/onboarding/phase-9-finalization.d.ts.map +1 -0
- package/dist/onboarding/phase-9-finalization.js +375 -0
- package/dist/onboarding/phase-9-finalization.js.map +1 -0
- package/dist/onboarding/ritual-prompt.d.ts +2 -0
- package/dist/onboarding/ritual-prompt.d.ts.map +1 -0
- package/dist/onboarding/ritual-prompt.js +285 -0
- package/dist/onboarding/ritual-prompt.js.map +1 -0
- package/dist/onboarding/ritual-tools.d.ts +13 -0
- package/dist/onboarding/ritual-tools.d.ts.map +1 -0
- package/dist/onboarding/ritual-tools.js +93 -0
- package/dist/onboarding/ritual-tools.js.map +1 -0
- package/dist/runners/cli-runner.d.ts +59 -0
- package/dist/runners/cli-runner.d.ts.map +1 -0
- package/dist/runners/cli-runner.js +190 -0
- package/dist/runners/cli-runner.js.map +1 -0
- package/dist/runners/index.d.ts +11 -0
- package/dist/runners/index.d.ts.map +1 -0
- package/dist/runners/index.js +15 -0
- package/dist/runners/index.js.map +1 -0
- package/dist/runners/types.d.ts +81 -0
- package/dist/runners/types.d.ts.map +1 -0
- package/dist/runners/types.js +31 -0
- package/dist/runners/types.js.map +1 -0
- package/dist/scheduler/cron-scheduler.d.ts +115 -0
- package/dist/scheduler/cron-scheduler.d.ts.map +1 -0
- package/dist/scheduler/cron-scheduler.js +320 -0
- package/dist/scheduler/cron-scheduler.js.map +1 -0
- package/dist/scheduler/heartbeat.d.ts +53 -0
- package/dist/scheduler/heartbeat.d.ts.map +1 -0
- package/dist/scheduler/heartbeat.js +160 -0
- package/dist/scheduler/heartbeat.js.map +1 -0
- package/dist/scheduler/index.d.ts +22 -0
- package/dist/scheduler/index.d.ts.map +1 -0
- package/dist/scheduler/index.js +31 -0
- package/dist/scheduler/index.js.map +1 -0
- package/dist/scheduler/job-lock.d.ts +85 -0
- package/dist/scheduler/job-lock.d.ts.map +1 -0
- package/dist/scheduler/job-lock.js +137 -0
- package/dist/scheduler/job-lock.js.map +1 -0
- package/dist/scheduler/recovery.d.ts +78 -0
- package/dist/scheduler/recovery.d.ts.map +1 -0
- package/dist/scheduler/recovery.js +124 -0
- package/dist/scheduler/recovery.js.map +1 -0
- package/dist/scheduler/schedule-store.d.ts +112 -0
- package/dist/scheduler/schedule-store.d.ts.map +1 -0
- package/dist/scheduler/schedule-store.js +259 -0
- package/dist/scheduler/schedule-store.js.map +1 -0
- package/dist/scheduler/token-keep-alive.d.ts +49 -0
- package/dist/scheduler/token-keep-alive.d.ts.map +1 -0
- package/dist/scheduler/token-keep-alive.js +102 -0
- package/dist/scheduler/token-keep-alive.js.map +1 -0
- package/dist/scheduler/types.d.ts +96 -0
- package/dist/scheduler/types.d.ts.map +1 -0
- package/dist/scheduler/types.js +21 -0
- package/dist/scheduler/types.js.map +1 -0
- package/dist/setup/setup-prompt.d.ts +2 -0
- package/dist/setup/setup-prompt.d.ts.map +1 -0
- package/dist/setup/setup-prompt.js +138 -0
- package/dist/setup/setup-prompt.js.map +1 -0
- package/dist/setup/setup-server.d.ts +8 -0
- package/dist/setup/setup-server.d.ts.map +1 -0
- package/dist/setup/setup-server.js +71 -0
- package/dist/setup/setup-server.js.map +1 -0
- package/dist/setup/setup-tools.d.ts +13 -0
- package/dist/setup/setup-tools.d.ts.map +1 -0
- package/dist/setup/setup-tools.js +103 -0
- package/dist/setup/setup-tools.js.map +1 -0
- package/dist/setup/setup-websocket.d.ts +6 -0
- package/dist/setup/setup-websocket.d.ts.map +1 -0
- package/dist/setup/setup-websocket.js +312 -0
- package/dist/setup/setup-websocket.js.map +1 -0
- package/dist/skills/index.d.ts +10 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +26 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/skill-executor.d.ts +48 -0
- package/dist/skills/skill-executor.d.ts.map +1 -0
- package/dist/skills/skill-executor.js +483 -0
- package/dist/skills/skill-executor.js.map +1 -0
- package/dist/skills/skill-loader.d.ts +40 -0
- package/dist/skills/skill-loader.d.ts.map +1 -0
- package/dist/skills/skill-loader.js +225 -0
- package/dist/skills/skill-loader.js.map +1 -0
- package/dist/skills/skill-matcher.d.ts +33 -0
- package/dist/skills/skill-matcher.d.ts.map +1 -0
- package/dist/skills/skill-matcher.js +190 -0
- package/dist/skills/skill-matcher.js.map +1 -0
- package/dist/skills/types.d.ts +123 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +12 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/tools/browser-tool.d.ts +149 -0
- package/dist/tools/browser-tool.d.ts.map +1 -0
- package/dist/tools/browser-tool.js +257 -0
- package/dist/tools/browser-tool.js.map +1 -0
- package/package.json +84 -0
- package/public/favicon.ico +0 -0
- package/public/setup.html +1026 -0
- package/public/viewer/icons/icon-192.png +0 -0
- package/public/viewer/icons/icon-512.png +0 -0
- package/public/viewer/js/modules/chat.js +1587 -0
- package/public/viewer/js/modules/dashboard.js +275 -0
- package/public/viewer/js/modules/graph.js +997 -0
- package/public/viewer/js/modules/memory.js +353 -0
- package/public/viewer/js/modules/settings.js +255 -0
- package/public/viewer/js/utils/api.js +169 -0
- package/public/viewer/js/utils/dom.js +92 -0
- package/public/viewer/js/utils/format.js +192 -0
- package/public/viewer/manifest.json +26 -0
- package/public/viewer/sw.js +131 -0
- package/public/viewer/viewer.css +500 -0
- package/public/viewer/viewer.html +1535 -0
- package/scripts/postinstall.js +118 -0
- package/templates/skills/document-analyze.md +63 -0
- package/templates/skills/heartbeat-report.md +75 -0
- package/templates/skills/image-translate.md +67 -0
- package/templates/workspace/skill-forge/DESIGN.md +115 -0
- package/templates/workspace/skill-forge/agents/architect.ts +295 -0
- package/templates/workspace/skill-forge/agents/developer.ts +364 -0
- package/templates/workspace/skill-forge/agents/qa.ts +313 -0
- package/templates/workspace/skill-forge/claude-api.ts +353 -0
- package/templates/workspace/skill-forge/discord-ui.ts +580 -0
- package/templates/workspace/skill-forge/error-handler.ts +354 -0
- package/templates/workspace/skill-forge/mama-integration.ts +357 -0
- package/templates/workspace/skill-forge/orchestrator.ts +495 -0
- package/templates/workspace/skill-forge/output/generated-skills/skills/hello-world/README.md +24 -0
- package/templates/workspace/skill-forge/output/generated-skills/skills/hello-world/index.ts +79 -0
- package/templates/workspace/skill-forge/output/generated-skills/skills/hello-world/types.ts +17 -0
- package/templates/workspace/skill-forge/package.json +21 -0
- package/templates/workspace/skill-forge/state/session.json +132 -0
- package/templates/workspace/skill-forge/test-e2e.ts +139 -0
- package/templates/workspace/skill-forge/tsconfig.json +20 -0
- package/templates/workspace/skill-forge/types.ts +159 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [1.1.0] - 2026-02-01
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- **OpenClaw Compatibility** - Updated all Clawdbot references to OpenClaw throughout codebase
|
|
13
|
+
- Renamed internal references from Clawdbot patterns to OpenClaw patterns
|
|
14
|
+
- Updated documentation and comments for consistency
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- **Onboarding Auto-Redirect** - Automatic redirect to viewer after completing onboarding wizard
|
|
19
|
+
- WebSocket setup wizard enhancements for better UX
|
|
20
|
+
- Tool handlers for phases 7, 8, 9 of onboarding
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- Onboarding completion detection with proper tool handlers
|
|
25
|
+
- Setup WebSocket redirect message handling
|
|
26
|
+
|
|
27
|
+
## [1.0.0] - 2026-01-28
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
|
|
31
|
+
#### Core Foundation
|
|
32
|
+
|
|
33
|
+
- **OAuth Token Manager** - Claude Pro OAuth token reading and automatic refresh
|
|
34
|
+
- **Agent Loop Engine** - Claude API calls with MCP tool execution loop
|
|
35
|
+
- **CLI** - `mama init/start/stop/status` commands for daemon management
|
|
36
|
+
|
|
37
|
+
#### Scheduling
|
|
38
|
+
|
|
39
|
+
- **Cron Scheduler** - node-cron based job scheduling with cron expressions
|
|
40
|
+
- **Heartbeat API** - `/api/heartbeat` and `/api/cron` REST endpoints
|
|
41
|
+
- **Schedule Persistence** - SQLite-based schedule storage with crash recovery
|
|
42
|
+
|
|
43
|
+
#### Messenger Integration
|
|
44
|
+
|
|
45
|
+
- **Discord Gateway** - discord.js v14 bot with DM and channel mention support
|
|
46
|
+
- **Slack Gateway** - Socket Mode integration with thread context preservation
|
|
47
|
+
- **Message Router** - Unified message routing with session management
|
|
48
|
+
- **Context Injector** - Proactive MAMA decision retrieval for context-aware responses
|
|
49
|
+
|
|
50
|
+
#### Infrastructure
|
|
51
|
+
|
|
52
|
+
- **Session Store** - Conversation session management with rolling context
|
|
53
|
+
- **Message Splitter** - Platform-aware message chunking (2000 chars for Discord, 40000 for Slack)
|
|
54
|
+
- **Job Locking** - Distributed job execution safety with SQLite locks
|
|
55
|
+
|
|
56
|
+
### Dependencies
|
|
57
|
+
|
|
58
|
+
- Requires Claude Pro subscription
|
|
59
|
+
- Node.js 22+
|
|
60
|
+
- Claude Code (OAuth token source)
|
|
61
|
+
|
|
62
|
+
### Technical Details
|
|
63
|
+
|
|
64
|
+
- TypeScript implementation with full type definitions
|
|
65
|
+
- 335 unit and integration tests
|
|
66
|
+
- Express.js based API server
|
|
67
|
+
- SQLite database for persistence
|
package/README.md
ADDED
|
@@ -0,0 +1,643 @@
|
|
|
1
|
+
# @jungjaehoon/mama-os
|
|
2
|
+
|
|
3
|
+
> **Your AI Operating System**
|
|
4
|
+
> _Control + Visibility for AI-Powered Automation_
|
|
5
|
+
|
|
6
|
+
Always-on AI assistant powered by Claude CLI with gateway integrations and autonomous agent capabilities.
|
|
7
|
+
|
|
8
|
+
## What is MAMA OS?
|
|
9
|
+
|
|
10
|
+
MAMA OS transforms Claude 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:
|
|
11
|
+
|
|
12
|
+
- **Gateway Integrations** - Discord, Slack, Telegram bot support
|
|
13
|
+
- **Autonomous Agent Loop** - Continuous conversation handling via Claude CLI (OAuth-based)
|
|
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
|
|
17
|
+
|
|
18
|
+
**Use cases:**
|
|
19
|
+
|
|
20
|
+
- Run MAMA as a Discord/Slack/Telegram bot for your team
|
|
21
|
+
- Build custom workflows with the skills API
|
|
22
|
+
- Access Claude from anywhere via mobile chat
|
|
23
|
+
- Automate tasks with scheduled cron jobs
|
|
24
|
+
|
|
25
|
+
## Installation
|
|
26
|
+
|
|
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
|
+
```
|
|
34
|
+
|
|
35
|
+
## Prerequisites
|
|
36
|
+
|
|
37
|
+
- **Node.js** >= 22.0.0 (required for native TypeScript support)
|
|
38
|
+
- **Claude CLI** - Install via `npm install -g @anthropic-ai/claude-code` and run `claude` once to authenticate
|
|
39
|
+
- **500MB disk space** - For embedding model cache
|
|
40
|
+
|
|
41
|
+
## Quick Start
|
|
42
|
+
|
|
43
|
+
Get MAMA running in 30 seconds:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# 1. Authenticate Claude CLI (one-time)
|
|
47
|
+
claude
|
|
48
|
+
# Follow OAuth prompts in browser
|
|
49
|
+
|
|
50
|
+
# 2. Initialize workspace
|
|
51
|
+
mama init
|
|
52
|
+
|
|
53
|
+
# 3. Start the agent
|
|
54
|
+
mama start
|
|
55
|
+
|
|
56
|
+
# 4. Check status
|
|
57
|
+
mama status
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
MAMA will start in daemon mode and run continuously in the background.
|
|
61
|
+
|
|
62
|
+
## CLI Commands
|
|
63
|
+
|
|
64
|
+
| Command | Description | Options |
|
|
65
|
+
| ------------------- | ------------------------------------ | --------------------------------------------------------------------------------------------- |
|
|
66
|
+
| `mama init` | Initialize MAMA workspace | `-f, --force` - Overwrite existing config<br>`--skip-auth-check` - Skip API key validation |
|
|
67
|
+
| `mama setup` | Interactive setup wizard with Claude | `-p, --port <port>` - Port number (default: 3847)<br>`--no-browser` - Don't auto-open browser |
|
|
68
|
+
| `mama start` | Start MAMA agent | `-f, --foreground` - Run in foreground (not daemon) |
|
|
69
|
+
| `mama stop` | Stop MAMA agent | |
|
|
70
|
+
| `mama status` | Check agent status | |
|
|
71
|
+
| `mama run <prompt>` | Execute single prompt (testing) | `-v, --verbose` - Detailed output |
|
|
72
|
+
|
|
73
|
+
### Command Examples
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# Initialize with force (overwrites existing config)
|
|
77
|
+
mama init --force
|
|
78
|
+
|
|
79
|
+
# Run setup wizard on custom port
|
|
80
|
+
mama setup --port 8080
|
|
81
|
+
|
|
82
|
+
# Start in foreground (see logs in terminal)
|
|
83
|
+
mama start --foreground
|
|
84
|
+
|
|
85
|
+
# Test a single prompt
|
|
86
|
+
mama run "What's the weather today?" --verbose
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Gateway Integrations
|
|
90
|
+
|
|
91
|
+
MAMA Standalone supports multiple chat platforms. Configure them via the setup wizard or manually in `config.yaml`.
|
|
92
|
+
|
|
93
|
+
### Discord Bot
|
|
94
|
+
|
|
95
|
+
**Setup Steps:**
|
|
96
|
+
|
|
97
|
+
1. Create application at https://discord.com/developers/applications
|
|
98
|
+
2. Add bot and enable **MESSAGE CONTENT INTENT**
|
|
99
|
+
3. Copy bot token
|
|
100
|
+
4. Invite bot to your server with permissions:
|
|
101
|
+
- Read Messages/View Channels
|
|
102
|
+
- Send Messages
|
|
103
|
+
- Read Message History
|
|
104
|
+
- Add Reactions
|
|
105
|
+
|
|
106
|
+
**Configuration:**
|
|
107
|
+
|
|
108
|
+
```yaml
|
|
109
|
+
gateways:
|
|
110
|
+
discord:
|
|
111
|
+
enabled: true
|
|
112
|
+
token: 'YOUR_DISCORD_BOT_TOKEN'
|
|
113
|
+
default_channel_id: '123456789' # Optional
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**Usage:**
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
# In Discord
|
|
120
|
+
@YourBot hello!
|
|
121
|
+
@YourBot analyze this image [attach image]
|
|
122
|
+
@YourBot /translate [image with text]
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Slack Bot
|
|
126
|
+
|
|
127
|
+
**Setup Steps:**
|
|
128
|
+
|
|
129
|
+
1. Create app at https://api.slack.com/apps
|
|
130
|
+
2. Add bot token scopes:
|
|
131
|
+
- `channels:history`
|
|
132
|
+
- `channels:read`
|
|
133
|
+
- `chat:write`
|
|
134
|
+
- `users:read`
|
|
135
|
+
3. Enable Socket Mode and create app-level token
|
|
136
|
+
4. Install to workspace
|
|
137
|
+
|
|
138
|
+
**Configuration:**
|
|
139
|
+
|
|
140
|
+
```yaml
|
|
141
|
+
gateways:
|
|
142
|
+
slack:
|
|
143
|
+
enabled: true
|
|
144
|
+
bot_token: 'xoxb-...'
|
|
145
|
+
app_token: 'xapp-...'
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**Usage:**
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
# In Slack
|
|
152
|
+
@mama what's the status?
|
|
153
|
+
@mama /report
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Telegram Bot
|
|
157
|
+
|
|
158
|
+
**Setup Steps:**
|
|
159
|
+
|
|
160
|
+
1. Message @BotFather on Telegram
|
|
161
|
+
2. Send `/newbot` and follow prompts
|
|
162
|
+
3. Copy bot token
|
|
163
|
+
4. Get your chat ID from @userinfobot
|
|
164
|
+
|
|
165
|
+
**Configuration:**
|
|
166
|
+
|
|
167
|
+
```yaml
|
|
168
|
+
gateways:
|
|
169
|
+
telegram:
|
|
170
|
+
enabled: true
|
|
171
|
+
token: '123456789:ABCdefGHI...'
|
|
172
|
+
allowed_chat_ids:
|
|
173
|
+
- 987654321 # Your chat ID
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**Usage:**
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
# In Telegram
|
|
180
|
+
/start
|
|
181
|
+
Hello MAMA!
|
|
182
|
+
/translate [send image]
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## MAMA OS
|
|
186
|
+
|
|
187
|
+
Built-in web interface for managing MAMA and chatting with Claude.
|
|
188
|
+
|
|
189
|
+
**Access:** `http://localhost:3847` (default port)
|
|
190
|
+
|
|
191
|
+
### Features
|
|
192
|
+
|
|
193
|
+
**📊 Dashboard Tab**
|
|
194
|
+
|
|
195
|
+
- Gateway status overview
|
|
196
|
+
- Memory statistics
|
|
197
|
+
- Agent configuration
|
|
198
|
+
- Top topics
|
|
199
|
+
|
|
200
|
+
**💬 Chat Tab**
|
|
201
|
+
|
|
202
|
+
- Real-time chat with Claude Code sessions
|
|
203
|
+
- Voice input (Web Speech API, Korean optimized)
|
|
204
|
+
- Text-to-speech with adjustable speed
|
|
205
|
+
- Hands-free mode (auto-listen after TTS)
|
|
206
|
+
- Long press to copy messages (750ms)
|
|
207
|
+
- Slash commands: `/save`, `/search`, `/checkpoint`, `/resume`, `/help`
|
|
208
|
+
- Auto-checkpoint (5-minute idle auto-save)
|
|
209
|
+
- Session resume with banner UI
|
|
210
|
+
- MCP tool display (see Read, Write, Bash execution)
|
|
211
|
+
|
|
212
|
+
**🧠 Memory Tab**
|
|
213
|
+
|
|
214
|
+
- Interactive reasoning graph visualization
|
|
215
|
+
- Checkpoint timeline sidebar
|
|
216
|
+
- Draggable detail panel
|
|
217
|
+
- Topic filtering and search
|
|
218
|
+
- Export decisions (JSON, Markdown, CSV)
|
|
219
|
+
|
|
220
|
+
**⚙️ Settings Tab**
|
|
221
|
+
|
|
222
|
+
- Configure gateway tokens
|
|
223
|
+
- Heartbeat scheduler settings
|
|
224
|
+
- Agent configuration (model, max turns, timeout)
|
|
225
|
+
|
|
226
|
+
### Mobile Access
|
|
227
|
+
|
|
228
|
+
MAMA OS is PWA-enabled and works great on mobile:
|
|
229
|
+
|
|
230
|
+
1. Open `http://localhost:3847` on your phone
|
|
231
|
+
2. Add to home screen
|
|
232
|
+
3. Use voice input for hands-free interaction
|
|
233
|
+
|
|
234
|
+
**For external access** (e.g., from phone on different network), see [Security](#security) section.
|
|
235
|
+
|
|
236
|
+
## Skills System
|
|
237
|
+
|
|
238
|
+
MAMA includes built-in skills and supports custom skill creation.
|
|
239
|
+
|
|
240
|
+
### Built-in Skills
|
|
241
|
+
|
|
242
|
+
**📸 Image Translation**
|
|
243
|
+
|
|
244
|
+
```
|
|
245
|
+
# Discord/Telegram
|
|
246
|
+
[Send image with text]
|
|
247
|
+
MAMA: [Translates text to Korean]
|
|
248
|
+
|
|
249
|
+
# Or explicitly
|
|
250
|
+
/translate [image]
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
**📄 Document Analysis**
|
|
254
|
+
|
|
255
|
+
```
|
|
256
|
+
# Send Excel, PDF, or Word file
|
|
257
|
+
MAMA: [Analyzes and summarizes content]
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
**📊 Heartbeat Report**
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
/report
|
|
264
|
+
MAMA: [Collects activity from all gateways and creates summary]
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### Skill Forge
|
|
268
|
+
|
|
269
|
+
Create custom skills with AI assistance:
|
|
270
|
+
|
|
271
|
+
```
|
|
272
|
+
/forge weather-check - A skill that tells weather info
|
|
273
|
+
|
|
274
|
+
# 3 AI agents collaborate:
|
|
275
|
+
# 1. 🏗️ Architect - Designs structure
|
|
276
|
+
# 2. 💻 Developer - Writes code
|
|
277
|
+
# 3. 🔍 QA - Quality verification
|
|
278
|
+
|
|
279
|
+
# Each step has 5-second countdown for review
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
Skills are stored in `workspace/skills/` and auto-loaded on startup.
|
|
283
|
+
|
|
284
|
+
## Cron Jobs & Heartbeat
|
|
285
|
+
|
|
286
|
+
### Cron Jobs
|
|
287
|
+
|
|
288
|
+
Schedule automated tasks:
|
|
289
|
+
|
|
290
|
+
```
|
|
291
|
+
# Add cron job
|
|
292
|
+
/cron add "0 9 * * *" "Daily morning briefing"
|
|
293
|
+
|
|
294
|
+
# List cron jobs
|
|
295
|
+
/cron list
|
|
296
|
+
|
|
297
|
+
# Remove cron job
|
|
298
|
+
/cron remove [id]
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
**Cron syntax:**
|
|
302
|
+
|
|
303
|
+
```
|
|
304
|
+
* * * * *
|
|
305
|
+
│ │ │ │ │
|
|
306
|
+
│ │ │ │ └─ Day of week (0-7, 0 and 7 are Sunday)
|
|
307
|
+
│ │ │ └─── Month (1-12)
|
|
308
|
+
│ │ └───── Day of month (1-31)
|
|
309
|
+
│ └─────── Hour (0-23)
|
|
310
|
+
└───────── Minute (0-59)
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
**Examples:**
|
|
314
|
+
|
|
315
|
+
```
|
|
316
|
+
"0 9 * * *" # Every day at 9 AM
|
|
317
|
+
"0 18 * * 5" # Every Friday at 6 PM
|
|
318
|
+
"*/30 * * * *" # Every 30 minutes
|
|
319
|
+
"0 0 1 * *" # First day of every month at midnight
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
### Heartbeat
|
|
323
|
+
|
|
324
|
+
MAMA periodically wakes up to check for new messages across gateways.
|
|
325
|
+
|
|
326
|
+
**Configuration:**
|
|
327
|
+
|
|
328
|
+
```yaml
|
|
329
|
+
heartbeat:
|
|
330
|
+
enabled: true
|
|
331
|
+
interval_minutes: 30
|
|
332
|
+
quiet_hours:
|
|
333
|
+
start: 23 # 11 PM
|
|
334
|
+
end: 8 # 8 AM
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
During quiet hours, heartbeat is paused to avoid notifications.
|
|
338
|
+
|
|
339
|
+
## Onboarding Wizard
|
|
340
|
+
|
|
341
|
+
First-time setup includes a 9-phase autonomous onboarding:
|
|
342
|
+
|
|
343
|
+
1. **The Awakening** ✨ - MAMA is born, meets you for the first time
|
|
344
|
+
2. **Getting to Know You** 💬 - Natural conversation to understand your needs
|
|
345
|
+
3. **Personality Quest** 🎮 - Fun scenario-based quiz (customized to your role)
|
|
346
|
+
4. **The Naming Ceremony** 🏷️ - Give MAMA a unique name and emoji
|
|
347
|
+
5. **Checkpoint** ✅ - Confirm all settings before proceeding
|
|
348
|
+
6. **Security Talk** 🔒 - Understand capabilities and risks (mandatory)
|
|
349
|
+
7. **The Connections** 🔌 - Step-by-step Discord/Slack/Telegram setup
|
|
350
|
+
8. **The Demo** 🎪 - See MAMA's capabilities in action
|
|
351
|
+
9. **Grand Finale** 🎉 - Complete setup and start using MAMA
|
|
352
|
+
|
|
353
|
+
**Start onboarding:**
|
|
354
|
+
|
|
355
|
+
```bash
|
|
356
|
+
mama setup
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
The wizard runs in your browser at `http://localhost:3847` and guides you through each step with Claude CLI.
|
|
360
|
+
|
|
361
|
+
## Architecture
|
|
362
|
+
|
|
363
|
+
```
|
|
364
|
+
┌─────────────────────────────────────────────────┐
|
|
365
|
+
│ MAMA Standalone Architecture │
|
|
366
|
+
├─────────────────────────────────────────────────┤
|
|
367
|
+
│ │
|
|
368
|
+
│ Discord Bot Slack Bot Telegram Bot │
|
|
369
|
+
│ │ │ │ │
|
|
370
|
+
│ └─────────────┴──────────────┘ │
|
|
371
|
+
│ │ │
|
|
372
|
+
│ ┌──────────▼──────────┐ │
|
|
373
|
+
│ │ Message Router │ │
|
|
374
|
+
│ │ (Gateway Layer) │ │
|
|
375
|
+
│ └──────────┬──────────┘ │
|
|
376
|
+
│ │ │
|
|
377
|
+
│ ┌──────────▼──────────┐ │
|
|
378
|
+
│ │ Agent Loop │ │
|
|
379
|
+
│ │ (Claude CLI) │ │
|
|
380
|
+
│ └──────────┬──────────┘ │
|
|
381
|
+
│ │ │
|
|
382
|
+
│ ┌──────────▼──────────┐ │
|
|
383
|
+
│ │ Skills System │ │
|
|
384
|
+
│ │ (Pluggable) │ │
|
|
385
|
+
│ └──────────┬──────────┘ │
|
|
386
|
+
│ │ │
|
|
387
|
+
│ ┌──────────▼──────────┐ │
|
|
388
|
+
│ │ MAMA Core │ │
|
|
389
|
+
│ │ (Memory + DB) │ │
|
|
390
|
+
│ └─────────────────────┘ │
|
|
391
|
+
│ │ │
|
|
392
|
+
│ ┌──────────▼──────────┐ │
|
|
393
|
+
│ │ MAMA OS Viewer │ │
|
|
394
|
+
│ │ (Web UI) │ │
|
|
395
|
+
│ └─────────────────────┘ │
|
|
396
|
+
│ │
|
|
397
|
+
└─────────────────────────────────────────────────┘
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
**Key Components:**
|
|
401
|
+
|
|
402
|
+
- **Gateway Layer** - Handles Discord/Slack/Telegram message routing
|
|
403
|
+
- **Agent Loop** - Continuous conversation handling via Claude CLI (OAuth-based)
|
|
404
|
+
- **Skills System** - Pluggable capabilities (image translation, document analysis)
|
|
405
|
+
- **MAMA Core** - Shared memory and database (from @jungjaehoon/mama-core)
|
|
406
|
+
- **MAMA OS** - Web-based management interface
|
|
407
|
+
|
|
408
|
+
## Configuration
|
|
409
|
+
|
|
410
|
+
MAMA uses `config.yaml` in your workspace directory.
|
|
411
|
+
|
|
412
|
+
**Example configuration:**
|
|
413
|
+
|
|
414
|
+
```yaml
|
|
415
|
+
# Agent settings
|
|
416
|
+
agent:
|
|
417
|
+
model: 'claude-sonnet-4-20250514'
|
|
418
|
+
max_turns: 10
|
|
419
|
+
timeout_seconds: 300
|
|
420
|
+
|
|
421
|
+
# Gateway integrations
|
|
422
|
+
gateways:
|
|
423
|
+
discord:
|
|
424
|
+
enabled: true
|
|
425
|
+
token: 'YOUR_TOKEN'
|
|
426
|
+
default_channel_id: '123456789'
|
|
427
|
+
|
|
428
|
+
slack:
|
|
429
|
+
enabled: false
|
|
430
|
+
bot_token: 'xoxb-...'
|
|
431
|
+
app_token: 'xapp-...'
|
|
432
|
+
|
|
433
|
+
telegram:
|
|
434
|
+
enabled: false
|
|
435
|
+
token: '123456:ABC...'
|
|
436
|
+
allowed_chat_ids: []
|
|
437
|
+
|
|
438
|
+
# Heartbeat scheduler
|
|
439
|
+
heartbeat:
|
|
440
|
+
enabled: true
|
|
441
|
+
interval_minutes: 30
|
|
442
|
+
quiet_hours:
|
|
443
|
+
start: 23
|
|
444
|
+
end: 8
|
|
445
|
+
|
|
446
|
+
# Skills
|
|
447
|
+
skills:
|
|
448
|
+
enabled: true
|
|
449
|
+
auto_load: true
|
|
450
|
+
directory: './skills'
|
|
451
|
+
|
|
452
|
+
# MAMA OS
|
|
453
|
+
viewer:
|
|
454
|
+
enabled: true
|
|
455
|
+
port: 3847
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
## Security
|
|
459
|
+
|
|
460
|
+
**IMPORTANT:** MAMA Standalone has full access to your system via Claude CLI.
|
|
461
|
+
|
|
462
|
+
### Capabilities
|
|
463
|
+
|
|
464
|
+
MAMA can:
|
|
465
|
+
|
|
466
|
+
- 🗂️ **Read/write files** - Any file your user account can access
|
|
467
|
+
- ⚡ **Execute commands** - Run terminal commands (npm, git, etc.)
|
|
468
|
+
- 🌐 **Make network requests** - Fetch data, call APIs
|
|
469
|
+
- 🔌 **Send messages** - Via configured gateway integrations
|
|
470
|
+
|
|
471
|
+
### Recommendations
|
|
472
|
+
|
|
473
|
+
**For maximum safety:**
|
|
474
|
+
|
|
475
|
+
- Run MAMA in a Docker container
|
|
476
|
+
- Use a dedicated user account with limited permissions
|
|
477
|
+
- Don't give MAMA access to production systems
|
|
478
|
+
- Review gateway permissions carefully
|
|
479
|
+
|
|
480
|
+
**Gateway security:**
|
|
481
|
+
|
|
482
|
+
- Discord: Use role-based permissions to limit bot access
|
|
483
|
+
- Slack: Only install to test workspaces initially
|
|
484
|
+
- Telegram: Use `allowed_chat_ids` to restrict who can interact
|
|
485
|
+
|
|
486
|
+
**External access:**
|
|
487
|
+
|
|
488
|
+
If you want to access MAMA OS from outside localhost (e.g., from your phone):
|
|
489
|
+
|
|
490
|
+
1. **Recommended:** Use Cloudflare Zero Trust tunnel with authentication
|
|
491
|
+
2. **Testing only:** Use `cloudflared tunnel --url http://localhost:3847`
|
|
492
|
+
|
|
493
|
+
⚠️ **Never expose MAMA OS to the internet without authentication** - Anyone with access can control your system via Claude.
|
|
494
|
+
|
|
495
|
+
See [Security Guide](../../docs/guides/security.md) for detailed setup instructions.
|
|
496
|
+
|
|
497
|
+
## Environment Variables
|
|
498
|
+
|
|
499
|
+
| Variable | Description | Default |
|
|
500
|
+
| ---------------- | ------------------------ | -------------------------- |
|
|
501
|
+
| `MAMA_DB_PATH` | SQLite database location | `~/.claude/mama-memory.db` |
|
|
502
|
+
| `MAMA_HTTP_PORT` | MAMA OS port | `3847` |
|
|
503
|
+
| `MAMA_WORKSPACE` | Workspace directory | `./mama-workspace` |
|
|
504
|
+
|
|
505
|
+
> **Note:** Authentication is handled by Claude CLI OAuth. Run `claude` once to authenticate.
|
|
506
|
+
|
|
507
|
+
## Troubleshooting
|
|
508
|
+
|
|
509
|
+
### Agent won't start
|
|
510
|
+
|
|
511
|
+
```bash
|
|
512
|
+
# Check if already running
|
|
513
|
+
mama status
|
|
514
|
+
|
|
515
|
+
# Stop existing instance
|
|
516
|
+
mama stop
|
|
517
|
+
|
|
518
|
+
# Start in foreground to see logs
|
|
519
|
+
mama start --foreground
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
### Gateway not connecting
|
|
523
|
+
|
|
524
|
+
```bash
|
|
525
|
+
# Verify token in config.yaml
|
|
526
|
+
cat mama-workspace/config.yaml
|
|
527
|
+
|
|
528
|
+
# Check gateway status in MAMA OS
|
|
529
|
+
# Open http://localhost:3847 → Dashboard tab
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
### Claude CLI authentication errors
|
|
533
|
+
|
|
534
|
+
```bash
|
|
535
|
+
# Re-authenticate Claude CLI
|
|
536
|
+
claude
|
|
537
|
+
|
|
538
|
+
# Check Claude CLI status
|
|
539
|
+
claude --version
|
|
540
|
+
|
|
541
|
+
# Test with verbose output
|
|
542
|
+
mama run "test" --verbose
|
|
543
|
+
```
|
|
544
|
+
|
|
545
|
+
### Port already in use
|
|
546
|
+
|
|
547
|
+
```bash
|
|
548
|
+
# Change port in config.yaml
|
|
549
|
+
vim mama-workspace/config.yaml
|
|
550
|
+
|
|
551
|
+
# Or use setup wizard
|
|
552
|
+
mama setup --port 8080
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
## Comparison with Other Packages
|
|
556
|
+
|
|
557
|
+
| Package | Purpose | Use When |
|
|
558
|
+
| ---------------------------- | ------------------------------------------- | ----------------------------------- |
|
|
559
|
+
| **@jungjaehoon/mama-os** | Your AI Operating System (agent + gateways) | You want Discord/Slack/Telegram bot |
|
|
560
|
+
| **@jungjaehoon/mama-server** | MCP server for Claude clients | You use Claude Code/Desktop |
|
|
561
|
+
| **@jungjaehoon/mama-core** | Shared core library | You're building custom integrations |
|
|
562
|
+
|
|
563
|
+
**Not what you're looking for?**
|
|
564
|
+
|
|
565
|
+
- **For Claude Code/Desktop:** Use [@jungjaehoon/mama-server](../mcp-server/README.md)
|
|
566
|
+
- **For custom integrations:** Use [@jungjaehoon/mama-core](../mama-core/README.md)
|
|
567
|
+
- **For the full project:** See [main README](../../README.md)
|
|
568
|
+
|
|
569
|
+
## Development
|
|
570
|
+
|
|
571
|
+
### Project Structure
|
|
572
|
+
|
|
573
|
+
```
|
|
574
|
+
packages/standalone/
|
|
575
|
+
├── src/
|
|
576
|
+
│ ├── cli/ # CLI commands
|
|
577
|
+
│ ├── agent/ # Agent loop implementation
|
|
578
|
+
│ ├── gateways/ # Discord, Slack, Telegram
|
|
579
|
+
│ ├── skills/ # Built-in skills
|
|
580
|
+
│ ├── onboarding/ # Setup wizard
|
|
581
|
+
│ └── config/ # Configuration management
|
|
582
|
+
├── public/
|
|
583
|
+
│ └── viewer/ # MAMA OS web interface
|
|
584
|
+
├── templates/ # Workspace templates
|
|
585
|
+
└── tests/ # Test suite
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
### Building from Source
|
|
589
|
+
|
|
590
|
+
```bash
|
|
591
|
+
# Clone repository
|
|
592
|
+
git clone https://github.com/jungjaehoon-lifegamez/MAMA.git
|
|
593
|
+
cd MAMA
|
|
594
|
+
|
|
595
|
+
# Install dependencies
|
|
596
|
+
pnpm install
|
|
597
|
+
|
|
598
|
+
# Build standalone package
|
|
599
|
+
cd packages/standalone
|
|
600
|
+
pnpm build
|
|
601
|
+
|
|
602
|
+
# Link for local testing
|
|
603
|
+
npm link
|
|
604
|
+
|
|
605
|
+
# Test
|
|
606
|
+
mama init
|
|
607
|
+
mama start --foreground
|
|
608
|
+
```
|
|
609
|
+
|
|
610
|
+
### Running Tests
|
|
611
|
+
|
|
612
|
+
```bash
|
|
613
|
+
# All tests
|
|
614
|
+
pnpm test
|
|
615
|
+
|
|
616
|
+
# Watch mode
|
|
617
|
+
pnpm test:watch
|
|
618
|
+
|
|
619
|
+
# Type checking
|
|
620
|
+
pnpm typecheck
|
|
621
|
+
```
|
|
622
|
+
|
|
623
|
+
## Links
|
|
624
|
+
|
|
625
|
+
- [GitHub Repository](https://github.com/jungjaehoon-lifegamez/MAMA)
|
|
626
|
+
- [Documentation](https://github.com/jungjaehoon-lifegamez/MAMA/tree/main/docs)
|
|
627
|
+
- [Issues](https://github.com/jungjaehoon-lifegamez/MAMA/issues)
|
|
628
|
+
- [npm Package](https://www.npmjs.com/package/@jungjaehoon/mama-os)
|
|
629
|
+
- [MCP Server Package](https://www.npmjs.com/package/@jungjaehoon/mama-server)
|
|
630
|
+
|
|
631
|
+
## License
|
|
632
|
+
|
|
633
|
+
MIT - see [LICENSE](../../LICENSE)
|
|
634
|
+
|
|
635
|
+
## Acknowledgments
|
|
636
|
+
|
|
637
|
+
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.
|
|
638
|
+
|
|
639
|
+
---
|
|
640
|
+
|
|
641
|
+
**Author:** SpineLift Team
|
|
642
|
+
**Version:** 0.1.0
|
|
643
|
+
**Last Updated:** 2026-02-01
|