Stash
Memory server
First committed by alash3al
Published in alash3al/stash. Publisher page
772 GitHub stars
What it is
Stash — persistent memory layer for AI agents. Episodes, facts, and working context stored in Postgres. MCP server included. Self-hosted, single binary, no cloud required.
AutoGineer overview, from the brain’s own files
Stash functions as a cognitive middleware layer that bridges the gap between stateless LLMs and persistent knowledge requirements. By utilizing a Postgres database with pgvector, it captures raw agent interactions and processes them through a multi-stage consolidation pipeline. This pipeline transforms episodic data into structured facts, relationships, and patterns, allowing agents to maintain context across sessions. Stash is designed as a single-binary, self-hosted solution that integrates with any MCP-compatible agent, effectively eliminating the need for agents to restart their learning process with every new conversation.
How it works
Memory model: Hybrid
AutoGineer overview, from the brain’s own files
Stash operates as an MCP server that connects to your AI agent. It uses a Postgres database to store information. The system includes a background consolidation pipeline that processes new data in nine stages, converting raw observations into structured knowledge like facts, causal links, and goal tracking. It supports local embedding and reasoning models, such as those provided by Ollama, or can be configured with external OpenAI-compatible APIs.
| Folder | Role | Files |
|---|---|---|
| .github | agent-config | 1 |
| docs | docs | 4 |
| cmd | folder | 15 |
| internal | folder | 49 |
Requirements
Apps: Docker
Runtimes: Go
Databases: PostgreSQL
API keys (by name): STASH_OPENAI_API_KEY
Works with: Claude apps
Set it up
- Not scanned by AutoGineerThe author’s README also describes installing it with Docker Compose. Read its install section: AutoGineer did not scan that path. https://github.com/alash3al/stash/blob/d34ed430c4348ef741ef95146b488aea8616f4fb/README.md#mcp-client-setup
- Not scanned by AutoGineerThe author’s README also describes installing it with Docker Compose. Read its install section: AutoGineer did not scan that path. https://github.com/alash3al/stash/blob/d34ed430c4348ef741ef95146b488aea8616f4fb/README.md#quick-start
- Not scanned by AutoGineerThe author’s README also describes installing it from a clone of its repository. Read its install section: AutoGineer did not scan that path. https://github.com/alash3al/stash/blob/d34ed430c4348ef741ef95146b488aea8616f4fb/README.md#quick-start
First committed by alash3al. Published in alash3al/stash. Licence: Apache License 2.0.
Usage
AutoGineer overview, from the brain’s own files
- Providing long-term memory to AI agents
- Consolidating agent conversations into structured facts
- Tracking goals and patterns across multiple sessions
- Enabling local, private AI memory storage
- Integrating memory capabilities into MCP-compatible clients like Cursor or Claude Desktop
- “Remember that my preferred programming language is Go.”
- The agent stores this fact in the Stash memory layer, allowing it to recall this preference in future sessions.
- “What are the key project goals we discussed last week?”
- The agent queries the Stash memory layer to retrieve consolidated goal tracking information from previous interactions.
Documentation by alash3al
Stash
Your AI has amnesia. We fixed it.
Every LLM starts every conversation from zero. Stash gives your agent persistent memory — it remembers, recalls, consolidates, and learns across sessions. No more explaining yourself from scratch.
Open source. Self-hosted. Works with any MCP-compatible agent.
Don't want to self-host? usestash.io is the hosted cloud version — sign in with Google, copy one MCP URL, and you're done. Free to start.
Quick Start
git clone https://github.com/alash3al/stash.git
cd stash
cp .env.example .env # edit with your API key + model
docker compose upThat's it. Postgres + pgvector, migrations, MCP server with background consolidation — all in one command.
Next: Getting Started guide — connect your MCP client, run init / remember / recall, and verify everything works.
Fully local (no cloud API): Ollama setup guide — host Ollama + Docker Compose, private embeddings and reasoner.
Atlas Cloud
Atlas Cloud is a full-modal AI inference platform that gives developers a single AI API to access video generation, image generation, and LLM APIs. Instead of managing multiple vendor integrations, you connect once and get unified access to 300+ curated models across all modalities.
Check out Atlas Cloud's coding plan promotion: https://www.atlascloud.ai/console/coding-plan
Stash already supports Atlas Cloud through its OpenAI-compatible API. Set your .env like this:
STASH_OPENAI_API_KEY=your-atlas-cloud-api-key
STASH_OPENAI_BASE_URL=https://api.atlascloud.ai/v1
STASH_EMBEDDING_MODEL=text-embedding-3-small
STASH_REASONER_MODEL=deepseek-ai/DeepSeek-V3-0324
STASH_VECTOR_DIM=1536Atlas Cloud works well here because Stash only needs:
an embeddings model for vectorization
a chat-capable reasoning model for consolidation
an OpenAI-compatible base URL and API key
See Getting Started for a fuller configuration checklist.
MCP Client Setup
After docker compose up, Stash exposes an MCP server over SSE at:
http://localhost:8080/ssePoint any MCP-compatible client at that URL. Example configs:
Cursor — ~/.cursor/mcp.json
{
"mcpServers": {
"stash": {
"url": "http://localhost:8080/sse"
}
}
}Claude Desktop — claude_desktop_config.json
{
"mcpServers": {
"stash": {
"url": "http://localhost:8080/sse"
}
}
}OpenCode — ~/.config/opencode/config.json
{
"mcp": {
"stash": {
"type": "remote",
"url": "http://localhost:8080/sse",
"enabled": true
}
}
}Windsurf — ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"stash": {
"url": "http://localhost:8080/sse"
}
}
}Works with any agent that supports MCP over SSE — Claude Desktop, Cursor, Windsurf, Cline, Continue, OpenAI Agents, Ollama, OpenRouter, Atlas Cloud-backed setups, and more.
What It Does
Stash is a cognitive layer between your AI agent and the world. Episodes become facts. Facts become relationships. Relationships become patterns. Patterns become wisdom.
A 9-stage consolidation pipeline turns raw observations into structured knowledge — facts, relationships, causal links, patterns, contradictions, goal tracking, failure patterns, and hypothesis verification. Each stage only processes new data since the last run.
Stash Cloud (Beta — Free)
A hosted, multi-tenant version of Stash is available at usestash.io and is currently free while in beta.
The cloud version is written from scratch — it shares no code with this repository. It is designed from the ground up for scalability, multi-tenancy, and long-term sustainability as a product. Feature sets differ in both directions: some things available here aren't in the cloud, and vice versa.
Learn More
License
Apache 2.0
README.md
Stash
Your AI has amnesia. We fixed it.
Every LLM starts every conversation from zero. Stash gives your agent persistent memory — it remembers, recalls, consolidates, and learns across sessions. No more explaining yourself from scratch.
Open source. Self-hosted. Works with any MCP-compatible agent.
Don't want to self-host? usestash.io is the hosted cloud version — sign in with Google, copy one MCP URL, and you're done. Free to start.
Quick Start
git clone https://github.com/alash3al/stash.git
cd stash
cp .env.example .env # edit with your API key + model
docker compose upThat's it. Postgres + pgvector, migrations, MCP server with background consolidation — all in one command.
Next: Getting Started guide — connect your MCP client, run init / remember / recall, and verify everything works.
Fully local (no cloud API): Ollama setup guide — host Ollama + Docker Compose, private embeddings and reasoner.
Atlas Cloud
Atlas Cloud is a full-modal AI inference platform that gives developers a single AI API to access video generation, image generation, and LLM APIs. Instead of managing multiple vendor integrations, you connect once and get unified access to 300+ curated models across all modalities.
Check out Atlas Cloud's coding plan promotion: https://www.atlascloud.ai/console/coding-plan
Stash already supports Atlas Cloud through its OpenAI-compatible API. Set your .env like this:
STASH_OPENAI_API_KEY=your-atlas-cloud-api-key
STASH_OPENAI_BASE_URL=https://api.atlascloud.ai/v1
STASH_EMBEDDING_MODEL=text-embedding-3-small
STASH_REASONER_MODEL=deepseek-ai/DeepSeek-V3-0324
STASH_VECTOR_DIM=1536Atlas Cloud works well here because Stash only needs:
an embeddings model for vectorization
a chat-capable reasoning model for consolidation
an OpenAI-compatible base URL and API key
See Getting Started for a fuller configuration checklist.
MCP Client Setup
After docker compose up, Stash exposes an MCP server over SSE at:
http://localhost:8080/ssePoint any MCP-compatible client at that URL. Example configs:
Cursor — ~/.cursor/mcp.json
{
"mcpServers": {
"stash": {
"url": "http://localhost:8080/sse"
}
}
}Claude Desktop — claude_desktop_config.json
{
"mcpServers": {
"stash": {
"url": "http://localhost:8080/sse"
}
}
}OpenCode — ~/.config/opencode/config.json
{
"mcp": {
"stash": {
"type": "remote",
"url": "http://localhost:8080/sse",
"enabled": true
}
}
}Windsurf — ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"stash": {
"url": "http://localhost:8080/sse"
}
}
}Works with any agent that supports MCP over SSE — Claude Desktop, Cursor, Windsurf, Cline, Continue, OpenAI Agents, Ollama, OpenRouter, Atlas Cloud-backed setups, and more.
What It Does
Stash is a cognitive layer between your AI agent and the world. Episodes become facts. Facts become relationships. Relationships become patterns. Patterns become wisdom.
A 9-stage consolidation pipeline turns raw observations into structured knowledge — facts, relationships, causal links, patterns, contradictions, goal tracking, failure patterns, and hypothesis verification. Each stage only processes new data since the last run.
Stash Cloud (Beta — Free)
A hosted, multi-tenant version of Stash is available at usestash.io and is currently free while in beta.
The cloud version is written from scratch — it shares no code with this repository. It is designed from the ground up for scalability, multi-tenancy, and long-term sustainability as a product. Feature sets differ in both directions: some things available here aren't in the cloud, and vice versa.
Learn More
License
Apache 2.0
78 files · 73 not served here
- .env.example (not served here)
- .github/workflows/release.yml (not served here)
- .gitignore (not served here)
- ATTRIBUTION.md
- Dockerfile (not served here)
- LICENSE
- README.md
- cmd/cli/causal.go (not served here)
- cmd/cli/cli_env.go (not served here)
- cmd/cli/commands.go (not served here)
- cmd/cli/consolidate.go (not served here)
- cmd/cli/context.go (not served here)
- cmd/cli/contradiction.go (not served here)
- cmd/cli/failure.go (not served here)
- cmd/cli/goal.go (not served here)
- cmd/cli/hypothesis.go (not served here)
- cmd/cli/main.go (not served here)
- cmd/cli/mcp.go (not served here)
- cmd/cli/mcp_prompts.tmpl (not served here)
- cmd/cli/namespace.go (not served here)
- cmd/cli/serve_all.go (not served here)
- cmd/cli/server.go (not served here)
- docker-compose.yml (not served here)
- docs/GETTING_STARTED.md
- docs/LOCAL_OLLAMA.md
- docs/index.html (not served here)
- docs/og-image.png (not served here)
- go.mod (not served here)
- go.sum (not served here)
- internal/bootstrap/bootstrap.go (not served here)
- internal/brain/brain.go (not served here)
- internal/brain/brain_test.go (not served here)
- internal/brain/causal.go (not served here)
- internal/brain/consolidate.go (not served here)
- internal/brain/consolidate_failure.go (not served here)
- internal/brain/consolidate_goal.go (not served here)
- internal/brain/consolidate_hypothesis.go (not served here)
- internal/brain/context.go (not served here)
- internal/brain/contradiction.go (not served here)
- internal/brain/decay.go (not served here)
- internal/brain/episode.go (not served here)
- internal/brain/fact.go (not served here)
- internal/brain/failure.go (not served here)
- internal/brain/goal.go (not served here)
- internal/brain/hypothesis.go (not served here)
- internal/brain/namespace.go (not served here)
- internal/brain/recall.go (not served here)
- internal/config/config.go (not served here)
- internal/db/db.go (not served here)
- internal/db/migrations/00001_enable_vector.sql (not served here)
- internal/db/migrations/00002_create_namespaces.sql (not served here)
- internal/db/migrations/00004_create_episodes.sql (not served here)
- internal/db/migrations/00005_create_facts.sql (not served here)
- internal/db/migrations/00006_create_fact_sources.sql (not served here)
- internal/db/migrations/00007_create_relationships.sql (not served here)
- internal/db/migrations/00008_create_patterns.sql (not served here)
- internal/db/migrations/00009_create_contexts.sql (not served here)
- internal/db/migrations/00010_create_consolidation_progress.sql (not served here)
- internal/db/migrations/00011_create_settings.sql (not served here)
- internal/db/migrations/00012_create_embedding_cache.sql (not served here)
- internal/db/migrations/00013_add_fact_structured_fields.sql (not served here)
- internal/db/migrations/00014_create_contradictions.sql (not served here)
- internal/db/migrations/00015_add_decay_checkpoint.sql (not served here)
- internal/db/migrations/00016_create_causal_links.sql (not served here)
- internal/db/migrations/00017_create_hypotheses.sql (not served here)
- internal/db/migrations/00018_create_goals.sql (not served here)
- internal/db/migrations/00019_create_failures.sql (not served here)
- internal/db/migrations/00020_add_consolidation_checkpoints.sql (not served here)
- internal/embedder/cache.go (not served here)
- internal/embedder/embedder.go (not served here)
- internal/embedder/openai.go (not served here)
- internal/models/models.go (not served here)
- internal/observability/metrics.go (not served here)
- internal/queries/consolidate.sql.tmpl (not served here)
- internal/queries/queries.go (not served here)
- internal/queries/recall.sql.tmpl (not served here)
- internal/reasoner/openai.go (not served here)
- internal/reasoner/reasoner.go (not served here)
Advantages
- Enables persistent memory across sessions, preventing agents from starting from zero. evidence: README.md
- Supports fully local operation with Ollama for private data handling. evidence: README.md
Limitations
- Requires self-hosting infrastructure including Postgres and Docker. evidence: README.md
Security
Risk level: No risk found
This brain runs
MCP servers (3)
README.md(stash):http://localhost:8080/sse· uses the networkREADME.md(stash):http://localhost:8080/sse· uses the networkREADME.md(stash):http://localhost:8080/sse· uses the network
Attribution and licence
- First committed by
alash3al
- Publisher
- Mohammed Al Ashaal (Community)
- Source
- alash3al/stash · commit d34ed43
- Licence
- Apache License 2.0 (files served here)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
- Contributors
- alash3al, rudi193-cmd, ali-h-abbas, lucaszhu-hue, truffle-dev
AutoGineer is not affiliated with or endorsed by alash3al.
Install from source
73 of its files are not served here, so there is no ZIP. alash3al/stash at d34ed43