Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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 .md in place of .html, as guide/errors.md