Synaptex
Syncs CLAUDE.md files across repos, builds a semantic index, and exposes search, list, context, and status tools to Claude via MCP.
README
<p align="center"> <img src="synaptex_claude_logo.jpg" alt="Synaptex logo" width="300"/> </p>
Synaptex
Global brain for all your Claude Code projects.
Synaptex syncs your CLAUDE.md files across repos, builds a semantic index, and exposes everything to Claude via MCP.
Portable across operating systems (Linux x86/ARM, macOS, Windows WSL), Git hosts (Forgejo, Gitea, GitHub, GitLab, or just local folders), and embedding providers (Ollama, OpenAI, LM Studio, vLLM, LocalAI…).
Quick start
git clone <this-repo> ~/Synaptex
cd ~/Synaptex
bash install.sh # standard setup (embed backend)
# or:
bash install.sh --enable-leann # adds BM25+vector search (~3 GB extra)
synaptex init # interactive wizard
synaptex sync # first sync + index
synaptex search "your query"
Prerequisites
- Python 3.10+ with
pip install -r requirements.txt - A repo source (one of: Forgejo, Gitea, GitHub, GitLab, or local folders)
- For semantic search: Ollama (local or remote) with an embedding model pulled — not required if you use the
fts5backend
Five git providers, one variable
FORGE_TYPE in ~/.synaptex/.env:
| Value | API used | Token scope |
|---|---|---|
forgejo |
Forgejo API v1 (/api/v1/...) |
read:repository |
gitea |
Gitea API v1 (same as Forgejo) | read:repository |
github |
GitHub REST API v3 | repo (read) |
gitlab |
GitLab REST API v4 | read_api |
local |
Filesystem scan (no API) | none |
local is the most universal: point LOCAL_REPOS_PATH to a folder containing your Git repos, and Synaptex reads CLAUDE.md files directly from disk. No tokens, no network, fully offline.
Three search backends, one switch
SYNAPTEX_SEARCH_BACKEND in ~/.synaptex/.env:
| Value | Quality | Network needs | Disk cost | Use when |
|---|---|---|---|---|
embed (default) |
Semantic similarity (cosine) | Ollama (local or remote) | ~tens of MB | You have an embedding provider |
leann |
BM25 + vector hybrid (best) | Ollama | ~3 GB (PyTorch) | Quality matters more than disk |
fts5 |
Keyword (SQLite FTS5) | None | Negligible | Fully offline, no Ollama |
You can switch at any time — re-run synaptex sync to repopulate the index in the new backend.
Supported embedding providers
- Ollama (default) — any model available via
ollama pull - OpenAI-compatible — LM Studio, vLLM, LocalAI, OpenAI API: set
OLLAMA_API_TYPE=openai
Configuration
~/.synaptex/.env (created by synaptex init or install.sh, chmod 600):
| Variable | Description | Example |
|---|---|---|
FORGE_TYPE |
Source type | forgejo | gitea | github | gitlab | local |
FORGE_URL |
Git provider base URL (not needed for github or local) |
http://localhost:3000 |
FORGE_TOKEN |
API token with read access | abc123... |
FORGE_USER |
Your username on the git provider | alice |
LOCAL_REPOS_PATH |
Local folder to scan (when FORGE_TYPE=local) |
~/projects |
SYNAPTEX_INCLUDE_PATTERNS |
Files to index per repo (comma-separated) | CLAUDE.md | CLAUDE.md,README.md | *.md |
SYNAPTEX_EXCLUDE_DIRS |
Local dirs to skip during scan (comma-separated) | Drive-Archive,Secrets,Templates |
SYNAPTEX_SEARCH_BACKEND |
Search engine | embed | leann | fts5 |
OLLAMA_BASE_URL |
Ollama or OpenAI-compatible API | http://localhost:11434 |
OLLAMA_API_TYPE |
API format | ollama | openai |
OLLAMA_EMBED_MODEL |
Embedding model | nomic-embed-text |
OLLAMA_FALLBACK_MODEL |
Fallback model (optional) | mxbai-embed-large |
OLLAMA_API_KEY |
API key for OpenAI-compatible APIs (optional) | sk-... |
Commands
synaptex init
Interactive wizard — generates ~/.synaptex/.env.
synaptex status
Check connectivity: git provider, Ollama, embedding model, index, backend, memory sheets, projects synced, last sync timestamp.
synaptex sync
Download files matching SYNAPTEX_INCLUDE_PATTERNS, generate memory sheets, re-index.
synaptex sync --dry-run # preview without writing
synaptex sync # full sync
synaptex sync --no-index # sync without re-indexing
synaptex sync --verbose # log each file with [ok] or [skip] (reason)
synaptex sync --only mon-projet # sync a single repo
synaptex sync --exclude tests # exclude repos by name (repeatable)
synaptex sync --exclude ci --exclude sandbox
synaptex clean
Purge local caches (~/.synaptex/projects/ and/or ~/.synaptex/memory/).
synaptex clean --all # purge projects + memory
synaptex clean --projects # purge projects only (memory kept)
synaptex clean --memory # purge memory only (projects kept)
synaptex search
Semantic (or keyword, depending on backend) search across all indexed files.
synaptex search "raspberry pi backup strategy"
synaptex search "authentication API" -k 3
synaptex map
Generate ~/.synaptex/index.md — a global map with a Mermaid dependency graph.
synaptex context
Generate an injectable context block for a Claude session.
synaptex context # all projects
synaptex context myrepo otherrepo # filtered
Claude Code integration
Slash command /user:synaptex
At the start of a session, type /user:synaptex to load global context.
With specific projects: /user:synaptex myrepo otherrepo
Claude will:
- Run
synaptex contextand read the result - Query past session memories via qmd (if installed)
- Confirm: "🧠 Synaptex loaded — active projects: [list]"
MCP synaptex-search
Available tools directly in Claude Code during a conversation:
| Tool | Usage |
|---|---|
synaptex_search |
Search across CLAUDE.md files |
synaptex_list |
List all synced projects |
synaptex_context |
Return a project's context |
synaptex_status |
Infrastructure status |
Compatibility matrix
| Platform | Status | Notes |
|---|---|---|
| Linux x86_64 | ✅ Tested | Native |
| Linux aarch64 (Pi 4/5) | ✅ Tested | embed/fts5 backends recommended; leann works but install is slow |
| macOS Apple Silicon | ✅ Should work | Bun + qmd binaries native; Ollama runs natively |
| macOS Intel | ✅ Should work | Same as above |
| Windows (WSL2) | ✅ Should work | Treat as Linux |
| Windows (Git Bash) | ⚠️ Partial | install.sh skips ~/.local/bin symlink — use python3 synaptex.py directly |
File layout
~/.synaptex/
├── .env ← secrets (chmod 600, never committed)
├── projects/ ← CLAUDE.md mirror (one folder per repo)
├── memory/ ← generated memory sheets
├── index.md ← global map (synaptex map)
├── leann_index/ ← vector index (sqlite3 + optional leann)
└── sync.log ← sync history
<repo>/
├── synaptex.py ← CLI (Click)
├── forge.py ← multi-git bridge (forgejo/gitea/github/gitlab/local)
├── embed.py ← vector index (sqlite3 + cosine + OpenAI-compatible)
├── search.py ← search backend router (embed/leann/fts5)
├── memory.py ← memory sheets + Mermaid graph
├── context.py ← injectable context block
├── mcp_synaptex.py ← MCP server (stdio)
└── install.sh ← full setup
Troubleshooting
Ollama not responding
curl http://localhost:11434/api/tags # check it's running
ollama pull nomic-embed-text # pull the default embed model
Git provider unreachable
- For remote Forgejo/GitLab: check VPN or network connectivity
- For GitHub: verify your token has
reposcope - For
local: verifyLOCAL_REPOS_PATHpoints to a folder containing.git/directories
Index empty after sync
synaptex status # check embed model is available
synaptex sync # re-run sync
Want offline search (no Ollama)
# In ~/.synaptex/.env:
SYNAPTEX_SEARCH_BACKEND=fts5
synaptex sync # re-index with FTS5
Want best search quality
bash install.sh --enable-leann
# Then in ~/.synaptex/.env:
SYNAPTEX_SEARCH_BACKEND=leann
synaptex sync
qmd not found
export PATH="$HOME/.bun/bin:$PATH"
License
See LICENSE if present, or contact the repo owner.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.