Skip to main content

External memory for AI agents - a mini RLM

Project description

🗃️ stash

PyPI License Python

External memory for AI agents - a lightweight RLM (Recursive Language Model) that any Clawdbot can use.

Store persistent key-value data, load large files into searchable contexts, and manage agent memory - all without consuming precious tokens.

Features

  • Key-value storage - stash set/get for persistent data
  • Context loading - Load large files without eating tokens
  • Fast search - Full-text search with FTS5, plus regex
  • Chunking - Split large contexts into manageable pieces
  • Memory helpers - Quick remember/recall for agent notes
  • Zero dependencies - Pure Python, just sqlite3 (built-in)
  • Portable - Single SQLite database, easy to sync/backup

Installation

pip install stash-rlm

Or install from source:

git clone https://github.com/klodshannon/stash.git
cd stash
pip install -e .

Quick Start

# Store things persistently
stash set api:openai "sk-12345..."
stash get api:openai

# Load large files into context (doesn't eat tokens!)
stash load server.log --as logs
stash peek logs 0:50              # View lines 0-50
stash search "ERROR" --in logs    # Search within context

# Quick memory for agent notes
stash remember "Hunter prefers concise answers" --tag prefs
stash recall prefs
stash recall                      # List all memories

# Manage entries
stash list
stash stats
stash forget logs

Commands

Key-Value Storage

stash set <key> <value>     # Store a value
stash set config - < file   # Store from stdin
stash get <key>             # Retrieve a value
stash get <key> --json      # Output as JSON

Context Management

stash load <file> [--as <id>]    # Load file into context
stash peek <id> [range]          # View slice (e.g., "10:20")
stash peek <id> 100 -n           # 20 lines from 100, numbered
stash search <pattern> --in <id> # Search within context
stash search <pattern>           # Search all entries

Memory Helpers

stash remember "note" [--tag <tag>]  # Store a memory
stash recall [tag]                   # Recall memories

Management

stash list [--type <type>]    # List entries
stash stats                   # Storage statistics
stash forget <key>            # Delete entry
stash version                 # Show version
stash export -o backup.json   # Export to JSON
stash import backup.json      # Import from JSON
stash ctx-list                # List contexts
stash ctx-info <id>           # Context details
stash ctx-rm <id>             # Remove context

Use Cases

For Clawdbots / AI Agents

# Store frequently needed data
stash set user:tz "America/Chicago"
stash set user:name "Hunter"

# Load documentation for reference
stash load ~/project/README.md --as docs
stash search "API" --in docs

# Remember things between sessions
stash remember "Project uses FastAPI, not Flask"
stash remember "Deploy target is Railway" --tag deploy

Context Window Management

# Load a huge log file
stash load production.log --as prod

# Search instead of loading entire file
stash search "OutOfMemory" --in prod

# Peek at relevant sections
stash peek prod 1000:1050

Knowledge Base

# Build up knowledge over time
stash remember "User prefers dark mode" --tag ui
stash remember "Always use TypeScript" --tag code
stash remember "Meetings are Tue/Thu 10am" --tag schedule

# Recall by topic
stash recall code
stash recall schedule

Storage

Data is stored in a SQLite database at:

  • Linux/macOS: ~/.local/share/stash/stash.db
  • Or set STASH_HOME environment variable
  • Or use --db <path> flag

The database is fully portable - copy it to sync between machines.

Comparison with Aleph

Feature stash Aleph
Installation pip install MCP server
Dependencies None (pure Python) MCP, various
Storage SQLite In-memory
Persistence ✅ Survives restarts ❌ Session only
Python sandbox
Sub-queries
Use case Simple persistent memory Complex analysis

stash is for simple, persistent storage. Aleph is for complex analysis sessions.

License

MIT - Built by Klod at Shannon Labs.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stash_rlm-0.1.4.tar.gz (14.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stash_rlm-0.1.4-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file stash_rlm-0.1.4.tar.gz.

File metadata

  • Download URL: stash_rlm-0.1.4.tar.gz
  • Upload date:
  • Size: 14.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for stash_rlm-0.1.4.tar.gz
Algorithm Hash digest
SHA256 a1ef79ef2a625a0820a195815f925c6530067902f732f160c6d7504accfc2ecf
MD5 d29a82aee9dd534d195fb9be2ed14d8e
BLAKE2b-256 54ba2c73fbecf8e68bb006dc28f9e71735c66858b5c37546e1db27e2ed3d48f3

See more details on using hashes here.

File details

Details for the file stash_rlm-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: stash_rlm-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 14.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for stash_rlm-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 9a21104fda5fe8e608f9c8f26cd857366e96770fe0984e18a1533178b723305b
MD5 e7e72d6844cca12d5392e0dc6d501157
BLAKE2b-256 5560838d130a4dbe5eec52b13ce3ee2b59d9fd12cd32fb8e28e50aa61b77be77

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page