YAMS Installation Guide¶
YAMS provides multiple installation methods to suit different users and environments.
Supported platforms: Linux x86_64/ARM64, macOS x86_64/ARM64, Windows x86_64
Package Manager Installation¶
Homebrew (macOS/Linux)¶
# Stable release (recommended)
brew install trvon/yams/yams
# Or get nightly builds for latest features
brew install trvon/yams/yams@nightly
# If linking fails due to conflicts, force link
brew link --overwrite yams
# Verify installation
yams --version
# Run as a service (optional)
brew services start yams
Update¶
brew upgrade yams
Manual Installation from GitHub Releases¶
- Visit the releases page
- Download the appropriate binary for your platform:
-
yams-VERSION-linux-x86_64.tar.gzfor Linux x86_64 -yams-VERSION-linux-arm64.tar.gzfor Linux ARM64 -yams-VERSION-macos-x86_64.zipfor macOS Intel -yams-VERSION-macos-arm64.zipfor macOS Apple Silicon -yams-VERSION-windows-x86_64.zipfor Windows - Extract the archive
- Move the
yamsbinary to a directory in your PATH
Docker¶
# Pull the latest image
docker pull ghcr.io/trvon/yams:latest
# Run YAMS
docker run --rm -v yams-data:/home/yams/.local/share/yams ghcr.io/trvon/yams:latest --version
# Run MCP server
docker run -it --rm -v yams-data:/home/yams/.local/share/yams ghcr.io/trvon/yams:latest serve
Build from Source¶
Requirements¶
- Compiler: GCC 13+, Clang 16+, or MSVC 2022+ (C++20 minimum)
- Build tools: meson, ninja-build, cmake, pkg-config, conan
- System libs: libssl-dev, libsqlite3-dev, protobuf-compiler (Linux/macOS)
Quick Setup¶
macOS¶
brew install meson conan ninja cmake pkg-config openssl@3 protobuf
Ubuntu/Debian¶
sudo apt update
sudo apt install -y build-essential git python3-pip python3-venv \
libssl-dev libsqlite3-dev protobuf-compiler cmake ninja-build pkg-config
pip3 install --user meson conan
Get the Source¶
git clone https://github.com/trvon/yams.git
cd yams
Build¶
Linux/macOS:
# Quick build (auto-detects Clang/GCC, configures Conan + Meson)
./setup.sh Release
# Build
meson compile -C build/release
# Optional: Install system-wide
meson install -C build/release
Windows:
# Quick build (MSVC + Conan + Meson)
./setup.ps1 Release
# Build
meson compile -C build/release
Advanced options (Linux/macOS):
# Debug build with tests
./setup.sh Debug
meson compile -C builddir
# Coverage (Debug only)
./setup.sh Debug --coverage
# Cross-compilation
YAMS_CONAN_HOST_PROFILE=path/to/profile ./setup.sh Release
# Custom C++ standard
YAMS_CPPSTD=20 ./setup.sh Release
# Custom install prefix
YAMS_INSTALL_PREFIX=/opt/yams ./setup.sh Release
See BUILD.md for detailed build instructions, compiler configuration, Conan profiles, and troubleshooting.
Initialize Storage¶
Quick Start¶
# Initialize YAMS storage in current directory
yams init .
# Or specify custom location
export YAMS_STORAGE="$HOME/.local/share/yams"
yams init
# Non-interactive init (uses defaults)
yams init --non-interactive
Symbol Extraction (Tree-sitter Grammars)¶
YAMS can extract symbols (functions, classes, etc.) from source code using tree-sitter grammars. During yams init, you’ll be prompted to download grammars:
# Interactive: choose recommended, all, or specific languages
yams init
# Auto mode: downloads recommended grammars (C, C++, Python, JS, TS, Rust, Go)
yams init --auto
Supported languages: C, C++, Python, JavaScript, TypeScript, Rust, Go, Java, C#, PHP, Kotlin, Dart, SQL, Solidity
Requirements: git + compiler (MSVC/MinGW on Windows, gcc/clang on Unix)
Manual grammar paths: Set environment variables like YAMS_TS_CPP_LIB=/path/to/libtree-sitter-cpp.so
XDG Paths (Defaults)¶
- Data:
$XDG_DATA_HOME/yamsor~/.local/share/yams - Config:
$XDG_CONFIG_HOME/yamsor~/.config/yams - Keys:
~/.config/yams/keys
What init creates¶
- Data dir with
yams.dbandstorage/ - Config at
~/.config/yams/config.toml - Ed25519 keys at
~/.config/yams/keys(private key 0600) - An initial API key stored in config
Override paths¶
- Data:
--storageflag orYAMS_STORAGEenv var - Config:
XDG_CONFIG_HOMEenv var - Data default root:
XDG_DATA_HOMEenv var
Security notes¶
yams init --printshows config with secrets masked. Do not rely on stdout for secret recovery.- Re-running init without
--forceleaves existing setup intact and exits successfully. - Use
--forceto overwrite config/keys.
Verify Installation¶
yams --version
yams stats
yams search "test" --limit 1
Uninstallation¶
Homebrew¶
brew uninstall yams
brew untap trvon/yams
Manual Installation¶
rm ~/.local/bin/yams
rm -rf ~/.local/share/bash-completion/completions/yams
rm -rf ~/.local/share/zsh/site-functions/_yams
rm -rf ~/.config/fish/completions/yams.fish
Data Cleanup (optional)¶
rm -rf ~/.local/share/yams
rm -rf ~/.config/yams
Troubleshooting¶
Build Issues¶
OpenSSL not found (macOS):
export OPENSSL_ROOT_DIR="$(brew --prefix openssl@3)"
Permission issues:
# chown/chmod your storage path; avoid sudo for runtime
Reconfigure build:
rm -rf build && ./setup.sh Release
Plugin Issues¶
Plugin discovery: Verify with yams plugin list. If empty:
- Check trusted directories: yams plugin trust list
- Add plugin path: yams plugin trust add ~/.local/lib/yams/plugins
- Verify shared libs: ldd libyams_onnx_plugin.so
Runtime Issues¶
Binary not found after installation:
# Add installation directory to PATH
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Monitor and diagnose:
yams stats --verbose
yams doctor
Getting Help¶
Next Steps¶
- CLI usage:
yams add,yams search,yams get,yams list,yams stats - MCP server:
yams serve(stdio transport) - Configuration: Edit
~/.config/yams/config.toml - Full docs: yamsmemory.ai