# YAMS — Yet Another Memory System [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/trvon/yams) [![Latest tag](https://img.shields.io/github/v/tag/trvon/yams?sort=semver&label=latest%20tag)](https://github.com/trvon/yams/tags) [![builds.sr.ht status](https://builds.sr.ht/~trvon.svg)](https://builds.sr.ht/~trvon?) **Note**: Pre‑1.0 releases (v0.x) are not considered stable. Expect breaking changes until v1.0. Persistent memory for LLMs and applications. Content‑addressed storage with deduplication, compression, semantic search, and full‑text indexing. ## Features - 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 - Extensible plugin system ## Install ### Docker (simplest) ```bash docker run --rm -it ghcr.io/trvon/yams:latest --version ``` ### Linux Packages **DEB (Debian/Ubuntu):** ```bash # Download and install the .deb package curl -L https://github.com/trvon/yams/releases/latest/download/yams-latest-amd64.deb -o yams.deb sudo dpkg -i yams.deb # Fix any dependency issues sudo apt-get install -f ``` **RPM (Fedora/RedHat/CentOS):** ```bash # Download and install the .rpm package curl -L https://github.com/trvon/yams/releases/latest/download/yams-latest-x86_64.rpm -o yams.rpm sudo rpm -i yams.rpm # Or with yum/dnf sudo dnf install ./yams.rpm ``` **AppImage (Universal Linux):** ```bash # Download AppImage (works on most Linux distributions) curl -L https://github.com/trvon/yams/releases/latest/download/yams-latest-x86_64.AppImage -o yams chmod +x yams ./yams --version # Optionally move to PATH sudo mv yams /usr/local/bin/ ``` ### Native Binary ```bash # 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 ```bash # 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/yams-release -s build_type=Release --build=missing cmake --preset yams-release cmake --build --preset yams-release sudo cmake --install build/yams-release ``` ## Quick start ```bash # 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 ``` ## 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`). ## 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. ## Links - SourceHut: https://sr.ht/~trvon/yams/ - GitHub (mirror): https://github.com/trvon/yams - License: Apache-2.0