Sage

Persistent, consensus-validated institutional memory for AI agents. Runs locally.

LLM Mart 0 views 4 listing impressions
Transport
Not stated
Package
—
Registry id
io.github.l33tdawg/sage

No install snippet on purpose. A working MCP config is a command, its arguments and an environment block — the last two are where API keys live, so this catalogue never stores them and cannot publish them. Follow the link above for the authors' own instructions.

Persistent, consensus-validated memory infrastructure for AI agents.

SAGE gives AI agents institutional memory that persists across conversations, goes through consensus validation, carries confidence scores, and decays naturally over time. On a multi-validator network that validation is a BFT quorum; on a personal install it is the node's own signed vote. Not a flat file. Not a vector DB bolted onto a chat app. Infrastructure — built on the same consensus primitives as distributed ledgers.

The architecture is described in Paper 1: Agent Memory Infrastructure.

Just want to install it? Download here — double-click, done. Works with any AI.

Quick Start · Architecture · Capabilities · Dashboard · Release history · Documentation

(S)AGE MCP server

Quick Start

Desktop: Download the latest release, open SAGE, then use CEREBRUM to connect your AI. For a full walkthrough, see Getting Started.

From source (Go 1.26.8+):

git clone https://github.com/l33tdawg/sage.git && cd sage
go build -o sage-gui ./cmd/sage-gui/
./sage-gui setup    # Pick your AI, get MCP config
./sage-gui serve    # SAGE + Dashboard on :8080

Or grab a binary: macOS DMG (signed & notarized) | Windows EXE | Linux tar.gz

Docker and containerized MCP setup

Docker

docker pull ghcr.io/l33tdawg/sage:latest
docker run -d --name sage \
  -p 8080:8080 \
  -v ~/.sage:/root/.sage \
  ghcr.io/l33tdawg/sage:latest

Pin a specific version with ghcr.io/l33tdawg/sage:11.22.1.

The SAGE server stays in that container. To give a local MCP client a stdio bridge, start a second process inside the same running container:

docker exec -i \
  -e SAGE_PROVIDER=claude-code \
  -e SAGE_PROJECT=my-project \
  -e SAGE_IDENTITY_PATH=/root/.sage/agents/claude-code-my-project/agent.key \
  sage /usr/local/bin/sage-gui mcp

For the shipped Compose stack, use the service name rather than a generated container name:

docker compose -f docker-compose.sage-gui.yml exec -T \
  -e SAGE_PROVIDER=claude-code \
  -e SAGE_PROJECT=my-project \
  -e SAGE_IDENTITY_PATH=/root/.sage/agents/claude-code-my-project/agent.key \
  sage /usr/local/bin/sage-gui mcp

If an MCP client launches this through a wrapper, point its stdio configuration at the wrapper's absolute path. Pass SAGE_PROVIDER, SAGE_PROJECT, and SAGE_IDENTITY_PATH through docker exec -e/docker compose exec -e; setting them only on the host-side Docker command does not place them in the container. Keep the whole SAGE data root mounted at /root/.sage, including agent keys and the ledger. Do not start a separate docker run ... mcp container: its localhost:8080 is isolated from the running SAGE server.

HTTP MCP is also available at /v1/mcp/sse and /v1/mcp/streamable, but both require a bearer token or OAuth. Bare http://localhost:8080 is the REST base, not an unauthenticated MCP endpoint.

Upgrading an existing node

Upgrading from an older version?

From the project's README.