Shared AI context cache for software teams — eliminate the cold start
Project description
TeamCache
Shared AI context cache for software teams. Eliminates the cold start — every developer after the first pays near-zero tokens for files that haven't changed.
The problem
10 developers. Same files. Read by AI every day. Nobody shares what was learned. Monthly token budget exhausted in 10–15 days instead of 20–22.
How it works
- Static index —
teamcache indexparses every file in seconds with tree-sitter. No AI, no API key. Every file gets a structural summary immediately. - AI upgrade — When your AI tool reads a file, it calls
cache_summary()to store a richer understanding. That summary is shared with your whole team via git. - No cold start — The next developer gets the AI summary instantly. They never read the raw file. Tokens saved.
Quickstart (under 10 steps)
# 1. Install
pip install teamcache
# 2. Go to your repo
cd your-repo
# 3. Initialize
teamcache init
# 4. Index the whole repo (seconds, no AI, no API key)
teamcache index
# 5. Register with your AI tool
teamcache install # Claude Code (default)
teamcache install --agent cursor # Cursor
teamcache install --agent codex # OpenAI Codex CLI
teamcache install --agent windsurf # Windsurf
teamcache install --agent aider # Aider
teamcache install --agent opencode # OpenCode
# 6. Commit the static index to share with your team
git add .teamcache/objects/
git commit -m "chore: add teamcache static index"
git push
That's it. Your AI tool now calls get_file_context() before reading any file and cache_summary() after. Every teammate gets the benefit.
Commands
| Command | What it does |
|---|---|
teamcache init |
Initialize in the current git repo |
teamcache index |
Parse all files, build static summaries |
teamcache install [--agent NAME] |
Register MCP server with your AI tool |
teamcache serve |
Start the MCP stdio server (called by AI tool) |
teamcache changed [--since BRANCH] |
Re-index files changed since a branch |
teamcache sync |
Rebuild local index from committed objects |
teamcache invalidate [PATH|--stale|--all] |
Mark entries as needing refresh |
teamcache stats |
Show AI vs static coverage, top contributors |
teamcache report |
Write .teamcache/reports/YYYY-MM.md |
teamcache commit |
git add .teamcache/objects/ && git commit |
teamcache uninstall [--agent NAME] |
Remove MCP registration and instructions |
MCP tools
Your AI tool gets these tools via the MCP server:
| Tool | What it does |
|---|---|
repo_overview() |
Directory tree, languages, entry points, coverage |
get_file_context(path) |
Returns AI or static summary; tells AI what to do |
cache_summary(path, summary, lang) |
AI writes its understanding back into the cache |
find_relevant_files(task) |
Semantic + keyword search across all summaries |
get_symbols(path) |
Functions, classes, imports for a file |
find_by_symbol(name) |
Where is UserService defined? Line number included. |
get_changed_context(branch) |
What changed since main, which need AI re-read |
Architecture
.teamcache/
objects/ ← git committed — shared with team
summaries/ ← AI and static summary objects (immutable JSON)
symbols/ ← tree-sitter symbol index objects
repomap.json ← cross-file import map
config.yaml ← schema_version: v1 (nothing else)
local/ ← gitignored — rebuilt locally
index.sqlite ← fast lookup index
embeddings.sqlite ← semantic search vectors
Cache key: sha256(sha256(file_bytes) + "|" + schema_version)
File changes → new key → old object ignored automatically.
Two-tier summaries:
static— tree-sitter parse, runs in milliseconds, no AI, available from day oneai— written by the AI tool after it reads a file, much richer, preferred when available
No external calls from teamcache itself. The AI tool already running writes summaries via cache_summary(). teamcache never calls any AI API. No API key. No separate cost.
CI integration
GitHub Actions
.github/workflows/teamcache-sync.yml is included — keeps static index fresh on every merge to main.
GitLab CI
See .gitlab/teamcache-sync.yml. Include it in your pipeline:
include:
- local: .gitlab/teamcache-sync.yml
Requirements
- Python 3.10+
- Git
- No API key required at any point
Optional (installed automatically with pip install teamcache[all]):
tree-sitter— more accurate symbol extraction (falls back to regex without it)sentence-transformers— semantic search (falls back to keyword search without it)
License
MIT
Project details
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 teamcache-0.1.0.tar.gz.
File metadata
- Download URL: teamcache-0.1.0.tar.gz
- Upload date:
- Size: 51.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f34bec75a3ec3c5dfaa7baaaac2b72155201b25bd7a020e02f000f9ac0e285c
|
|
| MD5 |
f17f881d691c5369f0c21b091b2e3c9e
|
|
| BLAKE2b-256 |
20b7a1a5fd63f15680e37d8128bd708cc56b50a963bda60cd9de88fd9d20ad94
|
File details
Details for the file teamcache-0.1.0-py3-none-any.whl.
File metadata
- Download URL: teamcache-0.1.0-py3-none-any.whl
- Upload date:
- Size: 30.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f468928a4c198e62c4af9c570e44ccb5fc86cb35c04a445dafc1886eae0d78fd
|
|
| MD5 |
7f96eed77d6c28c6e3fe73baf063b38c
|
|
| BLAKE2b-256 |
686862216cabc6458b0200107afb330c5229120220d6efab2e20c798218fa05c
|