{"id":28435110,"url":"https://github.com/betterdiscord/cli","last_synced_at":"2026-05-23T06:13:32.388Z","repository":{"id":154011194,"uuid":"579469726","full_name":"BetterDiscord/cli","owner":"BetterDiscord","description":"CLI for installing and managing BetterDiscord","archived":false,"fork":false,"pushed_at":"2026-05-04T22:08:39.000Z","size":129,"stargazers_count":13,"open_issues_count":1,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-05-05T00:10:44.678Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BetterDiscord.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":"2022-12-17T19:57:21.000Z","updated_at":"2026-05-04T22:05:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"a15d3eb3-8c25-426b-9328-95ba8e4ddeef","html_url":"https://github.com/BetterDiscord/cli","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/BetterDiscord/cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BetterDiscord%2Fcli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BetterDiscord%2Fcli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BetterDiscord%2Fcli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BetterDiscord%2Fcli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BetterDiscord","download_url":"https://codeload.github.com/BetterDiscord/cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BetterDiscord%2Fcli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33384611,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T04:15:53.637Z","status":"ssl_error","status_checked_at":"2026-05-23T04:15:53.242Z","response_time":53,"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":[],"created_at":"2025-06-05T20:06:29.696Z","updated_at":"2026-05-23T06:13:32.380Z","avatar_url":"https://github.com/BetterDiscord.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BetterDiscord CLI\n\n[![Go Version](https://img.shields.io/github/go-mod/go-version/BetterDiscord/cli)](https://go.dev/)\n[![Release](https://img.shields.io/github/v/release/BetterDiscord/cli)](https://github.com/BetterDiscord/cli/releases)\n[![License](https://img.shields.io/github/license/BetterDiscord/cli)](LICENSE)\n[![npm](https://img.shields.io/npm/v/@betterdiscord/cli)](https://www.npmjs.com/package/@betterdiscord/cli)\n\nA cross-platform command-line interface for installing, updating, and managing [BetterDiscord](https://betterdiscord.app/).\n\n## Features\n\n- 🚀 Easy installation and uninstallation of BetterDiscord\n- 🔄 Support for multiple Discord channels (Stable, PTB, Canary)\n- 🧭 Discover Discord installs and suggested paths\n- 🧩 Manage plugins and themes (list, install, update, remove)\n- 🛒 Browse and search the BetterDiscord store\n- 🖥️ Cross-platform support (Windows, macOS, Linux)\n- 📦 Available via npm for easy distribution\n- ⚡ Fast and lightweight Go binary\n\n## Installation\n\n### Via npm (Recommended)\n\n```bash\nnpm install -g @betterdiscord/cli\n```\n\n### Via Go\n\n```bash\ngo install github.com/betterdiscord/cli@latest\n```\n\n### Via winget (Windows)\n\n```bash\nwinget install betterdiscord.cli\n```\n\n### Via Homebrew/Linuxbrew\n\n```bash\nbrew install betterdiscord/tap/bdcli\n```\n\n### Download Binary\n\nDownload the latest release for your platform from the [releases page](https://github.com/BetterDiscord/cli/releases).\n\n## Usage\n\n### Global Options\n\n```bash\nbdcli --silent \u003ccommand\u003e   # Suppress non-error output\n```\n\nYou can also set `BDCLI_SILENT=1` to silence output in automation.\n\n### Install BetterDiscord\n\nInstall BetterDiscord to a specific Discord channel:\n\n```bash\nbdcli install --channel stable   # Install to Discord Stable\nbdcli install --channel ptb      # Install to Discord PTB\nbdcli install --channel canary   # Install to Discord Canary\n```\n\nInstall BetterDiscord by providing a Discord install path:\n\n```bash\nbdcli install --path /path/to/Discord\n```\n\n### Uninstall BetterDiscord\n\nUninstall BetterDiscord from a specific Discord channel:\n\n```bash\nbdcli uninstall --channel stable   # Uninstall from Discord Stable\nbdcli uninstall --channel ptb      # Uninstall from Discord PTB\nbdcli uninstall --channel canary   # Uninstall from Discord Canary\n```\n\nUninstall BetterDiscord by providing a Discord install path:\n\n```bash\nbdcli uninstall --path /path/to/Discord\n```\n\nUninject BetterDiscord from all detected Discord installations (without deleting data):\n\n```bash\nbdcli uninstall --all\n```\n\nFully uninstall BetterDiscord from all Discord installations and remove all BetterDiscord folders:\n\n```bash\nbdcli uninstall --full\n```\n\n### Check Version\n\n```bash\nbdcli version\n```\n\n### Update BetterDiscord\n\n```bash\nbdcli update\nbdcli update --check\n```\n\n### Show BetterDiscord Info\n\n```bash\nbdcli info\n```\n\n### Discover Discord Installs\n\n```bash\nbdcli discover installs\nbdcli discover paths\nbdcli discover addons\n```\n\n### Manage Plugins\n\n```bash\nbdcli plugins list\nbdcli plugins info \u003cname\u003e\nbdcli plugins install \u003cname|id|url\u003e\nbdcli plugins update \u003cname|id|url\u003e\nbdcli plugins update \u003cname|id\u003e --check    # Check for updates without installing\nbdcli plugins remove \u003cname|id\u003e\n```\n\n### Manage Themes\n\n```bash\nbdcli themes list\nbdcli themes info \u003cname\u003e\nbdcli themes install \u003cname|id|url\u003e\nbdcli themes update \u003cname|id|url\u003e\nbdcli themes update \u003cname|id\u003e --check     # Check for updates without installing\nbdcli themes remove \u003cname|id\u003e\n```\n\n### Browse the Store\n\n```bash\nbdcli store search \u003cquery\u003e\nbdcli store show \u003cid|name\u003e\n\nbdcli store plugins search \u003cquery\u003e\nbdcli store plugins show \u003cid|name\u003e\n\nbdcli store themes search \u003cquery\u003e\nbdcli store themes show \u003cid|name\u003e\n```\n\n### Shell Completions\n\n```bash\nbdcli completion bash\nbdcli completion zsh\nbdcli completion fish\n```\n\n### Help\n\n```bash\nbdcli --help\nbdcli [command] --help\n```\n\n### Automation\n\nFor scripts and CI jobs, you can suppress non-error output:\n\n```bash\n# One-off command\nbdcli --silent install --channel stable\n\n# Environment variable (applies to all commands)\nBDCLI_SILENT=1 bdcli update\n```\n\n### CLI Help Output\n\n```\nA cross-platform CLI for installing, updating, and managing BetterDiscord.\n\nUsage:\n   bdcli [flags]\n   bdcli [command]\n\nAvailable Commands:\n   completion  Generate shell completions\n   discover    Discover Discord installations and related data\n   help        Help about any command\n   info        Displays information about BetterDiscord installation\n   install     Installs BetterDiscord to your Discord\n   plugins     Manage BetterDiscord plugins\n   store       Browse and search the BetterDiscord store\n   themes      Manage BetterDiscord themes\n   uninstall   Uninstalls BetterDiscord from your Discord\n   update      Update BetterDiscord to the latest version\n   version     Print the version number\n\nFlags:\n       --silent   Suppress non-error output\n   -h, --help     help for bdcli\n\nUse \"bdcli [command] --help\" for more information about a command.\n```\n\n## Supported Platforms\n\n- **Windows** (x64, ARM64, x86)\n- **macOS** (x64, ARM64/M1/M2)\n- **Linux** (x64, ARM64, ARM)\n\n## Development\n\n### Prerequisites\n\n- [Go](https://go.dev/) 1.26 or higher\n- [Task](https://taskfile.dev/) (optional, for task automation)\n- [GoReleaser](https://goreleaser.com/) (for releases)\n\n### Setup\n\nClone the repository and install dependencies:\n\n```bash\ngit clone https://github.com/BetterDiscord/cli.git\ncd cli\ntask setup  # Or: go mod download\n```\n\n### Available Tasks\n\nRun `task --list-all` to see all available tasks:\n\n```bash\n# Development\ntask run             # Run the CLI (pass args with: task run -- install stable)\n\n# Building\ntask build           # Build for current platform\ntask build:all       # Build for all platforms (GoReleaser)\n\n# Testing\ntask test            # Run tests\ntask test:verbose    # Run tests with verbose output\ntask coverage        # Run tests with coverage summary\ntask coverage:html   # Generate HTML coverage report\n\n# Code Quality\ntask fmt             # Format Go files\ntask vet             # Run go vet\ntask lint            # Run golangci-lint\ntask check           # Run fix, fmt, vet, lint, test\n\n# Release\ntask release:snapshot # Test release build\ntask release          # Create release (requires tag)\n\n# Cleaning\ntask clean           # Remove build and debug artifacts\n```\n\n### Running Locally\n\n```bash\n# Run directly\ngo run main.go install stable\n\n# Or use Task\ntask run -- install stable\n```\n\n### Building\n\n```bash\n# Build for current platform\ntask build\n\n# Build for all platforms\ntask build:all\n\n# Output will be in ./dist/\n```\n\n### Testing\n\n```bash\n# Run all tests\ntask test\n\n# Run with coverage\ntask coverage\n```\n\n### Releasing\n\n1. Create and push a new tag:\n\n   ```bash\n   git tag -a v0.2.0 -m \"Release v0.2.0\"\n   git push origin v0.2.0\n   ```\n\n2. GitHub Actions will automatically build and create a draft release\n\n3. Edit the release notes and publish\n\n4. Publish to npm:\n\n   ```bash\n   npm publish\n   ```\n\n## Project Structure\n\n```py\n.\n├── cmd/                  # Cobra commands\n│   ├── install.go       # Install command\n│   ├── update.go        # Update command\n│   ├── info.go          # Info command\n│   ├── discover.go      # Discover command\n│   ├── plugins.go       # Plugins commands\n│   ├── themes.go        # Themes commands\n│   ├── store.go         # Store commands\n│   ├── uninstall.go     # Uninstall command\n│   ├── version.go       # Version command\n│   └── root.go          # Root command\n├── internal/            # Internal packages\n│   ├── betterdiscord/  # BetterDiscord installation logic\n│   ├── discord/        # Discord path resolution and injection\n│   ├── models/         # Data models\n│   └── utils/          # Utility functions\n├── main.go             # Entry point\n├── Taskfile.yml        # Task automation\n└── .goreleaser.yaml    # Release configuration\n```\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'feat: add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n## Links\n\n- [BetterDiscord Website](https://betterdiscord.app/)\n- [BetterDiscord Documentation](https://docs.betterdiscord.app/)\n- [Issue Tracker](https://github.com/BetterDiscord/cli/issues)\n- [npm Package](https://www.npmjs.com/package/@betterdiscord/cli)\n\n## Acknowledgments\n\nBuilt with:\n\n- [Cobra](https://github.com/spf13/cobra) - CLI framework\n- [GoReleaser](https://goreleaser.com/) - Release automation\n- [Task](https://taskfile.dev/) - Task runner\n\n---\n\nMade with ❤️ by the BetterDiscord Team\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbetterdiscord%2Fcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbetterdiscord%2Fcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbetterdiscord%2Fcli/lists"}