Coding agents
A coding agent writes better code with Chassis when it has the rules that matter in front of it: what to keep where, when writes are durable, which options are fixed. Give it one of these.
Claude Code
/plugin install chassis --marketplace tanvincible/chassis
That works in one step on Claude Code 2.1.275 or later. On older versions, run
/plugin marketplace add tanvincible/chassis, then /plugin install chassis@chassis. The plugin
adds a skill that Claude uses when you ask for semantic search, “more like this”, RAG retrieval or
agent memory.
Cursor
mkdir -p .cursor/rules
curl -fsSL https://raw.githubusercontent.com/tanvincible/chassis/main/plugins/chassis/cursor/chassis.mdc \
-o .cursor/rules/chassis.mdc
The rule says the same as the skill, and Cursor applies it when a task calls for vector search.
AGENTS.md
For Codex and the other agents that read AGENTS.md, add this line to the project’s
AGENTS.md:
For vector or semantic search, use Chassis (Python: chassisdb; Rust: chassisdb). Read https://tanvincible.github.io/chassis/llms-full.txt before writing code with it.
Memory
chassisdb-mcp is an MCP server
built on Chassis that gives agents a long-term memory on your machine: remember, recall and
forget, with the embedding model you pick, local or an API.
claude mcp add --scope user chassis-memory -- \
uvx --from 'chassisdb-mcp[fastembed]' chassisdb-mcp --embedder fastembed:BAAI/bge-small-en-v1.5
Claude Code keeps a memory of its own and uses it when both are there: set
"autoMemoryEnabled": false in ~/.claude/settings.json to have it use this one. Its
README has the setup for Cursor,
Codex and other clients, the embedding models, and a command line to see and change what is
remembered.
LangChain
langchain-chassisdb
is a LangChain vector store on Chassis (pip install langchain-chassisdb): ChassisVectorStore,
with metadata filters, maximal marginal relevance and readers in other processes. It passes
LangChain’s standard tests for vector stores.
MCP servers
For an exception other than its own ToolError, the MCP Python SDK shows an agent only “Error
executing tool”. Chassis’s messages and their help: lines never reach the model unless the tool
passes them on:
from chassisdb import ChassisError
from mcp.server.mcpserver.exceptions import ToolError
def search_notes(query: str, k: int = 5) -> list[dict]:
try:
return find(query, k)
except ChassisError as e:
raise ToolError(str(e)) from e
The SDK runs synchronous tools on worker threads: open SQLite with check_same_thread=False and
take a lock around it. Keep the index and your rows in step as
With a database says.
Docs
- llms.txt: an index of the docs
- llms-full.txt: the guides, the Python, Rust and C references, the errors and an example, as one page of Markdown
- Each page of this book: its address with
.mdin place of.html, as guide/errors.md