Skip to content

BetterDiscord/cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

BetterDiscord CLI

Go Version Release License npm

A cross-platform command-line interface for installing, updating, and managing BetterDiscord.

Features

  • πŸš€ Easy installation and uninstallation of BetterDiscord
  • πŸ”„ Support for multiple Discord channels (Stable, PTB, Canary)
  • πŸ–₯️ Cross-platform support (Windows, macOS, Linux)
  • πŸ“¦ Available via npm for easy distribution
  • ⚑ Fast and lightweight Go binary

Installation

Via npm (Recommended)

npm install -g @betterdiscord/cli

Via Go

go install github.com/betterdiscord/cli@latest

Via winget (Windows)

winget install betterdiscord.cli

Via Homebrew/Linuxbrew

brew install betterdiscord/tap/bdcli

Download Binary

Download the latest release for your platform from the releases page.

Usage

Install BetterDiscord

Install BetterDiscord to a specific Discord channel:

bdcli install --channel stable   # Install to Discord Stable
bdcli install --channel ptb      # Install to Discord PTB
bdcli install --channel canary   # Install to Discord Canary

Install BetterDiscord by providing a Discord install path:

bdcli install --path /path/to/Discord

Uninstall BetterDiscord

Uninstall BetterDiscord from a specific Discord channel:

bdcli uninstall --channel stable   # Uninstall from Discord Stable
bdcli uninstall --channel ptb      # Uninstall from Discord PTB
bdcli uninstall --channel canary   # Uninstall from Discord Canary

Uninstall BetterDiscord by providing a Discord install path:

bdcli uninstall --path /path/to/Discord

Check Version

bdcli version

Shell Completions

bdcli completion bash
bdcli completion zsh
bdcli completion fish

Help

bdcli --help
bdcli [command] --help

CLI Help Output

A cross-platform CLI for installing, updating, and managing BetterDiscord.

Usage:
   bdcli [flags]
   bdcli [command]

Available Commands:
   completion  Generate shell completions
   help        Help about any command
   install     Installs BetterDiscord to your Discord
   uninstall   Uninstalls BetterDiscord from your Discord
   version     Print the version number

Flags:
   -h, --help   help for bdcli

Use "bdcli [command] --help" for more information about a command.

Supported Platforms

  • Windows (x64, ARM64, x86)
  • macOS (x64, ARM64/M1/M2)
  • Linux (x64, ARM64, ARM)

Development

Prerequisites

  • Go 1.26 or higher
  • Task (optional, for task automation)
  • GoReleaser (for releases)

Setup

Clone the repository and install dependencies:

git clone https://github.com/BetterDiscord/cli.git
cd cli
task setup  # Or: go mod download

Available Tasks

Run task --list-all to see all available tasks:

# Development
task run             # Run the CLI (pass args with: task run -- install stable)

# Building
task build           # Build for current platform
task build:all       # Build for all platforms (GoReleaser)

# Testing
task test            # Run tests
task test:verbose    # Run tests with verbose output
task coverage        # Run tests with coverage summary
task coverage:html   # Generate HTML coverage report

# Code Quality
task fmt             # Format Go files
task vet             # Run go vet
task lint            # Run golangci-lint
task check           # Run fix, fmt, vet, lint, test

# Release
task release:snapshot # Test release build
task release          # Create release (requires tag)

# Cleaning
task clean           # Remove build and debug artifacts

Running Locally

# Run directly
go run main.go install stable

# Or use Task
task run -- install stable

Building

# Build for current platform
task build

# Build for all platforms
task build:all

# Output will be in ./dist/

Testing

# Run all tests
task test

# Run with coverage
task coverage

Releasing

  1. Create and push a new tag:

    git tag -a v0.2.0 -m "Release v0.2.0"
    git push origin v0.2.0
  2. GitHub Actions will automatically build and create a draft release

  3. Edit the release notes and publish

  4. Publish to npm:

    npm publish

Project Structure

.
β”œβ”€β”€ cmd/                  # Cobra commands
β”‚   β”œβ”€β”€ install.go       # Install command
β”‚   β”œβ”€β”€ uninstall.go     # Uninstall command
β”‚   β”œβ”€β”€ version.go       # Version command
β”‚   └── root.go          # Root command
β”œβ”€β”€ internal/            # Internal packages
β”‚   β”œβ”€β”€ betterdiscord/  # BetterDiscord installation logic
β”‚   β”œβ”€β”€ discord/        # Discord path resolution and injection
β”‚   β”œβ”€β”€ models/         # Data models
β”‚   └── utils/          # Utility functions
β”œβ”€β”€ main.go             # Entry point
β”œβ”€β”€ Taskfile.yml        # Task automation
└── .goreleaser.yaml    # Release configuration

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Links

Acknowledgments

Built with:


Made with ❀️ by the BetterDiscord Team

About

CLI for installing and managing BetterDiscord

Resources

License

Stars

Watchers

Forks

Packages

No packages published