{"id":49192417,"url":"https://github.com/detailobsessed/beads-uninstaller","last_synced_at":"2026-04-23T07:30:59.743Z","repository":{"id":337280245,"uuid":"1151827985","full_name":"detailobsessed/beads-uninstaller","owner":"detailobsessed","description":"The most comprehensive beads uninstaller known to man","archived":false,"fork":false,"pushed_at":"2026-02-23T23:01:57.000Z","size":156,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-24T05:42:02.116Z","etag":null,"topics":["bash","cleanup","cli","macos","shell","uninstaller"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/detailobsessed.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-07T00:25:08.000Z","updated_at":"2026-02-23T23:02:00.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/detailobsessed/beads-uninstaller","commit_stats":null,"previous_names":["detailobsessed/beads-uninstaller"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/detailobsessed/beads-uninstaller","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/detailobsessed%2Fbeads-uninstaller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/detailobsessed%2Fbeads-uninstaller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/detailobsessed%2Fbeads-uninstaller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/detailobsessed%2Fbeads-uninstaller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/detailobsessed","download_url":"https://codeload.github.com/detailobsessed/beads-uninstaller/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/detailobsessed%2Fbeads-uninstaller/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32171220,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-23T02:19:40.750Z","status":"ssl_error","status_checked_at":"2026-04-23T02:17:55.737Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","cleanup","cli","macos","shell","uninstaller"],"created_at":"2026-04-23T07:30:58.935Z","updated_at":"2026-04-23T07:30:59.728Z","avatar_url":"https://github.com/detailobsessed.png","language":"Shell","funding_links":[],"categories":["bash"],"sub_categories":[],"readme":"# beads-uninstaller\n\nA comprehensive uninstall/cleanup script for\n[Beads](https://github.com/steveyegge/beads) (`bd`)\nthat removes **all traces** of the tool from a system —\nrepositories, home directory, binaries, git hooks,\nconfig files, and more.\n\nTested end-to-end: `brew install beads` → `bd init` →\nrun uninstaller → verify zero artifacts remain.\n**183 automated tests** ensure every cleanup path works\ncorrectly before touching your system.\n\n## Quick Start\n\n```bash\n# Clone\ngit clone https://github.com/detailobsessed/beads-uninstaller.git\ncd beads-uninstaller\n\n# Dry-run (safe — no changes are made)\n./beads-uninstaller.sh\n\n# Review the output, then apply\n./beads-uninstaller.sh --apply\n```\n\n## Features\n\n- **Dry-run by default** — no changes unless you pass `--apply`\n- **Scan caching** — dry-run saves scan results;\n  subsequent `--apply` reuses them instantly\n- **Migrate to tk** — optional `--migrate-tk` flag\n  preserves tickets by migrating to\n  [tk](https://github.com/wedow/ticket) before cleanup\n- **Colorized output** — clear visual feedback with\n  section headers and action indicators\n- **Safe file handling** — only removes files that are\n  actually beads-related (e.g. `.aider.conf.yml` is\n  checked for beads content before removal)\n- **Backup restoration** — restores original git hook\n  backups when removing beads hooks\n- **Detailed summary** — shows breakdown of files\n  removed, files changed, daemons stopped, and\n  binaries removed\n\n## What It Cleans Up\n\n### Per-Repository\n\n| Target | Details |\n| ------ | ------- |\n| **Daemon** | Stops any running `bd` daemon process |\n| **Directories** | Removes `.beads/` and `.beads-hooks/` |\n| **AGENTS.md** | Strips beads sections; removes if fully generated |\n| **AI tool configs** | Cleans `.claude/settings.local.json`, `.gemini/…` |\n| **Cursor** | Removes `.cursor/rules/beads.mdc` |\n| **Aider** | Removes `.aider/BEADS.md`; checks content first |\n| **Git hooks** | Removes beads hooks, restores backups if available |\n| **`.gitattributes`** | Strips `merge=beads` and beads comments |\n| **`.git/info/exclude`** | Removes beads-related entries |\n| **`.git/config`** | Removes `core.hooksPath`, `merge.beads.*`, `beads.*` |\n| **Worktrees** | Removes `beads-worktrees` directory from git common dir |\n\n### Home Directory\n\n- `~/.beads/` and `~/.config/bd/`\n- Beads hooks from `~/.claude/settings.json` and `~/.gemini/settings.json`\n- Beads entries from global gitignore (`~/.gitignore_global` or `~/.config/git/ignore`)\n- Global git config: `merge.beads.*`, `beads.*`,\n  and `core.hooksPath` (if pointing to beads)\n- `~/.beads-planning/` (only if it contains a `.beads` subdirectory)\n\n### Binaries\n\n- `bd` from `/usr/local/bin`, `/opt/homebrew/bin`, `~/.local/bin`, `~/go/bin`\n- `brew uninstall bd` (if installed via Homebrew)\n- `npm uninstall -g @beads/bd` (if installed via npm)\n\n## Options\n\n- `--apply` — perform deletions (otherwise dry-run)\n- `--migrate-tk` — migrate tickets to\n  [tk](https://github.com/wedow/ticket) first\n- `--root DIR` — scan a specific directory instead\n  of `$HOME` (repeatable)\n- `--skip-home` — don't touch home-level files\n- `--skip-binary` — don't remove the `bd` binary\n- `-h, --help` — show help\n\n## Examples\n\n```bash\n# Dry-run: see what would be cleaned\n./beads-uninstaller.sh\n\n# Migrate tickets to tk, then clean everything\n./beads-uninstaller.sh --migrate-tk --apply\n\n# Clean everything (without migrating)\n./beads-uninstaller.sh --apply\n\n# Clean a specific project only\n./beads-uninstaller.sh --root ~/myproject --skip-home --skip-binary --apply\n\n# Clean multiple projects\n./beads-uninstaller.sh --root ~/project1 --root ~/project2 --apply\n```\n\n## Testing\n\nThe project uses [bashunit](https://bashunit.typeddevs.com/)\nwith 200+ tests covering all functions. Coverage is\nenabled by default via `.env`.\n\n```bash\n# Run all tests (with coverage)\n./lib/bashunit tests/\n\n# Coverage report is written to coverage/lcov.info\n```\n\n## Troubleshooting\n\nIf you still see beads artifacts after running the script:\n\n**Git hooks not removed?**\n\nThe uninstaller now detects beads hooks by scanning `.git/hooks/`\nfor beads signatures, even if no other beads artifacts exist.\nIf hooks persist, manually check:\n\n```bash\ngrep -r \"bd-shim\\|bd-hooks-version\" .git/hooks/\n```\n\n**Config still in `.git/config`?**\n\nOpen `.git/config` and remove these sections:\n\n```ini\n[merge \"beads\"]\n    driver = bd merge %A %O %A %B\n    name = bd JSONL merge driver\n[beads]\n    role = maintainer\n```\n\n## Known Limitations\n\n- **Shell profile entries** — the script does not modify\n  `~/.bashrc`, `~/.zshrc`, or similar. If you added `bd`\n  to your `PATH` manually, remove that line yourself.\n- **Non-standard hook signatures** — if beads installed\n  hooks that don't match known patterns, check with:\n  `grep -r beads .git/hooks/`\n\n## Requirements\n\n- **bash** 4.0+\n- **ripgrep** (`rg`) — used for fast filesystem scanning\n- **python3** — used for JSON/AGENTS.md cleanup\n- **git** — for git config and hook cleanup\n\n## License\n\n[MIT](LICENSE)\n\n## Attribution\n\nOriginal script by [banteg](https://gist.github.com/banteg).\nThis fork adds colorized output, automatic\n[tk](https://github.com/wedow/ticket) migration,\nscan caching, detailed summary reporting, full\n`beads.*` config cleanup, comprehensive test suite,\nand documentation.\n\nFixes incorporated from community feedback by\n[raine](https://github.com/raine) and\n[ouachitalabs](https://github.com/ouachitalabs).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdetailobsessed%2Fbeads-uninstaller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdetailobsessed%2Fbeads-uninstaller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdetailobsessed%2Fbeads-uninstaller/lists"}