Proma × Nowledge Mem
Proma setup with MCP tools, Context Bundle / Working Memory startup context, Stop-hook thread capture, and standard Nowledge Mem skills.
For your agent
Give this line to your agent. It should use the universal install skill first; this page remains the behavior and troubleshooting reference:
Read https://mem.nowledge.co/SKILL.md and follow the instructions to install or update Nowledge Mem for Proma. Verify with nmem status and the Context Bundle or Working Memory check, then summarize what changed.Best current path
Proma supports MCP and lifecycle hooks through its Claude Agent SDK foundation. Nowledge Mem uses that path: MCP for memory tools, SessionStart for Context Bundle / Working Memory startup context, Stop for thread capture, and skills for clear agent behavior.
Proma is a desktop agent. With Nowledge Mem installed, a Proma session can start with your current startup context, search cross-tool knowledge when the agent needs it, and save the Proma conversation as a searchable Mem thread.
How you'll know it's working
Start a new Proma session and ask What was I working on?. You should
see recent Context Bundle or Working Memory context. Then send a message with a unique phrase,
wait for Proma to reply, and run nmem t search "that phrase" --source proma.
The Proma thread should appear in Mem.
Before You Start
- Nowledge Mem running locally (installation) or a reachable remote Mem server
- Proma installed
- Python 3.9+ available as
python3orpython nmemCLI in yourPATH
nmem statusIf nmem is missing, install it from the Mem desktop app developer tools, or run:
pip install nmem-cliSetup
Download the plugin files
rm -rf /tmp/nowledge-community
git clone https://github.com/nowledge-co/community.git /tmp/nowledge-community
mkdir -p ~/.proma/hooks ~/.proma/agent-workspaces/default/skills
cp /tmp/nowledge-community/nowledge-mem-proma-plugin/hooks/save-to-nmem.py ~/.proma/hooks/
cp /tmp/nowledge-community/nowledge-mem-proma-plugin/hooks/read-working-memory.py ~/.proma/hooks/
cp -R /tmp/nowledge-community/nowledge-mem-proma-plugin/skills/{read-working-memory,search-memory,distill-memory,save-thread,status} ~/.proma/agent-workspaces/default/skills/Add the MCP server
Create or edit ~/.proma/agent-workspaces/default/mcp.json. If the file already
exists, merge the nowledge-mem server into the existing servers object.
{
"servers": {
"nowledge-mem": {
"url": "http://127.0.0.1:14242/mcp/",
"type": "streamableHttp",
"headers": {
"APP": "Proma"
}
}
}
}Local Mem usually does not need an API key.
For remote Mem, use your remote URL and include the key:
{
"servers": {
"nowledge-mem": {
"url": "https://mem.example.com/mcp/",
"type": "streamableHttp",
"headers": {
"APP": "Proma",
"Authorization": "Bearer nmem_your_key",
"X-NMEM-API-Key": "nmem_your_key"
}
}
}
}Enable hooks
Create or edit ~/.proma/settings.json. Use absolute paths in hook commands.
Replace /Users/you with your real home directory.
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "python3 \"/Users/you/.proma/hooks/save-to-nmem.py\"",
"timeout": 30,
"async": true
}
]
}
],
"SessionStart": [
{
"matcher": "startup|resume",
"hooks": [
{
"type": "command",
"command": "python3 \"/Users/you/.proma/hooks/read-working-memory.py\"",
"timeout": 10,
"async": true
}
]
}
]
}
}If your Proma build expands environment variables in hook commands, you can set
PROMA_HOME and use the bundled ${PROMA_HOME} paths from the plugin's
hooks/hooks.json. The Python scripts default to ~/.proma when PROMA_HOME
is not set, but the hook command still needs a path Proma can execute.
Add behavior guidance
Add this section to the Proma workspace guidance file you use, such as
CLAUDE.md:
## Nowledge Mem
At session start, read Context Bundle when available, then fall back to Working Memory.
When the user references previous work, search Nowledge Mem memories first, then
threads if needed.
When the conversation produces a durable decision, procedure, preference, or
learning, save it to Nowledge Mem.
Automatic thread capture is handled by the Proma Stop hook.Restart Proma after changing MCP or hook settings.
What Happens Automatically
- SessionStart runs
read-working-memory.py, which callsnmem --json context --source-app proma, then falls back tonmem --json wm read - Stop runs
save-to-nmem.py, which parses Proma JSONL sessions and appends messages into Mem threads - Thread capture deduplicates repeated hook runs by Proma message UUID
- MCP tools let Proma search memories, save durable knowledge, search threads, and check status
- Skills explain when to use Context Bundle or Working Memory, search, distillation, save-thread, and status
MCP recall and distillation are guided by the agent. Thread capture and startup context bootstrap are lifecycle hooks, so they do not depend on the model choosing a tool.
Update
cd /tmp/nowledge-community
git pull
cp nowledge-mem-proma-plugin/hooks/save-to-nmem.py ~/.proma/hooks/
cp nowledge-mem-proma-plugin/hooks/read-working-memory.py ~/.proma/hooks/
cp -R nowledge-mem-proma-plugin/skills/{read-working-memory,search-memory,distill-memory,save-thread,status} ~/.proma/agent-workspaces/default/skills/Then restart Proma.
Remote Mode
For hooks and CLI fallback, configure the local nmem client once:
nmem config client set url https://mem.example.com
nmem config client set api-key nmem_your_keyMCP still reads its URL and headers from Proma's mcp.json, so keep the two in
sync when using a remote Mem server.
Troubleshooting
MCP tools do not appear. Confirm mcp.json uses servers as the top-level
key, then restart Proma.
Startup context does not appear at session start. Run nmem status, then
check ~/.proma/log/nmem-hook.log.
Threads are not appearing in Mem. Send a normal completed prompt and wait for
Proma to finish replying. The Stop hook runs after a turn completes. Check
~/.proma/log/nmem-hook.log and search with nmem t search "<phrase>" --source proma.
Remote MCP works, but hooks do not. MCP uses mcp.json; hooks use the local
nmem client config. Run nmem config client set url ... and
nmem config client set api-key ... on the machine running Proma.
Related
Hermes Agent × Nowledge Mem
Native memory provider for Hermes v0.7.0+. Context Bundle loads at startup when available, relevant knowledge surfaces before every turn, and Hermes captures cleaned transcript turns into Mem threads.
Raycast
Nowledge Mem extension for Raycast. Search memories, save a quick memory, and read Working Memory without leaving your keyboard.