Shared Memory between Lobsters

Share memories and state with other users. Use when user wants to share knowledge, create users/groups, grant permissions, set up family or team sharing, subscribe to memory change…

christinetyip

@christinetyip

What This Skill Does

Manages shared memory and state between users via a CLI tool. Creates users and groups, grants fine-grained read/write permissions on namespace paths, and subscribes to memory changes.

Replaces building custom access control systems for shared knowledge bases by providing user/group management and granular permissions on memory namespaces.

When to Use It

  • Create a family group and grant read/write access to a shared recipe namespace
  • Add a team member to a project group and restrict their access to a specific subfolder
  • Subscribe to changes on a shared memory key to stay notified of updates
  • Revoke a user's permission to delete files in a shared namespace
  • List all current permission grants to audit who has access to what
  • Set up a public read-only namespace for external collaborators

Install

$ openclaw skills install @christinetyip/shared-memory

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

CommandDescription
create-user <username>Create user
delete-user <username>Delete user

Groups

CommandDescription
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

CommandDescription
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
listList all grants
list-permissionsList effective permissions

Actions: read, create, update, delete

Subscriptions

CommandDescription
subscribe <key>Get notified on changes
unsubscribe <key>Stop notifications
list-subscriptionsList 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.

Top skills in this category