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
create-user | Create user |
delete-user | Delete user |
Groups
create-group | Create group |
delete-group | Delete group |
add-member | Add user to group |
remove-member | Remove user |
Permissions
grant org | Grant to org |
grant user | Grant to user |
grant group | Grant to group |
revoke | Revoke permission |
list | List all grants |
list-permissions | List effective permissions |
Actions:
read,
create,
update,
delete
Subscriptions
subscribe | Get notified on changes |
unsubscribe | 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 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.