by justrach (community) Claude Desktop, Claude Code, OpenCode, Cursor, Windsurf
MCP-сервер и движок кодовой аналитики на Zig: структурная индексация, триграммный поиск, граф зависимостей, символы и outline для больших репозиториев — без единой внешней зависимости. По собственным замерам в разы быстрее ripgrep на предпроиндексированных запросах. Только чтение и анализ — редактирование сознательно оставлено штатным инструментам агента.
AI-агент для навигации и редактирования кода через MCP с семантическим анализом. Использует language server protocol для …
MCP-сервер для веб-поиска через Exa AI — поисковик, оптимизированный для нейросетей. В отличие от обычных поисковых …
MCP-сервер для приватного веб-поиска через SearXNG. Позволяет LLM искать информацию через self-hosted SearXNG без трекеров и …
MCP-сервер для YouTube от Paul Betts (автор Electron, Squirrel): транскрипты, метаданные видео, поиск и информация о …
# Установщик автоматически регистрирует codedb как MCP-сервер
# в Claude Code, Cursor, Windsurf, Gemini CLI (macOS/Linux):
curl -fsSL https://codedb.codegraff.com/install.sh | bash
# Windows (PowerShell):
irm https://raw.githubusercontent.com/justrach/codedb/v0.2.5841/install/install.ps1 | iex
# Claude Code (CLI, вручную):
claude mcp add codedb -- codedb mcp
# OpenCode — ~/.config/opencode/opencode.json:
{ "mcp": { "codedb": { "type": "local", "command": ["codedb", "mcp"] } } }
Интеллектуальный анализ кода для твоего агента программирования. Написан на Zig. Подключается через MCP.
Установка · Быстрый старт · Инструменты · Тесты производительности · Данные и приватность · Познакомьтесь с семьёй ↗
Твой агент имеет задачу. Где-то в твоём репозитории находится нужное определение, вызывающий код, который его объясняет, и тест, который держит его в чести. codedb рисует карту: фокусированный контекст исходного кода, символы, вызывающие стороны, структуры файлов и зависимости. Твой клиент для программирования использует свои нативные инструменты для внесения изменений.
Движок контекста, а не редактор. У codedb нет возможности редактирования. Используй его с Graff, Claude Code, Codex, Gemini CLI, Cursor, Windsurf, Devin или другим MCP-клиентом.
| Спроси у своего агента… | codedb поможет ему… |
|---|---|
| «Где происходит обновление сессии?» | Найти релевантные файлы и фрагменты исходного кода с codedb_context |
| «Объясни эту функцию и кто её использует.» | Прочитать определение и вызывающие стороны с codedb_explain |
| «Как этот запрос доходит до базы данных?» | Проследить цепочку между символами с codedb_callpath |
| «Что есть в этой части репозитория?» | Просматривать с codedb_list_dir и изучать структуры файлов |
Структурный поиск выполняется локально. По умолчанию гибридный поиск также использует хостинговые эмбеддинги; выбери semantic=local для полностью локального поиска. Подробнее см. в разделе Данные и приватность — что отправляется и хранится в каждом режиме.
curl -fsSL https://codedb.codegraff.com/install.sh | bash
Скачивает бинарник для твоей платформы и автоматически регистрирует codedb как MCP-сервер в Claude Code, Codex, Gemini CLI, Cursor, Windsurf и Devin — каждый записывается напрямую и аддитивно в конфиг соответствующего инструмента (только если инструмент присутствует). Установщик выводит точную команду codedb mcp, которую он зарегистрировал, а также указатели по настройке хуков для Codex и Claude Code.
В Windows запускай эту команду внутри WSL только если хочешь Linux-бинарник внутри WSL. Для нативного Windows-бинарника используй PowerShell ниже.
Запусти в PowerShell:
irm https://raw.githubusercontent.com/justrach/codedb/v0.2.5841/install/install.ps1 | iex
Запусти ту же команду снова, чтобы обновить codedb.
npx -y codedeebee mcp
Или установи глобально:
npm install -g codedeebee
codedb mcp
npm-пакет называется codedeebee (имя codedb занято на npm); он поставляется с тонким лаунчером, который при postinstall скачивает соответствующий нативный бинарник из GitHub Releases и проверяет контрольную сумму SHA256. Установленный CLI по-прежнему называется codedb.
Лаунчер уже умеет забирать codedb-windows-x86_64.exe, но текущий опубликованный codedeebee вышел до появления этого ассета, поэтому npx -y codedeebee mcp пока не работает на Windows — станет доступно со следующим релизом. До этого используйте PowerShell-установщик выше.
Удобно для MCP-клиентов (Claude Code, Cursor, opencode, Claude Desktop), которые уже используют npx:
{
"codedb": {
"type": "local",
"command": ["npx", "-y", "codedeebee"],
"args": ["mcp"],
"enabled": true
}
}
На macOS или Linux, если codedb update падает на старом релизе, запустите установщик повторно:
curl -fsSL https://codedb.codegraff.com/install.sh | bash
Это заменит бинарник codedb на последний GitHub Release и сохранит ваши существующие MCP-регистрации, конфиг, кэши и снэпшоты. Используйте этот путь для любых релизов, чей встроенный апдейтер не может получить контрольные суммы релизов.
Самообновление работает на нативном Windows с 0.2.5833 (codedb update). На старых сборках запустите PowerShell-установщик выше, чтобы обновить или восстановить бинарник.
Alpha: API и форматы снэпшотов могут меняться. Ядро говорит JSON-RPC 2.0 через stdio, с опциональным локальным HTTP-сервером.
agents.md / CLAUDE.md / GEMINI.md, .codedbrc, память разработчика| Платформа | Бинарник | Подписан |
|---|---|---|
| macOS ARM64 (Apple Silicon) | codedb-darwin-arm64 |
✅ codesigned + notarized |
| macOS x86_64 (Intel) | codedb-darwin-x86_64 |
codesigned + notarized (0.2.5833+) |
| Linux ARM64 | codedb-linux-arm64 |
— |
| Linux x86_64 | codedb-linux-x86_64 |
— |
| Windows x86_64 | codedb-windows-x86_64.exe |
SHA256 проверяется автоматически |
Или установите вручную из GitHub Releases. Всегда сверяйте бинарник с прилагаемым checksums.sha256 перед запуском.
Шелл-установщик для macOS/Linux регистрирует codedb автоматически. Для npm/npx-установок на macOS/Linux и ручных установок на Windows используйте MCP-конфигурацию выше или примеры для конкретных клиентов в docs/mcp.md. Затем откройте проект — инструменты codedb станут доступны вашему ИИ-агенту.
# Manual MCP start (auto-configured by install script)
codedb mcp /path/to/your/project
Для клиентов, которые открывают много неиспользуемых MCP-сессий (например, по одной на ворктри),
Попробуйте экспериментальный ленивый запуск MCP с
CODEDB_LAZY_MCP=1. Индексация начинается при первом запросе кода; неленивый запуск остаётся значением по умолчанию.
codedb serve /path/to/your/project
# listening on localhost:7719
codedb tree /path/to/project # file tree with symbol counts
codedb outline src/main.zig # symbols in a file
codedb find AgentRegistry # find symbol definitions
codedb search "handleAuth" # full-text search (trigram-accelerated)
codedb word Store # exact word lookup (inverted index, O(1))
codedb hot # recently modified files
Инструменты через Model Context Protocol (JSON-RPC 2.0 через stdio). Агенты по умолчанию видят пять одноразовых инструментов (context, explain, callpath, list_dir, status). Задача codedb — давать агентам контекст — а не быть вашим редактором. У codedb нет инструмента редактирования; используйте нативные инструменты редактирования вашего клиента.
| Инструмент | Описание |
|---|---|
codedb_tree |
Полное дерево файлов с языками, количеством строк, количеством символов |
codedb_outline |
Символы в файле: функции, структуры, импорты, с номерами строк |
codedb_symbol |
Найти, где символ определён во всей кодовой базе |
codedb_search |
Полнотекстовый поиск, ускоренный триграммами (поддерживает regex, результаты в области) |
codedb_word |
O(1) поиск слова в инвертированном индексе |
codedb_callers |
Все места вызова символа — пересечение словарного индекса и области outline, за один запрос-ответ |
codedb_explain |
Тело определения + вызывающие стороны в одном вызове (CLI-алиасы: explain, around) |
codedb_callpath |
Кратчайшая разрешённая цепочка вызовов А→Б (CLI-алиас: path); при дублирующихся именах выдаются кандидаты — передайте from_path / to_path (или CLI --from-path / --to-path) для выбора файла |
codedb_context |
Компоновщик в форме задачи — по умолчанию гибридная выборка по парето-фронтиру: сначала локальный BM25/символьный поиск, затем локальный ANN-поиск с использованием удалённого эмбеддинга задачи и фиксированной публичной калибровочной строки, когда существует явный сайдкар, или ограниченный транзиентный семантический реранжировщик иначе. Передайте semantic=local для вызова только на устройстве. format=json добавляет типизированную провайденс-информацию и метаданные приватности выборки; document_hops=1..2 расширяет связанный Markdown |
codedb_hot |
Наиболее недавно изменённые файлы |
codedb_deps |
Типизированный граф зависимостей: импорты по умолчанию, или ссылки Markdown с edge_type=documents; обход документов ограничен 2 переходами / 64 файлами |
codedb_read |
Чтение содержимого файла (диапазоны строк, if_hash пропуск-неизменённых, compact режим) |
codedb_changes |
Изменённые файлы с заданного номера последовательности |
codedb_status |
Статус индекса (количество файлов, текущая последовательность, фаза сканирования) |
codedb_snapshot |
Полный предварительно отрендеренный JSON-снимок кодовой базы |
codedb_projects |
Список всех локально индексированных проектов на этой машине |
codedb_index |
Индексация локальной папки и запись codedb.snapshot |
codedb_find |
Нечёткий поиск имени файла (терпимый к опечаткам подпоследовательный поиск по проиндексированным путям — не поиск по содержимому/символам) |
codedb_glob |
Совпадение проиндексированных путей с glob-шаблоном (src/**/*.zig, *.md, …) |
codedb_ls |
Список непосредственных детей директории — сначала директории, затем файлы с языком + счётчиками |
codedb_list_dir |
Живой BFS-листинг папки (gitignore, лимит 10k) — работает без индекса |
codedb_query |
Композиционный конвейер — цепочка find, search, filter, deps, outline, read, sort, limit в одном запросе |
codedb_context принимает max_tokens как консервативный приблизительный бюджет ответа. Компактные доказательства допускаются постепенно; когда оставшиеся доказательства не помещаются, ответ сообщает об опущении один раз вместо переполнения запроса секциями с более низким приоритетом.
MCP-ответы — обычный текст по умолчанию, без ANSI-стилизации. Установите
CODEDB_MCP_ANSI=1 в окружении MCP-сервера для включения ANSI-цветных блоков сводки и руководства для клиентов, рендерящих терминальные цвета.
Профиль инструментов: агенты по умолчанию используют mini — пять одноразовых инструментов
(context, explain, callpath, list_dir, status). Инструменты-прыжки остаются вызываемыми; они не афишируются. CODEDB_TOOLS_PROFILE=core — старый набор из 10 навигационных инструментов; slim — лаконичные шесть прыжков; full афиширует всё. GUI-клиенты, излучающие богатые блоки, всё равно получают full, если не задана переменная окружения.
codedb индексирует ваш проверенный код. Для
вопросов о публичных репозиториях GitHub установщик регистрирует
DeepWiki (https://mcp.deepwiki.com/mcp — бесплатно, без
авторизации) как отдельный удалённый MCP-сервер в каждом обнаруженном клиенте, с инструментами
read_wiki_structure, read_wiki_contents и ask_question. Отказаться можно при установке через CODEDB_INSTALL_DEEPWIKI=0. (Старый инструмент codedb_remote, работавший на api.wiki.codes, был удалён; DeepWiki заменяет его роль.)
| Команда | Описание |
|---|---|
codedb tree |
Показать дерево файлов с количеством языков и символов |
codedb outline <путь> |
Вывести все символы в файле |
codedb find <имя> |
Найти, где определен символ |
codedb search <запрос> |
Полнотекстовый поиск (триграммы, без учёта регистра) |
codedb search --regex <шаблон> |
Поиск по регулярному выражению |
codedb word <идентификатор> |
Точный поиск слова через инвертированный индекс |
codedb read <путь> |
Прочитать содержимое файла (поддерживает -L ОТ-ДО, --compact) |
codedb hot |
Недавно изменённые файлы |
codedb reindex |
Принудительно выполнить свестое сканирование ФС, перестроить все локальные индексы и обновить живой демон |
codedb snapshot |
Записать codedb.snapshot в корень проекта |
codedb serve |
HTTP-демон на :7719 |
codedb mcp [путь] |
JSON-RPC/MCP-сервер через stdio |
codedb update |
Самообновление до последнего релиза; старые сборки можно починить установщиком |
codedb nuke |
Удалить codedb, очистить кэш/снэпшоты и отменить регистрацию MCP-интеграций |
codedb --version |
Вывести версию |
Опции: --no-telemetry (или переменная окружения CODEDB_NO_TELEMETRY)
Отказ от хука Claude Code: установщик регистрирует PreToolUse-хук, который подталкивает агентов от grep/cat к codedb внутри индексируемых репозиториев. CODEDB_NO_HOOKS=1 пропускает его только для этого запуска (это значение никогда не сохраняется из окружения, поэтому временный export не может быть повышен до постоянного отказа фоновым автообновлятором). Чтобы сделать это постоянным, запустите установщик с CODEDB_PERSIST_NO_HOOKS=1 или выполните touch ~/.codedb/no-hooks; rm ~/.codedb/no-hooks снова включит хук. Удаление записи хука из ~/.claude/settings.json также работает навсегда — установщик запоминает свои регистрации и считает отсутствующую запись намеренным удалением (он сам создаст ~/.codedb/no-hooks, поэтому удалите этот файл, чтобы отменить).
# 1. Get the file tree
curl localhost:7719/tree
# → src/main.zig (zig, 55L, 4 symbols)
# src/store.zig (zig, 156L, 12 symbols)
# src/agent.zig (zig, 135L, 8 symbols)
# 2. Drill into a file
curl "localhost:7719/outline?path=src/store.zig"
# → L20: struct_def Store
# L30: function init
# L55: function recordSnapshot
# 3. Find a symbol across the codebase
curl "localhost:7719/symbol?name=AgentRegistry"
# → {"path":"src/agent.zig","line":30,"kind":"struct_def"}
# 4. Full-text search
curl "localhost:7719/search?q=handleAuth&max=10"
# 5. Check what changed
curl "localhost:7719/changes?since=42"
Замеры на Apple M4 Pro, 48 ГБ ОЗУ. MCP = предварительно проиндексированные «тёплые» запросы (среднее по 20 итерациям). CLI/внешние инструменты включают запуск процесса (среднее по 3 итерациям). Истинность проверена против эталонной реализации на Python.
Репозиторий codedb (20 файлов, 12,6 тыс. строк):
| Запрос | codedb MCP | codedb CLI | ast-grep | ripgrep | grep | Ускорение MCP |
|---|---|---|---|---|---|---|
| Дерево файлов | 0,04 мс | 52,9 мс | — | — | — | 1 253x vs CLI |
Поиск символа (init) |
0,10 мс | 54,1 мс | 3,2 мс | 6,3 мс | 6,5 мс | 549x vs CLI |
Полнотекстовый поиск (allocator) |
0,05 мс | 60,7 мс | 3,2 мс | 5,3 мс | 6,6 мс | 1 340x vs CLI |
Словесный индекс (self) |
0,04 мс | 59,7 мс | n/a | 7,2 мс | 6,5 мс | 1 404x vs CLI |
| Структурный outline | 0,05 мс | 53,5 мс | 3,1 мс | — | 2,4 мс | 1 143x vs CLI |
| Граф зависимостей | 0,05 мс | 2,2 мс | n/a | n/a | n/a | 45x vs CLI |
Репозиторий merjs (100 файлов, 17,3 тыс. строк):
| Запрос | codedb MCP | codedb CLI | ast-grep | ripgrep | grep | Ускорение MCP |
|---|---|---|---|---|---|---|
| Дерево файлов | 0,05 мс | 54,0 мс | — | — | — | 1 173x vs CLI |
Поиск символа (init) |
0,07 мс | 54,4 мс | 3,4 мс | 6,3 мс | 3,6 мс | 758x vs CLI |
Полнотекстовый поиск (allocator) |
0,03 мс | 54,1 мс | 2,9 мс | 5,1 мс | 3,7 мс | 1 554x vs CLI |
Словесный индекс (self) |
0,04 мс | 54,7 мс | n/a | 6,3 мс | 4,2 мс | 1 518x vs CLI |
| Структурный outline | 0,04 мс | 54,9 мс | 3,4 мс | — | 2,5 мс | 1 243x vs CLI |
rtk-ai/rtk repo (329 файлов) — codedb vs rtk vs ripgrep vs grep:
| Инструмент | Поиск "agent" | Ускорение |
|---|---|---|
| codedb (предварительно проиндексирован) | 0,065 мс | базовая линия |
| rtk | 37 мс | в 569 раз медленнее |
| ripgrep | 45 мс | в 692 раза медленнее |
| grep | 80 мс | в 1 231 раз медленнее |
codedb возвращает структурированные, релевантные результаты — не сырой дамп строк. Для ИИ-агентов это означает драматически меньше токенов на запрос:
| Репозиторий | codedb MCP | ripgrep / grep | Сокращение |
|---|---|---|---|
codedb (поиск allocator) |
~20 токенов | ~32 564 токенов | в 1 628 раз меньше |
merjs (поиск allocator) |
~20 токенов | ~4 007 токенов | в 200 раз меньше |
codedb v0.2.57 использует параллельное сканирование с локальными воркерами и детерминированное слияние — каждый воркер строит свой частичный индекс, затем результаты объединяются в главном потоке:
| Репозиторий | Файлов | Холодный старт | На файл | vs v0.2.56 |
|---|---|---|---|---|
| codedb | 20 | 17 мс | 0,85 мс | — |
| merjs | 100 | 16 мс | 0,16 мс | — |
| 5 200 смешанных файлов | 5 200 | 310 мс | 0,06 мс | — |
| openclaw/openclaw | 6 315 | 346 мс | 0,05 мс | в 10 раз быстрее |
Индексы строятся при запуске, а вотчер поддерживает их в актуальном состоянии. Историческое время индексации одного файла выше исключает объединение событий, задержку опроса и постановку в очередь. Индексированные запросы переиспользуют индекс; живой листинг и резервное чтение могут обращаться к файловой системе. Для репозиториев >1000 файлов содержимое файлов освобождается после индексации для экономии ~300-500 МБ.
openclaw, 6 315 файлов, Apple M4 Pro)| Метрика | v0.2.56 | v0.2.57 | Дельта |
|---|---|---|---|
| Стационарный RSS | 1 867 МБ | 1 706 МБ | −161 МБ |
Подпроцессы git / мин (в простое) |
~30 | ~0 | mtime-gated |
Вотчер проверяет mtime .git/HEAD перед форком git rev-parse HEAD. Эти исторические замеры не ограничивают CPU вотчера при активности файловой системы; см. воспроизведение issue #748.
| Функция | codedb MCP | codedb CLI | ast-grep | ripgrep | grep | ctags |
|---|---|---|---|---|---|---|
| Структурный парсинг | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
| Триграмматический поисковый индекс | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Инвертированный словесный индекс | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Граф зависимостей | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Отслеживание версий | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Предварительно проиндексирован (тёплый) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Без запуска процесса | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MCP-протокол | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Полнотекстовый поиск | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Файловый вотчер | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
Карта для следующего шага: структурные парсеры, поисковые индексы и граф зависимостей в одном Zig-бинарнике.
┌─────────────┐ ┌─────────────┐
│ HTTP :7719 │ │ MCP stdio │
│ server.zig │ │ mcp.zig │
└──────┬──────┘ └──────┬──────┘
│ │
└───────┬───────────┘
│
┌──────────▼──────────┐
│ Explorer │
│ explore.zig │
│ ┌───────────────┐ │
│ │ WordIndex │ │
│ │ TrigramIndex │ │
│ │ Outlines │ │
│ │ Contents │ │
│ │ DepGraph │ │
│ └───────────────┘ │
└──────────┬──────────┘
│
┌──────────▼──────────┐
│ Store │──── data.log
│ store.zig │
└──────────┬──────────┘
│
┌──────────▼──────────┐
│ Watcher │ ← OS events + overflow polling
│ watcher.zig │
│ (FilteredWalker) │
└─────────────────────┘
Никакого SQLite. Никаких зависимостей. Специализированная модель данных:
FilteredWalker отсекает .git, node_modules, zig-cache, __pycache__ и т.д. перед погружением.| Поток | Роль |
|---|---|
| Main | HTTP accept loop или MCP read loop |
| Watcher | Согласует OS-события; проверяет содержимое переполнения через FilteredWalker |
| ISR | Перестраивает снимок при установке флага устаревания |
| Reap | Очищает устаревшие агенты каждые 5с |
| Per-connection | HTTP-сервер создаёт поток на соединение |
Все потоки используют общий shutdown: atomic.Value(bool) для graceful-завершения.
codedb собирает анонимную телеметрию использования для улучшения инструмента. Телеметрия включена по умолчанию — пишется в ~/.codedb/telemetry.ndjson и периодически синхронизируется с эндпоинтом аналитики codedb. Исходный код, содержимое файлов, пути файлов или поисковые запросы НЕ собираются — только агрегированные счётчики вызовов инструментов, задержки и статистику запуска.
codedb_context по умолчанию использует гибридный поиск по Парето-фронтиеру. Локальный BM25, триграммы, символы и графовый поиск всегда выполняются первыми. Передайте semantic=local для полностью локального вызова, который не отправляет запрос или исходный текст в сервис эмбеддингов. В режиме гибрида по умолчанию:
Явно соберите новый локальный ANN:
codedb /path/to/repo semantic-index
CodeDB 0.2.5851 стадировал управляемую миграцию эмбеддингов без ломки старых клиентов. Версии до 0.2.5850 продолжают запрашивать Qwen/Qwen3-Embedding-0.6B; 0.2.5851 и позже запрашивают jinaai/jina-embeddings-v2-base-code. Сервис держит оба роута активными. Существующий Qwen ANN sidecar отклоняется проверкой модели/векторного пространства нового клиента. Начиная с 0.2.5852, первый гибридный MCP-запрос всё равно возвращается через ограниченный exact Jina reranker, затем планирует один фоновый ребилд именно этого legacy hosted-Qwen sidecar. Старое поколение OpenPuffer остаётся нетронутым до тех пор, пока Jina-замена не пройдёт валидацию исходников, Git, метаданных и векторного пространства и не закоммитится атомарно. Кастомные эндпоинты/переопределения моделей и новые репозитории никогда не авто-строятся; установите CODEDB_NO_AUTO_SEMANTIC_MIGRATION=1 чтобы отключить даже эту legacy-миграцию. CodeDB никогда не смешивает векторы от двух моделей.
Оно разбивает уже индексируемые файлы на ограниченные 832-байтовые чанки исходников, использует по умолчанию четыре параллельных запроса по 25 элементов (явно настраиваемых от одного до восьми), и пишет небольшую маппинг-таблицу semantic-chunks-v3.meta плюс generation-named .hmls mmap-слой только в локальную per-project директорию данных codedb. Директория и файлы используют приватные права (0700/0600 на POSIX). При lookup codedb проверяет идентичность модели/векторного пространства, Git/содержимое на свежесть и ограниченные метаданные перед открытием слоя. Куча метаданных ограничена 64 MiB, чтения валидации графа — 128 MiB; векторные слои остаются demand-paged вместо копирования в процесс запроса. Оно никогда не сканирует и не загружает .env, .env.*, .envrc, креды, приватные ключи или другие пути из denylist чувствительных файлов. Обычная лексикальная индексация не строит этот sidecar.
Дефолтный управляемый семантический lane бесплатен для вызовов и не требует API-токена или ручной настройки. При первом использовании CodeDB создаёт локальный Ed25519 installation key,
зарегистрирует свой публичный ключ и получит кратковременный сертификат, подписанный сервером.
Каждый запрос подтверждает владение ключом установки; продление происходит автоматически.
Приватный сид хранится в глобальном файле ~/.codedb/credentials.json, записываемом
атомарно с режимом 0600 в POSIX, и никогда не является частью запроса эмбеддингов.
Публичный маршрут предоставляет только управляемую дорожку CodeDB и обеспечивает
регистрацию, установку и совокупные сетевые лимиты. Общие API провайдеров остаются
аутентифицированными.
format=json раскрывает эту границу в объекте retrieval, включая размерность
векторов, ограниченные количество байт/документов, политику удержания и политику
отказа. Если CODEDB_EMBEDDINGS_URL указывает на пользовательского провайдера,
codedb помечает его удержание как custom_endpoint_unverified, потому что клиент
не может доказать политику хранения другого оператора.
| Расположение | Содержимое | Назначение |
|---|---|---|
~/.codedb/projects/<hash>/ |
Триграммный индекс, таблица частот, лог данных; опционально semantic-chunks-v3.meta плюс .hmls слаб |
Постоянные локальные индексы |
~/.codedb/credentials.json |
Приватный сид Ed25519 и публичный сертификат установки (0600 в POSIX) | Автоматическая аутентификация в управляемой дорожке |
~/.codedb/telemetry.ndjson |
Агрегированные вызовы инструментов и статистика запуска | Локальный лог телеметрии |
./codedb.snapshot |
Дерево файлов, структуры, контент, таблица частот | Переносимый снимок для мгновенного запуска MCP |
Не хранится: В явном режиме semantic=local исходный код никуда не отправляется.
В режиме гибридного по умолчанию и в явном режиме построения индекса только ограниченные
временные батчи выше покидают машину; управляемый сервис их не хранит и никогда не
создаёт индекс репозитория. Опциональные ANN-векторы и граф остаются в локальном
каталоге данных codedb. Ни содержимое файлов, ни пути к файлам, ни поисковые запросы
не собираются в телеметрию. Чувствительные файлы автоматически исключаются из
индексации и поэтому не могут стать гибридными кандидатами (.env, .env.*, .envrc,
credentials.json, secrets.*, .pem, .key, SSH-ключи, AWS-конфиги).
Конструктор гибридного запроса повторяет каноническую проверку безопасных путей
непосредственно перед сериализацией, поэтому эти пути остаются заблокированными даже
если устаревший или вручную собранный индекс в памяти содержит один из них.
Структурированные отчёты об источнике сообщают только общее число
sensitive_paths_blocked, никогда не раскрывая отклонённый путь.
Опциональные переопределения пользовательского провайдера (управляемая дорожка не требует никаких):
CODEDB_EMBEDDINGS_URL=https://provider.example/v1/embeddings
CODEDB_EMBEDDINGS_MODEL=your-deployment-id
CODEDB_EMBEDDINGS_DIMENSIONS=512
CODEDB_EMBEDDINGS_TOKEN='optional bearer token for a protected/custom endpoint'
CODEDB_EMBEDDINGS_TIMEOUT_MS=15000
CODEDB_SEMANTIC_INDEX_CONCURRENCY=4
Для отключения телеметрии: установите CODEDB_NO_TELEMETRY=1 или передайте
--no-telemetry.
Для синхронизации локального NDJSON-файла в Postgres для анализа или дашбордов
используйте scripts/sync-telemetry.py со схемой в docs/telemetry/postgres-schema.sql. Поток данных задокументирован в docs/telemetry.md.
codedb nuke # uninstall binary, clear caches/snapshots, remove MCP registrations
rm -rf ~/.codedb/ # cache-only cleanup if you want to keep the binary installed
rm -f codedb.snapshot # remove snapshot from current project only
Требования: Zig 0.17.0-dev.813+2153f8143 (точный протестированный снимок разработки). См. руководство по миграции для воспроизводимой настройки zigup.
git clone https://github.com/justrach/codedb.git
cd codedb
zig build # debug build
zig build -Doptimize=ReleaseFast # release build
zig build test # run tests
zig build bench # run benchmarks
Бинарник: zig-out/bin/codedb
zig build -Doptimize=ReleaseFast -Dtarget=x86_64-linux
zig build -Doptimize=ReleaseFast -Dtarget=aarch64-linux
zig build -Doptimize=ReleaseFast -Dtarget=x86_64-macos
zig build -Doptimize=ReleaseFast -Dtarget=x86_64-windows
./release.sh 0.2.0 # build, codesign, notarize, upload to GitHub Releases
./release.sh 0.2.0 --dry-run # preview without executing
См. LICENSE для подробностей.