/ Каталог / Песочница / drift
● Сообщество dadbodgeoff ⚡ Сразу

drift

автор dadbodgeoff · dadbodgeoff/drift

Give Claude long-term memory of your codebase's conventions and past decisions — across every session, not just today's.

drift is a codebase-intelligence MCP server. It scans your repo, extracts patterns and conventions (naming, error handling, layering), and remembers architectural decisions across sessions so every new chat inherits your team's context. Works offline as a CLI too.

Зачем использовать

Ключевые функции

Живое демо

Как выглядит на практике

drift.replay ▶ готово
0/0

Установка

Выберите клиент

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "drift": {
      "command": "uvx",
      "args": [
        "drift"
      ],
      "_inferred": true
    }
  }
}

Откройте Claude Desktop → Settings → Developer → Edit Config. Перезапустите после сохранения.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "drift": {
      "command": "uvx",
      "args": [
        "drift"
      ],
      "_inferred": true
    }
  }
}

Cursor использует ту же схему mcpServers, что и Claude Desktop. Конфиг проекта приоритетнее глобального.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "drift": {
      "command": "uvx",
      "args": [
        "drift"
      ],
      "_inferred": true
    }
  }
}

Щёлкните значок MCP Servers на боковой панели Cline, затем "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "drift": {
      "command": "uvx",
      "args": [
        "drift"
      ],
      "_inferred": true
    }
  }
}

Тот же формат, что и Claude Desktop. Перезапустите Windsurf для применения.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "drift",
      "command": "uvx",
      "args": [
        "drift"
      ]
    }
  ]
}

Continue использует массив объектов серверов, а не map.

~/.config/zed/settings.json
{
  "context_servers": {
    "drift": {
      "command": {
        "path": "uvx",
        "args": [
          "drift"
        ]
      }
    }
  }
}

Добавьте в context_servers. Zed перезагружается автоматически.

claude mcp add drift -- uvx drift

Однострочная команда. Проверить: claude mcp list. Удалить: claude mcp remove.

Сценарии использования

Реальные сценарии: drift

Onboard an AI assistant to your codebase's conventions

👤 Tech leads tired of reminding Claude 'no, we don't use classes here' ⏱ ~20 min beginner

Когда использовать: First session on a new repo, or after a big refactor that changed conventions.

Предварительные требования
  • drift installed — uvx drift or install globally
Поток
  1. Run the initial scan
    Run drift scan on this repo. Tell me what patterns you detected around error handling, module structure, and naming.✓ Скопировано
    → Concrete convention summary with examples
  2. Record decisions you want preserved
    Record these team decisions: we use Result<T,E> not exceptions, one controller per feature folder, snake_case for file names. Tag them 'conventions'.✓ Скопировано
    → Confirmation; entries queryable later
  3. Verify future sessions pick it up
    In a new session: what conventions does this repo follow?✓ Скопировано
    → Claude recites the decisions you recorded

Итог: Every future AI session starts with your team's conventions loaded — fewer corrections, more productive chats.

Подводные камни
  • Patterns are inferred from existing code, including bad code — Review the initial scan and delete any 'conventions' that are actually tech debt you're trying to escape
  • Decision memory drifts from reality if you forget to update it — Treat memory entries like docs — review quarterly
Сочетать с: filesystem · github

Enforce team conventions during PR review

👤 Code reviewers ⏱ ~10 min intermediate

Когда использовать: Before approving a PR, check it didn't silently break team patterns.

Поток
  1. Load this PR's diff
    Load the diff for PR #213 and compare it against the conventions drift has recorded.✓ Скопировано
    → List of convention-matches and misses
  2. Draft review comments for deviations
    For each deviation, draft a polite review comment citing the convention.✓ Скопировано
    → Comment text per finding

Итог: Consistent PR reviews without the reviewer having to remember every unwritten rule.

Подводные камни
  • New patterns may be intentional — don't be dogmatic — Let the author override with a 'new pattern' decision that gets recorded for future PRs
Сочетать с: github

Maintain a lightweight architecture decision log

👤 Any team that keeps forgetting why choices were made ⏱ ~5 min beginner

Когда использовать: Instead of a formal ADR folder no one updates.

Поток
  1. Record a decision when made
    Record decision: we picked Postgres over DynamoDB because of ad-hoc query needs. Date today. Tags: db, architecture.✓ Скопировано
    → Entry saved with ID
  2. Query later when the question returns
    Why did we pick Postgres?✓ Скопировано
    → The stored decision surfaces

Итог: Institutional memory that survives turnover.

Комбинации

Сочетайте с другими MCP — эффект x10

drift + filesystem

drift knows the conventions, filesystem does the edits

Using the conventions drift has recorded, refactor src/api/users.ts to match. Use filesystem to apply edits.✓ Скопировано
drift + github

Review incoming PRs against recorded conventions

Fetch PR #88, check it against drift conventions, draft review comments for any drift.✓ Скопировано

Инструменты

Что предоставляет этот MCP

ИнструментВходные данныеКогда вызыватьСтоимость
scan_codebase path: str First session, or after large refactors free; CPU-bound
list_conventions tag?: str Load context at session start free
record_decision title: str, body: str, tags?: str[] When team agrees on something non-obvious free
query_memory query: str When Claude should recall past context free (local embeddings)
detect_pattern area: str Ad-hoc 'how do we normally do X here?' free

Стоимость и лимиты

Во что обходится

Квота API
None — fully local
Токенов на вызов
Convention summaries: ~1k tokens. Full scan dumps can be 10k+
Деньги
Free and open source
Совет
Load summary conventions at session start, not the full scan. Full scan only on refactor.

Безопасность

Права, секреты, радиус поражения

Хранение учётных данных: Local SQLite or filesystem only
Исходящий трафик: None by default — runs fully offline

Устранение неполадок

Частые ошибки и исправления

Scan hangs on a large monorepo

Exclude generated and vendor directories via .driftignore (same syntax as .gitignore).

Проверить: drift scan --dry-run
Memory query returns nothing relevant

Rebuild local embeddings index; new decisions don't surface until indexed.

Проверить: drift reindex
Claude doesn't use recorded conventions

Make sure the MCP is listed first in your client config so its context loads at the start of every session.

Проверить: claude mcp list

Альтернативы

drift в сравнении

АльтернативаКогда использоватьКомпромисс
MARM-SystemsYou want general cross-session memory not specific to codeLess code-aware; more general notes
llm-context.pyYou want rule-driven code bundling rather than memoryNo persistence layer
Plain ADRs in the repoYou prefer docs-as-codeAI has to read them each session — higher token cost

Ещё

Ресурсы

📖 Читать официальный README на GitHub

🐙 Открытые задачи

🔍 Все 400+ MCP-серверов и Skills