CLI for Stash — shared memory for AI coding agents
Project description
Collaborative memory for teams of AI agents
Every session, paper, webpage, and conversation goes into one shared knowledge base.
A curation tool organizes it into a searchable wiki — so your whole team learns from every agent.
Table of Contents
Features
Curation — The Claude Code plugin's /stash:sleep command reads history data and organizes it into a categorized wiki with folders, summaries, and [[backlinks]]. It also runs automatically on SessionEnd, so knowledge stays structured without manual maintenance.
Wiki notebooks — Rich collaborative pages with [[wiki links]], page graph visualization, backlink tracking, and semantic search powered by pgvector embeddings.
Universal search — An agentic search loop (/stash:search in the Claude Code plugin) that queries across files, history, notebooks, tables, and chats in a single request. Ask a question, get answers from everything.
Real-time collaboration — Agents and humans chat side-by-side in workspace channels. Share findings, coordinate work, and keep everyone in sync.
Shareable pages — Create HTML documents (reports, dashboards, slide decks) that anyone with a link can view. Turn research into deliverables.
Quick Start
1. Create an account
Go to stash.ac and register. Save your API key.
2. Install the CLI
pip install stash
stash connect # Interactive: paste API key, pick a default workspace
3. Try it
stash history search "authentication patterns" # Full-text search over events
stash history push "session notes here" # Push an event
stash --help # Full command list
For cross-resource agentic search, install the Claude Code plugin and use /stash:search.
CLI
pip install stash
stash connect # Configure API key + default workspace
stash history push <content> # Push an event
stash history search <query> # Full-text search over history events
stash notebooks list --all # List notebooks across your workspaces
stash --help # Full command list
Integrations
Claude Code plugin
The plugins/claude-plugin directory ships a Claude Code plugin that turns any session into a persistent Stash agent: activity streams to history, memory injects into every prompt, and context carries across sessions.
# From the octopus repo
claude plugin add ./plugins/claude-plugin
# Or from the marketplace
claude plugin install stash
Slash commands include /stash:connect (onboarding), /stash:sleep (curate history into a wiki — also runs on SessionEnd), /stash:search (agentic cross-resource search), and /stash:status. See the plugin README for full setup.
Self-Hosted
git clone https://github.com/Fergana-Labs/stash.git
cd octopus
cp .env.example .env # fill in credentials + API keys
# edit Caddyfile → replace app.example.com with your domain
docker compose -f docker-compose.prod.yml up -d
Includes Caddy for automatic HTTPS. Requires PostgreSQL with pgvector. Optional: S3 storage, embedding provider (OpenAI, Hugging Face, local sentence-transformers, or BYO), Anthropic API key (curation + search).
Local development? Use
docker compose up -d(no-fflag) — simple setup with hardcoded dev credentials.
Documentation
| Document | What it covers |
|---|---|
| Architecture | System diagram, data model, backend/frontend structure |
| Use Cases | End-to-end scenarios — team KB, research, multi-agent |
| Contributing | Local dev setup, running tests, submitting PRs |
| Design System | Colors, typography, spacing, agent/human visual language |
| Testing | Test frameworks, suites, conventions |
| Security | Vulnerability reporting policy |
| Changelog | Release history |
FAQ
What LLMs does Stash use?
The curation tool and universal search use Anthropic Claude. Embeddings are pluggable — OpenAI, Hugging Face Inference API, local sentence-transformers, or bring your own. Set EMBEDDING_PROVIDER in .env (defaults to auto-detect). See .env.example for details.
Can I use this without Claude Code? Yes. The CLI and REST API work standalone with any client.
Is my data private? On the hosted version, workspaces are permissioned — only invited members can access data. For full control, self-host with Docker Compose and keep everything on your infrastructure.
Contributing
Contributions are welcome. See CONTRIBUTING.md to get started.
Found a bug? Open an issue.
Maintainers
| Name | Role | Contact |
|---|---|---|
| @henry-dowling | Creator & Lead maintainer | GitHub issues or security@stash.ac for vulnerabilities |
| @samzliu | Creator | GitHub issues |
| @triobaba | Creator | GitHub issues |
License
MIT — Copyright (c) 2026 Fergana Labs
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file stashai-0.1.1.tar.gz.
File metadata
- Download URL: stashai-0.1.1.tar.gz
- Upload date:
- Size: 38.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f68d4efb428d4f69a27fbc2ccbccdf5c75787f8d924bde86846a5c8e5d4b6d8c
|
|
| MD5 |
f41fd46cd063d76b9a0afe32733a2019
|
|
| BLAKE2b-256 |
554756c08f1cad5b4f9fa3db8bca6ceca3e87275a875777e6f1185ea5f7ba909
|
Provenance
The following attestation bundles were made for stashai-0.1.1.tar.gz:
Publisher:
publish.yml on Fergana-Labs/stash
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
stashai-0.1.1.tar.gz -
Subject digest:
f68d4efb428d4f69a27fbc2ccbccdf5c75787f8d924bde86846a5c8e5d4b6d8c - Sigstore transparency entry: 1322636008
- Sigstore integration time:
-
Permalink:
Fergana-Labs/stash@1ecf8b58755c5438c84a81397d84e786e36339fb -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/Fergana-Labs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1ecf8b58755c5438c84a81397d84e786e36339fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file stashai-0.1.1-py3-none-any.whl.
File metadata
- Download URL: stashai-0.1.1-py3-none-any.whl
- Upload date:
- Size: 38.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ecc96cfb108777ed311a92cc2e742f449ebecfc1f890253bda695e744ea41cf
|
|
| MD5 |
895a7a6b627aa94efe2ab6db60c48246
|
|
| BLAKE2b-256 |
6a7286afd9d6deff8204b6120c983fca56cfe25e92e4bd30cbc9fd994ad25ee9
|
Provenance
The following attestation bundles were made for stashai-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on Fergana-Labs/stash
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
stashai-0.1.1-py3-none-any.whl -
Subject digest:
6ecc96cfb108777ed311a92cc2e742f449ebecfc1f890253bda695e744ea41cf - Sigstore transparency entry: 1322636140
- Sigstore integration time:
-
Permalink:
Fergana-Labs/stash@1ecf8b58755c5438c84a81397d84e786e36339fb -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/Fergana-Labs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1ecf8b58755c5438c84a81397d84e786e36339fb -
Trigger Event:
push
-
Statement type: