Shared Memory
Share memories from your knowledge base with other users. Manage users, groups, and fine-grained permissions on namespaces.
Quick Start
# Create user and group
{baseDir}/scripts/shared-memory.sh create-user mark
{baseDir}/scripts/shared-memory.sh create-group family
{baseDir}/scripts/shared-memory.sh add-member family mark
Grant access
{baseDir}/scripts/shared-memory.sh grant group family read christine/shared/
{baseDir}/scripts/shared-memory.sh grant group family update christine/shared/
Namespace Organization
<username>/
├── private/ # Only this user
├── shared/ # Shared with others
└── public/ # Read-only to others
Grant access to
mark/shared/
→ all shared content
Grant access to
mark/shared/recipes/
→ just recipes
Commands
Users
| Command | Description |
|---|
create-user <username>
| Create user |
delete-user <username>
| Delete user |
Groups
| Command | Description |
|---|
create-group <name>
| Create group |
delete-group <name>
| Delete group |
add-member <group> <user>
| Add user to group |
remove-member <group> <user>
| Remove user |
Permissions
| Command | Description |
|---|
grant org <action> <pattern>
| Grant to org |
grant user <name> <action> <pattern>
| Grant to user |
grant group <name> <action> <pattern>
| Grant to group |
revoke <grant_id>
| Revoke permission |
list
| List all grants |
list-permissions
| List effective permissions |
Actions:
read
,
create
,
update
,
delete
Subscriptions
| Command | Description |
|---|
subscribe <key>
| Get notified on changes |
unsubscribe <key>
| Stop notifications |
list-subscriptions
| List subscriptions |
Example: Family Sharing
# Create user for partner
{baseDir}/scripts/shared-memory.sh create-user mark
Create family group
{baseDir}/scripts/shared-memory.sh create-group family
{baseDir}/scripts/shared-memory.sh add-member family mark
Grant mutual access to shared/ namespaces
{baseDir}/scripts/shared-memory.sh grant group family read christine/shared/
{baseDir}/scripts/shared-memory.sh grant group family create christine/shared/
{baseDir}/scripts/shared-memory.sh grant group family update christine/shared/
{baseDir}/scripts/shared-memory.sh grant group family read mark/shared/
{baseDir}/scripts/shared-memory.sh grant group family update mark/shared/
Troubleshooting
If commands fail, first check if an Ensue API key is configured:
echo $ENSUE_API_KEY
grep -A2 'ensue-learning-memory' ~/.clawdbot/clawdbot.json
If no API key found, tell user to get a free key at https://www.ensue-network.ai/login and configure in
~/.clawdbot/clawdbot.json
:
{
"skills": {
"entries": {
"ensue-learning-memory": {
"apiKey": "their-api-key-here"
}
}
}
}
If key exists but commands fail, the key may be invalid - have user generate a new one.