Skill: clawdbot51-oss/supermemory (version 1.0.0)

--- name: supermemory description: Store and retrieve memories using the SuperMemory API. Add content, search memories, and chat with your knowledge base. metadata: {"moltbot":{"emoji":"🧠","requires":{"env":["SUPERMEMORY_API_KEY"]},"primaryEnv":"SUPERMEMORY_API_KEY"},"user-invocable":true} --- # SuperMemory Store, search, and chat with your personal knowledge base using SuperMemory's API. ## Setup Configure your SuperMemory API key: ```bash export SUPERMEMORY_API_KEY=[REDACTED_SECRET] ``` ## Usage ### Add a Memory **Add content to your memory store:** ```bash # Add a memory with content supermemory add "Your memory content here" # Add a memory with a specific description supermemory add "Important project details" --description "Project requirements" ``` ### Search Memories **Search your stored memories:** ```bash supermemory search "search query" ``` ### Chat with Memories **Chat with your memory database:** ```bash supermemory chat "What do you know about my projects?" ``` ## Implementation ### Add Memory When user wants to store information: ```bash bash /root/clawd/skills/supermemory/scripts/add-memory.sh "content" "description (optional)" ``` ### Search Memories When user wants to find something in their memories: ```bash bash /root/clawd/skills/supermemory/scripts/search.sh "query" ``` ### Chat with Memory Base When user wants to query their memory database conversationally: ```bash bash /root/clawd/skills/supermemory/scripts/chat.sh "question" ``` ## Examples **Store important information:** - "Remember that my API key is xyz" → `supermemory add "My API key is xyz" --description "API credentials"` - "Save this link for later" → `supermemory add "https://example.com" --description "Bookmarked link"` **Find information:** - "What did I save about Python?" → `supermemory search "Python"` - "Find my notes on the project" → `supermemory search "project notes"` **Query your knowledge:** - "What do I know about the marketing strategy?" → `supermemory chat "What do I know about the marketing strategy?"` - "Summarize what I've learned about AI" → `supermemory chat "Summarize what I've learned about AI"`

path: scripts/add-memory.sh
content: #!/bin/bash
# SuperMemory - Add Memory Script
# Usage: add-memory.sh "content" "description (optional)"

set -e

CONTENT="$1"
DESCRIPTION="$2"

if [ -z "$CONTENT" ]; then
    echo "Error: No content provided"
    echo "Usage: add-memory.sh \"content\" \"description (optional)\""
    exit 1
fi

[REDACTED_SECRET]"
if [ -z "$API_KEY" ]; then
    echo "Error: SUPERMEMORY_API_KEY environment variable not set"
    echo "Please set it with: export SUPERMEMORY_API_KEY=\"your-api-key\""
    exit 1
fi

# Sanitize description: replace spaces with hyphens, keep only alphanumeric, hyphens, underscores
SANITIZED_DESC=$(echo "${DESCRIPTION:-clawdbot}" | tr -cd '[:alnum:]-_' | tr '[:upper:]' '[:lower:]')

# SuperMemory API endpoint (using the direct API)
API_URL="https://api.supermemory.ai/v3/documents"

# Prepare the request
DATA=$(cat <<EOF
{
    "content": "$CONTENT",
    "customId": "memory_$(date +%s)",
    "containerTags": ["$SANITIZED_DESC"]
}
EOF
)

# Make the API request
RESPONSE=$(curl -s -X POST "$API_URL" \
    -H "Authorization: Bearer $API_KEY" \
    -H "Content-Type: application/json" \
    -d "$DATA")

# Check for errors
if echo "$RESPONSE" | grep -q "error"; then
    echo "Error adding memory: $RESPONSE"
    exit 1
fi

# Success - extract the memory ID if available
MEMORY_ID=$(echo "$RESPONSE" | grep -o '"id":"[^"]*"' | head -1 | cut -d'"' -f4)

if [ -n "$MEMORY_ID" ]; then
    echo "✓ Memory added successfully (ID: $MEMORY_ID)"
else
    echo "✓ Memory added successfully"
fi

echo "$RESPONSE"


path: scripts/chat.sh
content: #!/bin/bash
# SuperMemory - Chat with Memories Script
# Usage: chat.sh "question"
# Note: Uses search to retrieve relevant memories and presents them

set -e

QUESTION="$1"

if [ -z "$QUESTION" ]; then
    echo "Error: No question provided"
    echo "Usage: chat.sh \"question\""
    exit 1
fi

[REDACTED_SECRET]"
if [ -z "$API_KEY" ]; then
    echo "Error: SUPERMEMORY_API_KEY environment variable not set"
    echo "Please set it with: export SUPERMEMORY_API_KEY=\"your-api-key\""
    exit 1
fi

# SuperMemory API search endpoint (used for chat-like queries)
API_URL="https://api.supermemory.ai/v3/search"

# Prepare the request
DATA=$(cat <<EOF
{
    "q": "$QUESTION",
    "limit": 5
}
EOF
)

# Make the API request
RESPONSE=$(curl -s -X POST "$API_URL" \
    -H "Authorization: Bearer $API_KEY" \
    -H "Content-Type: application/json" \
    -d "$DATA")

# Check for errors
if echo "$RESPONSE" | grep -q "error"; then
    echo "Error querying memories: $RESPONSE"
    exit 1
fi

# Parse and display results in a chat-like format
echo "Based on your memories:"
echo "---"

# Extract and display the relevant chunks
echo "$RESPONSE" | python3 -c "
import sys, json

data = json.load(sys.stdin)
results = data.get('results', [])

if not results:
    print('No relevant memories found.')
else:
    for i, result in enumerate(results, 1):
        chunks = result.get('chunks', [])
        for chunk in chunks:
            content = chunk.get('content', '')
            score = chunk.get('score', 0)
            if content:
                print(f'{i}. {content}')
                print(f'   (relevance: {score:.2f})')
                print()
" 2>/dev/null || echo "$RESPONSE"


path: scripts/search.sh
content: #!/bin/bash
# SuperMemory - Search Memories Script
# Usage: search.sh "search query"

set -e

QUERY="$1"

if [ -z "$QUERY" ]; then
    echo "Error: No search query provided"
    echo "Usage: search.sh \"search query\""
    exit 1
fi

[REDACTED_SECRET]"
if [ -z "$API_KEY" ]; then
    echo "Error: SUPERMEMORY_API_KEY environment variable not set"
    echo "Please set it with: export SUPERMEMORY_API_KEY=\"your-api-key\""
    exit 1
fi

# SuperMemory API search endpoint
API_URL="https://api.supermemory.ai/v3/search"

# Prepare the request
DATA=$(cat <<EOF
{
    "q": "$QUERY",
    "limit": 10
}
EOF
)

# Make the API request
RESPONSE=$(curl -s -X POST "$API_URL" \
    -H "Authorization: Bearer $API_KEY" \
    -H "Content-Type: application/json" \
    -d "$DATA")

# Check for errors
if echo "$RESPONSE" | grep -q "error"; then
    echo "Error searching memories: $RESPONSE"
    exit 1
fi

# Parse and display results
echo "Search results for \"$QUERY\":"
echo "---"
echo "$RESPONSE" | python3 -m json.tool 2>/dev/null || echo "$RESPONSE"


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)