DevTrendsDeveloper trends
Accent color

Product

Tennis, a local/offline context store

Hi everyone! I'm Joe, and I built Tennis: a CLI that indexes and searches your context offline. You can index any files, your Chat & Claude sessions, Codex history, etc. All local and offline. I've always hated…

DTAgent extensionDTAgent observabilityDTCLIDTMCP serviceDTTerminalDTCodexDTOpenCode

About

Hi everyone! I'm Joe, and I built Tennis: a CLI that indexes and searches your context offline. You can index any files, your Chat & Claude sessions, Codex history, etc. All local and offline. I've always hated having chats siloed in Claude and not having an easy way to connect that context in other apps. Anything that exists today has a subscription and is stored on their servers, and really wanted something fast, local, and offline. How Tennis works: * SQLite/FTS5 (keyword) + vec0 (vector) * model2vec / potion-retrieval-32M (512-dim, 123MB). This is a flat vector table, and what helps make this work well local/offline. * RRF (k=60) fuses BM25 keyword rank + cosine semantic rank into one score Tennis also creates markdown files called 'cards' at indexing time. This gives you an easy, summarized, human readable format to see what Tennis has. You can edit these files (but won't change the embeddings in SQLite). You can use Tennis via API and MCP. It's incredibly fast, and the MCP works great as a connector to different applications (ChatGPT, Claude, Opencode, etc). You can install and use it today: https://tennis.jlachance1.workers.dev/ Thanks for checking this out! I would love any feedback. Thank you

Discovery history

  1. Show HN

    Oct 16, 2026 · 1 observations

Discuss this product