Context7
ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Productivity-boosting RAG engine for codebases with multi-provider AI support and semantic search.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ผู้ทำยังไม่ได้ใส่วิธีติดตั้งใน registry ให้ดู README ของผู้ทำด้านล่าง
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub abhishek2432001 ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.0.0) เข้า registry 10 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code
ในหมวดเดียวกันมี Context7, Codebase Memory, Exa
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
A production-grade Python library for performing RAG (Retrieval Augmented Generation) on local codebases. No heavy frameworks, no external vector DBs, no cloud required.
DeepRepo ingests a codebase and builds three things simultaneously:
| Layer | What it stores | Used for |
|---|---|---|
| Code Knowledge Graph | Classes, functions, imports, call edges (SQLite) | Symbol lookup, blast-radius analysis |
| Embeddings + FTS index | Semantic vectors + full-text search | Relevant code retrieval |
| Hierarchical Wiki | Plain-English .md files per module | AI explanations, chat context |
A smart query router classifies every question and picks the cheapest context strategy, reducing LLM token usage by 5–50x compared to naive RAG.
deeprepo ingest . / deeprepo serve / deeprepo query "…"deeprepo serve)cd deeprepo_core
pip install -e .
For MCP server support:
pip install -e ".[mcp]"
# macOS
brew install ollama ollama serve # keep this running
ollama pull nomic-embed-text # embedding model ollama pull llama3.1:8b # LLM
cd /path/to/your/project
deeprepo ingest .
deeprepo serve # opens http://localhost:8080
deeprepo query "how does authentication work?"
deeprepo query "what breaks if I change auth.py?"
deeprepo <command> [options]
| Command | What it does |
|---|---|
deeprepo init | Detect provider setup, print the ingest command |
deeprepo ingest [PATH] | Scan repo → build graph + wiki + embeddings |
deeprepo wiki [PATH] | Regenerate wiki pages only (skip re-indexing) |
deeprepo serve | Launch wiki viewer + in-page chat at port 8080 |
deeprepo query "QUESTION" | Ask a question, get an AI answer |
deeprepo status | Show branch isolation & cache freshness |
--llm ollama|openai|anthropic|gemini|huggingface # LLM provider
--embed ollama|openai|huggingface # embedding provider (default: same as --llm) --branch-isolation # enable per-branch databases --base-branch main # seed feature-branch cache from main --wiki-dir .deeprepo/wiki # override wiki output directory
--chunk-size N # chars per text chunk (default: 1000)
--overlap N # overlap between chunks (default: 100) --workers N # wiki parallel workers (default: 3) --no-wiki # skip wiki generation
--port N # HTTP port (default: 8080)
# Ollama (free, fully local)
deeprepo ingest .
deeprepo ingest . --embed openai --llm anthropic
deeprepo ingest . --branch-isolation --base-branch main
deeprepo serve --llm openai --port 9000
deeprepo query "where is AuthService defined?" --top-k 3
from deeprepo import DeepRepoClient
client = DeepRepoClient(provider_name="ollama")
client = DeepRepoClient( embedding_provider_name="openai", llm_provider_name="anthropic", )
client = DeepRepoClient( provider_name="ollama", branch_isolation=True, base_branches=["main"], )
result = client.ingest("/path/to/your/code") print(f"Files: {result['files_scanned']}, Wiki pages: {result['wiki_generated']}")
response = client.query("How does authentication work?") print(response['answer']) print(f"Intent: {response['intent']}, Strategy: {response['strategy']}") print(f"Sources: {response['sources']}") # list of file paths
print(f"Wiki at: {client.get_wiki_dir()}")
query() return shape{
"answer": str, # LLM-generated answer "sources": list[str], # file paths used as context "intent": str, # navigate | impact | explain | debug | review | general "strategy": str, # e.g. symbol_lookup, blast_radius, wiki_plus_skeleton, … "retrieval": str, # embeddings | fts | graph "token_estimate": int, # estimated tokens consumed "history": list[dict], # conversation history (last N exchanges) }
| Provider | Cost | Setup | Best For |
|---|---|---|---|
| Ollama | FREE, unlimited | Install app + ollama pull | Local dev, privacy, offline |
| OpenAI | Paid | OPENAI_API_KEY | Production, best quality |
| Anthropic | Paid | ANTHROPIC_API_KEY | Production, excellent reasoning |
| Gemini | Free tier | GEMINI_API_KEY | Experimentation |
| HuggingFace | Free tier | HUGGINGFACE_API_KEY | Cloud embeddings, no GPU needed |
Note: Anthropic has no embeddings API. Pair it with another provider:
`python
client = DeepRepoClient(embedding_provider_name="openai", llm_provider_name="anthropic")
`
deeprepo_core/src/deeprepo/
├── client.py # Main facade — branch isolation, freshness, provider wiring ├── graph.py # SQLite store: graph nodes/edges, embeddings, wiki index, state ├── graph_builder.py # Tree-sitter AST parser → code knowledge graph ├── wiki.py # Hierarchical wiki engine — bottom-up LLM synthesis ├── router.py # Intent classifier + 6 context strategy selectors ├── ingestion.py # File scanner, chunker, language detection ├── interfaces.py # Abstract base classes (EmbeddingProvider, LLMProvider) ├── registry.py # @register_embedding / @register_llm decorator system ├── ui.py # Wiki viewer (HTTP server + mermaid renderer + chat) ├── mcp/ │ └── server.py # 7 MCP tools for AI assistants (Cursor, Claude Desktop) └── providers/ ├── ollama_v.py ├── openai_v.py ├── anthropic_v.py ├── gemini_v.py └── huggingface_v.py
.deeprepo/ # Generated (gitignore this) ├── default.db # SQLite: graph + embeddings + wiki index + state ├── .db # Per-branch database when branch_isolation=True └── wiki/ # Browsable .md wiki files ├── overview.md # Whole-repo narrative overview └── *.md # One page per module
Everything lives in a single SQLite file per branch — no Redis, no Postgres, no Chroma.
| Table | Contents |
|---|---|
nodes | Files, classes, functions with metadata |
edges | Import / call relationships between nodes |
embeddings | Float vectors for semantic search |
wiki_pages | Generated wiki markdown (key → content) |
wiki_fts | Full-text search index over wiki |
state | Per-file SHA-256 hashes for incremental updates |
DeepRepoClient is the single entry point; internals are hiddenLLMProvider / EmbeddingProvider abstract interfaces; providers are swappable@register_llm("ollama") decorator auto-registers providers at import timeConnect DeepRepo as an MCP server so Cursor, Claude Desktop, or any MCP-compatible AI assistant can call it directly — without ever reading raw files.
pip install deeprepo[mcp]
Cursor — create ~/.cursor/mcp.json:
{
"mcpServers": { "deeprepo": { "command": "python", "args": ["-m", "deeprepo.mcp.server"], "env": { "LLM_PROVIDER": "ollama" } } } }
Claude Desktop — add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": { "deeprepo": { "command": "deeprepo-mcp", "env": { "EMBEDDING_PROVIDER": "openai", "LLM_PROVIDER": "anthropic", "OPENAI_API_KEY": "sk-...", "ANTHROPIC_API_KEY": "sk-ant-..." } } } }
| Tool | When to use | Token cost |
|---|---|---|
ingest_codebase | One-time setup — index a repo directory | — |
find_symbol | "Where is X defined / what line is X on" | ~50 tokens |
get_file_structure | "Show me the API / functions in X" | ~150 tokens |
explain_file | "How does X work / explain X / what does X do" | ~300 tokens |
find_change_impact | "What breaks if I change X" | ~300 tokens |
ask_codebase | Any open-ended question about the code | ~600–2000 tokens |
get_project_overview | "Give me an overview / what does this project do" | ~600 tokens |
| Query type | Naive RAG | DeepRepo | Reduction |
|---|---|---|---|
| "where is X defined" | ~4 000 tokens | ~80 tokens | 50x |
| "what breaks if I change X" | ~4 000 tokens | ~300 tokens | 13x |
| "how does X work" | ~4 000 tokens | ~600 tokens | 7x |
| "fix the bug in X" | ~4 000 tokens | ~900 tokens | 4x |
Add this to your project's CLAUDE.md so Claude automatically uses DeepRepo:
## Code navigation
Before reading any source file directly, use these MCP tools:
find_symbol(name) to locate a class or functionget_file_structure(filepath) to see a file's API without reading itexplain_file(filepath) to understand what a file doesfind_change_impact(filepath) before editing any fileask_codebase(question) for open-ended questionsget_project_overview() at the start of a new sessionOnly call Read/Grep on a file after the above tools have been tried.
| Variable | Default | Description |
|---|---|---|
LLM_PROVIDER | openai | LLM provider name |
EMBEDDING_PROVIDER | same as LLM_PROVIDER | Embedding provider name |
OPENAI_API_KEY | — | Required for OpenAI |
ANTHROPIC_API_KEY | — | Required for Anthropic |
GEMINI_API_KEY | — | Required for Gemini |
HUGGINGFACE_API_KEY / HF_TOKEN | — | Required for HuggingFace |
OLLAMA_MODEL | llama3.1:8b | Ollama LLM model name |
OLLAMA_EMBED_MODEL | nomic-embed-text | Ollama embedding model |
OLLAMA_BASE_URL | http://localhost:11434 | Ollama server URL |
OLLAMA_TIMEOUT | 300 | LLM response timeout (seconds) |
# Full end-to-end test suite (runs ingest + all checks)
python3 test_deeprepo_flow.py
ตัดมาแค่ช่วงต้น อ่านต่อใน repo