Project
JetBrains CLI
Rust CLI for JetBrains IDE lifecycle management
A robust CLI tool for installing, updating, and configuring JetBrains IDEs from the command line. Built with Rust for high performance, it features concurrent downloads, progress tracking, and background updates with system notifications.
JB CLI is a Rust command-line tool for installing, updating, and configuring JetBrains IDEs on Linux, written to replace the official Toolbox app on my own machines.
Features
install,uninstall, andlistJetBrains IDEs from the terminallink/unlinkinstalled IDEs on the PATH and generate.desktopentriesautomode checks for updates in the background and raises desktop notificationsSelf-
updatethe CLI, and inspect the environment withinfoandmeta(JSON output)Configure the tools, icons, and binary directories with flags or the
JB_TOOLS_DIR,JB_ICONS_DIR, andJB_BINARIES_DIRenvironment variables
Implementation
Concurrent streaming downloads with progress bars and human-readable sizes
SHA-256 checksum verification of each archive before extraction with flate2 and tar
Async runtime on Tokio, thread-safe channels via Flume, and concurrent shared state via DashMap
HTTP through Reqwest over rustls, argument parsing with clap, notifications via notify-rust
A robust CLI tool for installing, updating, and configuring JetBrains IDEs from the command line. Built with Rust for high performance, it features concurrent downloads, progress tracking, and background updates with system notifications.
JB CLI is a Rust command-line tool for installing, updating, and configuring JetBrains IDEs on Linux, written to replace the official Toolbox app on my own machines.
Features
install,uninstall, andlistJetBrains IDEs from the terminallink/unlinkinstalled IDEs on the PATH and generate.desktopentriesautomode checks for updates in the background and raises desktop notificationsSelf-
updatethe CLI, and inspect the environment withinfoandmeta(JSON output)Configure the tools, icons, and binary directories with flags or the
JB_TOOLS_DIR,JB_ICONS_DIR, andJB_BINARIES_DIRenvironment variables
Implementation
Concurrent streaming downloads with progress bars and human-readable sizes
SHA-256 checksum verification of each archive before extraction with flate2 and tar
Async runtime on Tokio, thread-safe channels via Flume, and concurrent shared state via DashMap
HTTP through Reqwest over rustls, argument parsing with clap, notifications via notify-rust