A context intelligence layer for LLM workflows
Project description
Waystone
Persistent cross-session memory for LLM agents. A knowledge graph that stores decisions, constraints, and context across coding sessions — so your agent starts informed, not blank.
Install
pip install waystone
Requires Python 3.11+. An LLM API key is needed for extraction (Gemini Flash recommended — fast and cheap).
Quick start
Option 1: MCP server (recommended)
Add to your editor's MCP config:
{
"mcpServers": {
"waystone": {
"command": "waystone",
"args": ["mcp-serve"],
"env": { "WAYSTONE_PROJECT": "my-project" }
}
}
}
Restart your editor. waystone_query, waystone_extract, and waystone_stats appear as tools. Your agent pulls context when it needs it.
Option 2: Claude Code hooks (zero manual calls)
Add to ~/.claude/settings.json:
{
"hooks": {
"UserPromptSubmit": [{ "hooks": [{ "type": "command", "command": "waystone hook query my-project" }] }],
"Stop": [{ "hooks": [{ "type": "command", "command": "waystone hook extract my-project" }] }]
}
}
Context is injected automatically before every prompt. Facts are extracted automatically when Claude finishes.
Supported clients
Claude Code · Cursor · Windsurf · Continue.dev · Cline · Zed · OpenClaw · Hermes
Full per-client setup: unbidden.ai/docs/mcp-server/
Hermes Agent (native memory provider)
Beyond MCP, Waystone ships a first-class Hermes Agent memory provider (hermes_plugin/). It plugs the knowledge graph into Hermes as a Tier-3 memory backend:
prefetch()injects relevant graph context before each LLM call (in-process — the embedding model loads once and stays warm, so per-turn retrieval stays sub-second).waystone_query/waystone_recalltools let the agent search the graph on demand.on_session_endextraction grows the graph in the background. Fully local — no data leaves the machine.
Install:
cp -r hermes_plugin/ /path/to/hermes-agent/plugins/memory/waystone/
pip install waystone
hermes memory setup # pick "waystone", set the project
Key CLI commands
waystone init <project> # create a project
waystone extract <project> <file> # extract facts from a transcript
waystone query <project> "<query>" # retrieve relevant context
waystone onboard <project> # import existing session history
waystone show <project> # view project stats
How it works
At session end — waystone extract reads the conversation transcript and pulls structured facts: decisions, constraints, implementations, lessons learned, open questions. These are stored as nodes in a local SQLite knowledge graph (~/.waystone/). Superseded facts are retired automatically — if a decision changes, the graph reflects the current state.
At session start — waystone_query (or a hook) runs BFS traversal from the most relevant entry points and surfaces the top 10–25 facts. Only what's relevant to the current context, not everything ever stored.
Benchmarks
Tested on 23 questions across 3 domains (API design, auth systems, data pipelines):
| Recall | |
|---|---|
| Baseline | 82% |
| With retrieval improvements | 89% |
Token usage vs. naive MEMORY.md on a mature project: typically 60–80% fewer context tokens per session (exact savings depend on project age and query specificity).
Full results: BENCHMARK_RESULTS.md
Hosted API
The default store is local SQLite — no cloud dependency, no infra to manage. For cross-machine sync and team access, a hosted API is available:
- Pro ($20/mo) — unlimited projects, hosted API, 1 user
- Team ($80/mo) — unlimited projects, hosted API, up to 10 users
Docs
- Quickstart
- MCP Server setup
- CLI Reference
- REST API
- Hermes Agent integration
- Advanced Configuration — API embeddings (no PyTorch), strategy tuning, attachment extraction
License
MIT — see LICENSE
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 waystone-0.4.26.tar.gz.
File metadata
- Download URL: waystone-0.4.26.tar.gz
- Upload date:
- Size: 309.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc10c37b4a8a9dfd497bf8357f8fc00ec2105fd69020d5e35b52a805fe0087f4
|
|
| MD5 |
f2c5ad7629f4d31bc26347fd06afdc41
|
|
| BLAKE2b-256 |
e19d793086d52f6503e662b621ba6afcb77f0f91c3ae012500a3f29b0ec6ec35
|
Provenance
The following attestation bundles were made for waystone-0.4.26.tar.gz:
Publisher:
publish.yml on Unbidden-AI/waystone
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
waystone-0.4.26.tar.gz -
Subject digest:
fc10c37b4a8a9dfd497bf8357f8fc00ec2105fd69020d5e35b52a805fe0087f4 - Sigstore transparency entry: 1777429795
- Sigstore integration time:
-
Permalink:
Unbidden-AI/waystone@f5ff9b82b9924672f0b277d0b711e36af1cb4c83 -
Branch / Tag:
refs/tags/v0.4.26 - Owner: https://github.com/Unbidden-AI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f5ff9b82b9924672f0b277d0b711e36af1cb4c83 -
Trigger Event:
push
-
Statement type:
File details
Details for the file waystone-0.4.26-py3-none-any.whl.
File metadata
- Download URL: waystone-0.4.26-py3-none-any.whl
- Upload date:
- Size: 271.3 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 |
bdf9c2aa1dac0546773a9f2bfb0768f3dec6fe30bf1552d6b503de59f25f009b
|
|
| MD5 |
4b5f81709d1bb9c59ca6bbca86ee87ee
|
|
| BLAKE2b-256 |
a4848e4e853b712ef7524e8ad0ad3e36d4af8e443991ac4ef3c1b46a155f6cf7
|
Provenance
The following attestation bundles were made for waystone-0.4.26-py3-none-any.whl:
Publisher:
publish.yml on Unbidden-AI/waystone
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
waystone-0.4.26-py3-none-any.whl -
Subject digest:
bdf9c2aa1dac0546773a9f2bfb0768f3dec6fe30bf1552d6b503de59f25f009b - Sigstore transparency entry: 1777430445
- Sigstore integration time:
-
Permalink:
Unbidden-AI/waystone@f5ff9b82b9924672f0b277d0b711e36af1cb4c83 -
Branch / Tag:
refs/tags/v0.4.26 - Owner: https://github.com/Unbidden-AI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f5ff9b82b9924672f0b277d0b711e36af1cb4c83 -
Trigger Event:
push
-
Statement type: