Files
beads/docs/UNINSTALLING.md
Steve Yegge 3743e9ed70 chore: remove obsolete BD_GUIDE.md references
BD_GUIDE.md generation was removed in 125e36d5 when bd onboard was
simplified to output a minimal snippet pointing to bd prime.

This commit:
- Removes stale BD_GUIDE.md references from CLAUDE.md
- Removes dead checkAndSuggestBDGuideUpdate() code from version_tracking.go
- Removes BD_GUIDE.md from UNINSTALLING.md file list

Closes #660 (already fixed in v0.30.7 via f1380e8b)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 20:50:33 -08:00

190 lines
3.9 KiB
Markdown

# Uninstalling Beads
This guide explains how to completely remove Beads from a repository.
## Quick Uninstall
Run these commands from your repository root:
```bash
# 1. Stop any running daemon
bd daemons killall
# 2. Remove git hooks installed by Beads
rm -f .git/hooks/pre-commit .git/hooks/post-merge .git/hooks/pre-push .git/hooks/post-checkout
# 3. Remove merge driver config
git config --unset merge.beads.driver
git config --unset merge.beads.name
# 4. Remove .gitattributes entry (if only contains beads config)
# Or manually edit to remove the beads line
rm -f .gitattributes
# 5. Remove .beads directory
rm -rf .beads
# 6. Remove sync worktree (if exists)
rm -rf .git/beads-worktrees
```
## Detailed Steps
### 1. Stop the Daemon
If a Beads daemon is running for this repository, stop it first:
```bash
bd daemons list # Check if daemon is running
bd daemons killall # Stop all daemons
```
### 2. Remove Git Hooks
Beads installs these hooks in `.git/hooks/`:
| Hook | Purpose |
|------|---------|
| `pre-commit` | Syncs JSONL before commits |
| `post-merge` | Imports changes after merges |
| `pre-push` | Syncs before pushing |
| `post-checkout` | Imports after branch switches |
To remove them:
```bash
rm -f .git/hooks/pre-commit
rm -f .git/hooks/post-merge
rm -f .git/hooks/pre-push
rm -f .git/hooks/post-checkout
```
**Note:** If you had custom hooks before installing Beads, check for `.backup` files:
```bash
ls .git/hooks/*.backup
```
Restore any backups if needed:
```bash
mv .git/hooks/pre-commit.backup .git/hooks/pre-commit
```
### 3. Remove Merge Driver Configuration
Beads configures a custom merge driver in your git config:
```bash
git config --unset merge.beads.driver
git config --unset merge.beads.name
```
### 4. Remove .gitattributes Entry
Beads adds a line to `.gitattributes` for JSONL merge handling:
```
.beads/issues.jsonl merge=beads
```
Either remove the entire file (if it only contains this line):
```bash
rm -f .gitattributes
```
Or edit it to remove just the beads line:
```bash
# Edit .gitattributes and remove the line containing "merge=beads"
```
### 5. Remove .beads Directory
The `.beads/` directory contains:
| File/Dir | Description |
|----------|-------------|
| `beads.db` | SQLite database with issues |
| `issues.jsonl` | Git-tracked issue data |
| `daemon.pid` | Running daemon PID |
| `daemon.log` | Daemon logs |
| `daemon.lock` | Lock file for daemon |
| `bd.sock` | Unix socket for daemon IPC |
| `config.yaml` | Project configuration |
| `metadata.json` | Version tracking |
| `deletions.jsonl` | Soft-deleted issues |
| `README.md` | Human-readable overview |
Remove everything:
```bash
rm -rf .beads
```
**Warning:** This permanently deletes all issue data. Consider backing up first:
```bash
cp .beads/issues.jsonl ~/beads-backup-$(date +%Y%m%d).jsonl
```
### 6. Remove Sync Worktree
If you used branch sync features, clean up the worktree:
```bash
rm -rf .git/beads-worktrees
```
### 7. Commit the Removal (Optional)
If `.beads/` was tracked in git, commit its removal:
```bash
git add -A
git commit -m "Remove beads issue tracking"
git push
```
## Uninstalling the `bd` Binary
The `bd` command itself is a standalone binary. Remove it based on how you installed:
**If installed via go install:**
```bash
rm $(which bd)
# Or: rm ~/go/bin/bd
```
**If installed manually:**
```bash
# Remove from wherever you placed it
rm /usr/local/bin/bd
```
## Verify Complete Removal
Run these checks to confirm Beads is fully removed:
```bash
# Should show "command not found" or be a different bd
which bd
# Should not exist
ls .beads/
# Should not contain beads hooks
ls .git/hooks/
# Should not have merge driver
git config --get merge.beads.driver
# No .gitattributes or no beads line
cat .gitattributes
```
## Re-installing Later
To set up Beads again in the future:
```bash
bd init
```
This will recreate the `.beads/` directory, install hooks, and configure the merge driver.