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

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.2.tar.gz (13.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.2-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: stash_rlm-0.1.2.tar.gz
  • Upload date:
  • Size: 13.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.2.tar.gz
Algorithm Hash digest
SHA256 77d37517cdb8aeaf4f248974af3d6f55e214dd2fb7694466a340d4a9d55c9fdf
MD5 adc73bc07c018f43d3add3e390223083
BLAKE2b-256 9bdcc75ddb952857b9a72ca1b6c5879e5ab448b481f27b4b964cd54437c3bbb4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: stash_rlm-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 13.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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 dd81a4fa99e2101e75ef3d7a9fde810b1fe553028e88f1de34f26ce6cdd8e5d7
MD5 62724385b2a83359dc4432a7324724da
BLAKE2b-256 e271ad6da22501b2e41ebc72f04965e436e169a737e727703a4af47bb599b5b7

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