Skip to main content

Overview

The OpenSink Memory skill lets OpenClaw agents store and retrieve memories using OpenSink’s Sinks API. Memories are stored as Sink Items — they persist across sessions, work across machines, and are fully searchable. When an agent needs to remember something (“Dan prefers dark mode”) or recall a past decision, it uses this skill to push and query memories in the cloud.

How it works

ActionWhat it does
PushStore a new memory with a type and timestamp
ListRetrieve recent memories
SearchFind memories by keyword
GetFetch a specific memory by ID
Each memory is stored as a Sink Item with:
  • Title — the memory content
  • Type — category (fact, preference, decision, event, note)
  • Occurred at — when it happened

Install

clawhub install opensink-memory

Setup

1

Get an API key

Sign up at app.opensink.com and create an API key with sink_items:all scope (or all:all).
2

Create a Memory Sink

Run the included init script to create a dedicated Sink for memories:
export OPENSINK_API_KEY="your-api-key"
bash scripts/init-memory-sink.sh
This creates a Sink named “Memory” and outputs the Sink ID.
3

Configure the agent

Add the credentials to your agent’s TOOLS.md:
## OpenSink Memory
- **API Key:** `osk_...`
- **Sink ID:** `019c...`
The skill reads OPENSINK_API_KEY and OPENSINK_SINK_ID from environment variables.

Usage

Once installed, the agent uses the skill automatically when it needs to remember or recall something. You can also run the script directly:
export OPENSINK_API_KEY="your-key"
export OPENSINK_SINK_ID="your-sink-id"

# Store a memory
bash scripts/opensink-memory.sh push "Dan prefers dark mode" "preference"

# List recent memories
bash scripts/opensink-memory.sh list

# Search memories
bash scripts/opensink-memory.sh search "dark mode"

# Get a specific memory by ID
bash scripts/opensink-memory.sh get <item-id>

Memory types

TypeUse for
factThings that are true (“Dan uses WebStorm”)
preferenceUser preferences (“prefers dark mode”)
decisionChoices made (“chose Sinks for memory storage”)
eventThings that happened (“deployed v2.0 on Feb 9”)
noteGeneral notes

OpenSink primitives used

PrimitivePurpose
SinksContainer for all memories
Sink ItemsIndividual memory entries

Requirements

  • curl
  • An OpenSink account with API access

Source

GitHub

Source code and contributions

ClawHub

Install via ClawHub