
doctether
September 11, 2025
python cli documentation developer-tools productivity
doctether is a command-line tool that decouples LLM-generated documents from your repositories while keeping them exactly where you use them. Files are moved to centralized storage and replaced with symlinks, so your workflow stays the same but your git history stays clean.
Features
- Central storage: Move files to
~/.doctether/storage/
- Context preserved: Create symlinks in the original location
- Git hygiene: Automatically ignore
**-doctether.md
in.gitignore
- Searchable: List and search documents across projects
- Safety: Validation, atomic operations, rollback on failure, collision detection
Installation
# Recommended: install as a uv tool
uv tool install git+https://github.com/prassanna-ravishankar/doctether
# Or with pip
pip install git+https://github.com/prassanna-ravishankar/doctether
# Upgrade
uv tool upgrade doctether
Quick Start
# 1) Create a document
echo "# My LLM-generated spec" > feature-spec.md
# 2) Register it
dt register feature-spec.md
# → Symlink created: feature-spec-doctether.md
# → **-doctether.md added to .gitignore
# 3) See everything you've registered
dt list
# 4) Search across documents
dt search "api"
Core Commands
dt register <file>
: Move file to storage and create a symlink in placedt list
: Show all registered documentsdt search <query>
: Find by name or pathdt version
: Show version information
How it Works
doctether maintains three parts:
- Central Storage:
~/.doctether/storage/
(actual files) - Manifest:
~/.doctether/manifest.json
(metadata) - Symlinks: lightweight pointers inside your project directories
Example after dt register feature-spec.md
:
your-project/
├── feature-spec-doctether.md → ~/.doctether/storage/feature-spec_YYYYMMDD_HHMMSS.md
└── .git/
~/.doctether/
├── manifest.json
└── storage/
└── feature-spec_YYYYMMDD_HHMMSS.md
Limitations
- Local only (no cloud sync)
- Manual registration required
- CLI-focused; single-user
- No document versioning
Development
git clone https://github.com/prassanna-ravishankar/doctether.git
cd doctether
uv sync
# Try it locally
uv run dt --help
uv run dt version
MIT licensed. Contributions welcome.