now available on pypi

your docs are lying.
docdrift fixes them.

watches your git commits, finds documentation that is now wrong, and fixes it automatically using AI — before you merge.

$pip install docdrift
view on github
free & open source local AI — fully private github actions ready

before → after

see exactly what changes

— drag to compare —

BEFOREREADME.md1 error · 2 missing
## validate_token
Validates a token and its scope.
STALEReturns: `bool` — True if valid, False otherwise.
result = validate_token(tok) if result: proceed()
## AuthService
Service class for authentication.
← no docs for .login()
← no docs for .logout()
AFTERREADME.md✓ synced
## validate_token
Validates a token and its scope.
FIXEDRaises: `NotImplementedError` — validation removed.
💡 Use `AuthService.login()` instead.
try: validate_token(tok) except NotImplementedError: use_auth_service()
## AuthService
Service class for authentication.
### .login(user, password)
Authenticates a user and returns a session token.
### .logout(token)
Invalidates the session token and clears auth state.
← stale / broken docsai-fixed & complete →

— watch it work —

docwatcher — Visual Studio Code
📋
🔍
🐛
🧩
Explorer
DOCWATCHER
🐍auth.py
📄README.md
⚙️pyproject.toml
📦requirements.txt
🔧action.yml
🪝.pre-commit-config.yaml
📁.github/workflows
📁.docwatcher
📁tests
🐍auth.py×
1from exceptions import NotImplementedError
2
3def validate_token(token, scope=None):
4 """Validate a token."""
5 # TODO: refactor — raise instead of return
6 raise NotImplementedError(
7 "validation removed — use AuthService"
8 )
9
10class AuthService:
11 def login(self, user, password):
12 """Authenticate and return session."""
13 return self._create_session(user)
14
15 def logout(self, token):
16 """Invalidate session token."""
17 self._revoke(token)
TERMINALPROBLEMSOUTPUT
⎇ mainpythonauth.py⚠ DocDrift: 1 error found
v2.0.0
stable release
free
forever open source
3
AI providers
2
languages supported

process

how it works

01
change code
Edit any function, class, or config
02
DocDrift detects it
Tree-sitter parses the exact diff
03
semantic search
Finds every doc section about that symbol
04
LLM verdict
Is this documentation still accurate?
05
fix generated
AI writes the corrected documentation
06
you approve
One keypress. README updated. Done.

capabilities

everything you need

auto-fix stale docs
AI rewrites the exact section that is now wrong. One keypress applies it.
auto-document new code
New functions with no docs get documented automatically before commit.
docdrift commit
One command — scan, fix undocumented symbols, commit. Everything.
github actions
Drop in two lines of YAML. Every PR gets checked automatically.
fully local
LM Studio or Ollama. Your code never leaves your machine.
pre-commit hook
Blocks commits with critical doc errors before they hit the repo.

integration

add to any repo in 30 seconds

every PR gets checked automatically. findings posted as a comment.

.github/workflows/docdrift.yml
name: DocDrift
on:
  pull_request:
    branches: [main, master]
  workflow_dispatch:

jobs:
  check-docs:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 2

      - name: DocDrift
        uses: ayush698800/docwatcher@v2.0.0
        with:
          groq_api_key: ${{ secrets.GROQ_API_KEY }}

pricing

simple pricing

open source
free
forever · self-hosted
pip install docdrift
local AI — fully private
pre-commit hook
github actions
cli tool
get started
COMING SOON
hosted
$7/month
zero setup · always on
everything in free
connect github in one click
cloud AI included
dashboard
pr notifications
email alerts

stop letting your docs lie.

free · open source · works in 60 seconds

$pip install docdrift
star on github