shared-memory
SKILL.md
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.