Smart context manager for AI coding assistants — saves millions of tokens by building a local memory of your project
Project description
smartctx 🧠
Save millions of tokens per day by giving AI coding assistants smart, curated context instead of your whole codebase.
The Problem
Every time you start a Claude Code / Cursor / Copilot session, it reads your entire project — hundreds of files, thousands of lines. That's hundreds of thousands of tokens, every single session.
The Solution
smartctx builds a local memory of your project once, then gives AI tools only the files relevant to your current task.
Without smartctx: Claude reads 500 files = ~800,000 tokens per session 😬
With smartctx: Claude reads 8 files = ~12,000 tokens per session ✅
Savings: ~98% token reduction
Install
# npm
npm install -g smartctx
# pip
pip install smartctx
# Homebrew (macOS/Linux)
brew tap Abdullahbutt-143/smartctx
brew install smartctx
# Scoop (Windows)
scoop bucket add smartctx https://github.com/Abdullahbutt-143/scoop-smartctx
scoop install smartctx
Quick Start
# 1. Set your API key (one time, saved globally)
smartctx config --api-key sk-ant-xxxxx
# 2. Initialize your project (one-time scan)
cd your-project
smartctx init
# 3. Before each AI session, query for your task
smartctx query "add authentication middleware"
# → generates CLAUDE.md with only the relevant files
# 4. Start Claude Code — it reads the lean CLAUDE.md
claude
Commands
| Command | Description |
|---|---|
smartctx init |
First-time setup — scans and summarizes all files |
smartctx sync |
Refresh changed files only (run daily/weekly) |
smartctx query "task" |
Generate lean context file for your task |
smartctx status |
Show index stats |
smartctx config |
View/set configuration |
Multi-AI Support
smartctx query "add auth" --for claude # → CLAUDE.md
smartctx query "add auth" --for cursor # → .cursorrules
smartctx query "add auth" --for copilot # → .github/copilot-instructions.md
smartctx query "add auth" --for codex # → AGENTS.md
How It Works
-
init— Scans your project, calls Claude Haiku (cheapest model) once per file to generate a summary. Saves everything to.smartctx/index.jsonlocally. -
sync— Detects changed files (by modification time) and only re-summarizes those. Free for unchanged files. -
query— Runs a local keyword search (zero API cost) over your summaries. Finds the top 10 most relevant files. Generates a lean context file. -
AI Session — Your AI tool reads a 5-15k token context file instead of your 500k+ codebase.
Cost
- Init: ~$0.0004 per file (Claude Haiku pricing) — a 100-file project costs ~$0.04 total
- Sync: Only pays for changed files — usually free
- Query: $0.00 — runs locally
- Daily use: $0.00
Works With
- ✅ Node.js / TypeScript projects
- ✅ Python projects
- ✅ Go, Rust, Java, any language
- ✅ Any file-based project
Configuration
smartctx config --api-key sk-ant-xxxxx # Set API key
smartctx config --target cursor # Default output format
smartctx config --schedule weekly # Reminder schedule
.gitignore
Add .smartctx/ to your .gitignore (it's project-specific local data):
.smartctx/
CLAUDE.md
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 smartctx-0.2.0.tar.gz.
File metadata
- Download URL: smartctx-0.2.0.tar.gz
- Upload date:
- Size: 581.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cca978adffb21943c2292bde6939676f02eee78fd74d98001621301b39699b96
|
|
| MD5 |
456ad242cccc1cabcd7c83b06bf1c037
|
|
| BLAKE2b-256 |
2a0a6f906bfd5f4ded7dc739fac35a43682d24dea9596a5a381afe3cddfbf57b
|
File details
Details for the file smartctx-0.2.0-py3-none-any.whl.
File metadata
- Download URL: smartctx-0.2.0-py3-none-any.whl
- Upload date:
- Size: 593.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f25f8e66d4328ff418742e7595b36ae25ba575c9f29d8e4a47977b76e61e75f5
|
|
| MD5 |
957610b24c48694fa950493ddeb84f6b
|
|
| BLAKE2b-256 |
f34e9484388bb06fe0979a31c248d6a3e82125a0fafbc6876669acf08c0f0d23
|