{"id":44348646,"url":"https://github.com/nicholas-fedor/go-remove","last_synced_at":"2026-03-04T18:04:57.831Z","repository":{"id":286998920,"uuid":"963215921","full_name":"nicholas-fedor/go-remove","owner":"nicholas-fedor","description":"A command-line tool to remove Go binaries with ease.","archived":false,"fork":false,"pushed_at":"2026-02-28T14:42:39.000Z","size":1346,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-28T14:44:37.634Z","etag":null,"topics":["cli","cli-app","cli-tool","go","golang","tui","utility"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nicholas-fedor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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},"funding":{"github":"nicholas-fedor"}},"created_at":"2025-04-09T10:38:24.000Z","updated_at":"2026-02-28T14:42:42.000Z","dependencies_parsed_at":"2025-04-09T12:28:37.288Z","dependency_job_id":"765145a2-5482-4578-a346-014df2e8a91a","html_url":"https://github.com/nicholas-fedor/go-remove","commit_stats":null,"previous_names":["nicholas-fedor/go-remove"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/nicholas-fedor/go-remove","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicholas-fedor%2Fgo-remove","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicholas-fedor%2Fgo-remove/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicholas-fedor%2Fgo-remove/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicholas-fedor%2Fgo-remove/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nicholas-fedor","download_url":"https://codeload.github.com/nicholas-fedor/go-remove/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicholas-fedor%2Fgo-remove/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30088349,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T15:40:14.053Z","status":"ssl_error","status_checked_at":"2026-03-04T15:40:13.655Z","response_time":59,"last_error":"SSL_read: 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":["cli","cli-app","cli-tool","go","golang","tui","utility"],"created_at":"2026-02-11T14:33:46.953Z","updated_at":"2026-03-04T18:04:57.823Z","avatar_url":"https://github.com/nicholas-fedor.png","language":"Go","funding_links":["https://github.com/sponsors/nicholas-fedor"],"categories":[],"sub_categories":[],"readme":"\u003c!-- markdownlint-disable --\u003e\n\u003cdiv align=\"center\"\u003e\n\n# go-remove\n\n\u003cimg src=\"/.github/assets/logo.svg\" alt=\"go-remove Logo\" width=\"150\"\u003e\n\nA CLI tool to safely remove Go binaries with undo and history support\n\n[![Latest Version](https://img.shields.io/github/tag/nicholas-fedor/go-remove.svg)](https://github.com/nicholas-fedor/go-remove/releases)\n[![CircleCI](https://dl.circleci.com/status-badge/img/gh/nicholas-fedor/go-remove/tree/main.svg?style=shield)](https://dl.circleci.com/status-badge/redirect/gh/nicholas-fedor/go-remove/tree/main)\n[![Codecov](https://codecov.io/gh/nicholas-fedor/go-remove/branch/main/graph/badge.svg)](https://codecov.io/gh/nicholas-fedor/go-remove)\n[![GoDoc](https://godoc.org/github.com/nicholas-fedor/go-remove?status.svg)](https://godoc.org/github.com/nicholas-fedor/go-remove)\n[![Go Report Card](https://goreportcard.com/badge/github.com/nicholas-fedor/go-remove)](https://goreportcard.com/report/github.com/nicholas-fedor/go-remove)\n![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/nicholas-fedor/go-remove)\n[![License](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)\n\n\u003c/div\u003e\n\u003c!-- markdownlint-restore --\u003e\n\n## Table of Contents\n\n- [Features](#features)\n- [Installation](#installation)\n  - [From Source](#from-source)\n  - [From Releases](#from-releases)\n    - [Linux](#linux)\n    - [Windows](#windows)\n    - [Archive Naming](#archive-naming)\n- [Quick Start](#quick-start)\n- [Usage](#usage)\n  - [Direct Removal](#direct-removal)\n  - [Interactive TUI](#interactive-tui)\n  - [Undo Deletion](#undo-deletion)\n  - [Restore from History](#restore-from-history)\n- [Command Reference](#command-reference)\n- [Filesystem Locations](#filesystem-locations)\n  - [Data Storage](#data-storage)\n  - [Trash Locations](#trash-locations)\n  - [Binary Directories (in precedence order)](#binary-directories-in-precedence-order)\n- [Building from Source](#building-from-source)\n- [Requirements](#requirements)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Features\n\n- **Interactive TUI**: Browse and select binaries to remove from a grid interface\n- **Undo Support**: Restore the most recently deleted binary with a single command\n- **Deletion History**: Browse and restore any previously removed binary\n- **Safe Removal**: Moves binaries to system trash instead of permanent deletion\n- **Cross-Platform**: Works on Linux (XDG-compliant) and Windows\n- **Verbose Logging**: Optional detailed output for debugging\n\n## Installation\n\n### From Source\n\n```bash\ngo install github.com/nicholas-fedor/go-remove@latest\n```\n\nThe binary will be installed to `$GOPATH/bin` (typically `~/go/bin/go-remove`).\n\n### From Releases\n\nDownload the latest release for your platform from the [releases page](https://github.com/nicholas-fedor/go-remove/releases).\n\n#### Linux\n\nAvailable architectures: `amd64`, `i386`, `armhf`, `arm64v8`\n\n```bash\n# Download and extract (replace amd64 with your architecture)\ncurl -LO https://github.com/nicholas-fedor/go-remove/releases/latest/download/go-remove_linux_amd64_latest.tar.gz\ntar -xzf go-remove_linux_amd64_latest.tar.gz\nchmod +x go-remove\nsudo mv go-remove /usr/local/bin/\n\n# Verify checksum (optional)\ncurl -LO https://github.com/nicholas-fedor/go-remove/releases/latest/download/checksums.txt\nsha256sum -c checksums.txt --ignore-missing\n```\n\n#### Windows\n\nAvailable architectures: `amd64`, `i386`, `arm64v8`\n\n```powershell\n# Download and extract (replace amd64 with your architecture)\nInvoke-WebRequest -Uri \"https://github.com/nicholas-fedor/go-remove/releases/latest/download/go-remove_windows_amd64_latest.zip\" -OutFile \"go-remove.zip\"\nExpand-Archive -Path \"go-remove.zip\" -DestinationPath \".\"\n\n# Move to a directory in your PATH (requires Administrator privileges)\nMove-Item -Path \".\\go-remove.exe\" -Destination \"$env:LOCALAPPDATA\\Microsoft\\WindowsApps\\\"\n```\n\n#### Archive Naming\n\nRelease archives follow the pattern: `go-remove_{OS}_{ARCH}_{VERSION}.{ext}`\n\n| OS      | Architecture | Archive Name Example                    |\n|---------|--------------|-----------------------------------------|\n| Linux   | amd64        | `go-remove_linux_amd64_v1.0.0.tar.gz`   |\n| Linux   | arm64        | `go-remove_linux_arm64v8_v1.0.0.tar.gz` |\n| Windows | amd64        | `go-remove_windows_amd64_v1.0.0.zip`    |\n\n## Quick Start\n\n```bash\n# Launch interactive TUI to select binaries\ngo-remove\n\n# Remove a specific binary\ngo-remove vhs\n\n# Undo the last deletion\ngo-remove --undo\n```\n\n## Usage\n\n### Direct Removal\n\nRemove a specific binary by name:\n\n```bash\ngo-remove vhs\n```\n\nWith verbose output:\n\n```bash\ngo-remove -v vhs\n```\n\nRemove from `GOROOT/bin` instead of `GOBIN`/`GOPATH/bin`:\n\n```bash\ngo-remove --goroot vhs\n```\n\n### Interactive TUI\n\nLaunch without arguments to use the interactive TUI:\n\n```bash\ngo-remove\n```\n\n**TUI Controls:**\n\n| Key                                | Action                                   |\n|------------------------------------|------------------------------------------|\n| `↑`/`↓`/`←`/`→` or `k`/`j`/`h`/`l` | Navigate grid                            |\n| `Enter`                            | Remove selected binary                   |\n| `s`                                | Toggle sort order (ascending/descending) |\n| `r`                                | Open deletion history                    |\n| `q` or `Ctrl+C`                    | Quit                                     |\n\n### Undo Deletion\n\nRestore the most recently deleted binary:\n\n```bash\ngo-remove --undo\n# or\ngo-remove -u\n```\n\n### Restore from History\n\nBrowse and restore from deletion history:\n\n```bash\ngo-remove --restore\n# or\ngo-remove -r\n```\n\n**History View Controls:**\n\n| Key     | Action                                       |\n|---------|----------------------------------------------|\n| `↑`/`↓` | Navigate history                             |\n| `Enter` | Restore selected binary to original location |\n| `d`     | Permanently delete from trash                |\n| `u`     | Undo most recent deletion                    |\n| `q`     | Return to main view                          |\n\n## Command Reference\n\n| Flag          | Short | Description                                         |\n|---------------|-------|-----------------------------------------------------|\n| `--undo`      | `-u`  | Restore the most recently deleted binary            |\n| `--restore`   | `-r`  | Open the deletion history view                      |\n| `--goroot`    |       | Target `GOROOT/bin` instead of `GOBIN`/`GOPATH/bin` |\n| `--log-level` |       | Set log level (`debug`, `info`, `warn`, `error`)    |\n| `--help`      | `-h`  | Show help message                                   |\n\n## Filesystem Locations\n\n### Data Storage\n\nDeletion history is stored in a Badger KV database:\n\n**Linux:**\n\n- `$XDG_DATA_HOME/go-remove/history.badger`\n- Fallback: `~/.local/share/go-remove/history.badger`\n\n**Windows:**\n\n- `%LOCALAPPDATA%\\go-remove\\history.badger`\n- Fallback: `%USERPROFILE%\\go-remove\\history.badger`\n\n### Trash Locations\n\n**Linux:** XDG-compliant trash at `$XDG_DATA_HOME/Trash` (fallback: `~/.local/share/Trash`)\n\n- `files/` - Trashed binaries\n- `info/` - Metadata files (`.trashinfo`)\n\n**Windows:** Windows Recycle Bin via Shell API\n\n### Binary Directories (in precedence order)\n\n1. `GOROOT/bin` (when using `--goroot` flag)\n2. `GOBIN` (environment variable)\n3. `GOPATH/bin` (from `GOPATH` environment variable)\n4. Default fallback: `~/go/bin` (Linux/macOS) or `%USERPROFILE%\\go\\bin` (Windows)\n\n## Building from Source\n\n```bash\ngit clone https://github.com/nicholas-fedor/go-remove.git\ncd go-remove\ngo build -o go-remove .\n```\n\nRun locally:\n\n```bash\n./go-remove --help\n```\n\n## Requirements\n\n- Go 1.26.0 or later\n\n## Contributing\n\nWe welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines on:\n\n- Setting up your development environment\n- Code standards and testing requirements\n- Submitting pull requests\n- Commit signing requirements\n- AI policy\n\nYou can also submit issues or pull requests on [GitHub](https://github.com/nicholas-fedor/go-remove).\n\n## License\n\nThis project is licensed under the [GNU Affero General Public License v3](LICENSE.md).\n\n---\n\n**Logo Credits:** Special thanks to [Maria Letta](https://github.com/MariaLetta) for the awesome [Free Gophers Pack](https://github.com/MariaLetta/free-gophers-pack).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicholas-fedor%2Fgo-remove","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnicholas-fedor%2Fgo-remove","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicholas-fedor%2Fgo-remove/lists"}