Skip to content

YAMS — Yet Another Memory System

Note: YAMS v0.3.x is experimental software under active development.

$ yams --version
YAMS: persistent memory for LLMs and applications
SHA-256 CAS • Rabin dedupe • zstd/LZMA • FTS5 + vectors • WAL

Persistent memory for LLMs and applications. Content‑addressed storage with deduplication, compression, semantic search, and full‑text indexing.

What it does

  • Content‑addressed storage (SHA‑256)
  • Block‑level deduplication (Rabin fingerprinting)
  • Compression: zstd and LZMA
  • Search: full‑text (SQLite FTS5) + semantic (vector)
  • Crash safety: WAL
  • Fast and portable CLI + MCP server

Versioning

YAMS provides comprehensive versioning through content-addressed storage. Every stored document gets a unique SHA-256 hash that serves as an immutable version identifier. You can track changes using metadata updates (yams update), organize versions with collections (--collection release-v1.0), and capture point-in-time states with snapshots (--snapshot-id 2024Q4).

Install

Docker (simplest)

docker run --rm -it ghcr.io/trvon/yams:latest --version

Native Binary

# macOS ARM64
curl -L https://github.com/trvon/yams/releases/latest/download/yams-macos-arm64.zip -o yams.zip
unzip yams.zip && sudo mv yams /usr/local/bin/

# macOS x86_64  
curl -L https://github.com/trvon/yams/releases/latest/download/yams-macos-x86_64.zip -o yams.zip
unzip yams.zip && sudo mv yams /usr/local/bin/

# Linux x86_64
curl -L https://github.com/trvon/yams/releases/latest/download/yams-linux-x86_64.tar.gz | tar xz
sudo mv yams /usr/local/bin/

Build from Source

# Install Conan
pip install conan

# One-time: create default Conan profile
conan profile detect --force

# Build with Conan (recommended - this is what creates the release binaries)
conan install . --output-folder=build/conan-release -s build_type=Release --build=missing
cmake --preset conan-release
cmake --build --preset conan-release
sudo cmake --install build/conan-release/build/Release

Quick start

# init storage (non-interactive)
yams init --non-interactive

# store from stdin
echo "hello world" | yams add - --tags example

# search
yams search "hello" --json

# retrieve
yams list --format minimal --limit 1 | xargs yams get

Docs

  • Get Started: Installation, CLI, and prompts
  • Usage: Search guide, vector search, tutorials
  • API: REST/OpenAPI, MCP tools
  • Architecture: search and vector systems
  • Developer/Operations/Admin: build, deploy, configure, tune

Use the left navigation to browse all docs.

  • GitHub: https://github.com/trvon/yams
  • License: Apache-2.0