devtool 🚀
A modern, efficient developer tool written in Rust that unifies the update process for your development environment tools and package managers with a single command. Say goodbye to multiple update commands and let devtool
keep everything up to date.
✨ Features
- One-command updates: Run
devtool
to automatically update multiple supported tools - Smart detection: Automatically detects installed tools (Homebrew, rustup, mise) and skips uninstalled ones
- Beautiful progress feedback: Real-time progress bars and status updates in the terminal
- Detailed logging: Each step's output is logged for easy troubleshooting
- Execution summary: Clear summary showing which tools were updated, already latest, or failed
- Dry run mode: Use
--dry-run
to preview steps without making changes - External status monitoring: Query real-time status with
devtool progress-status
for integration with other tools - Multi-language support: Automatically detects system language and displays Chinese or English interface
- Version information: Check version with
devtool -V
ordevtool --version
🛠️ Supported Tools
devtool
currently supports automatic detection and updating of:
- Homebrew: Update index, upgrade packages, cleanup old versions
- Rust (rustup): Update
stable
Rust toolchain - Mise (formerly rtx): Run
mise up
to update all managed languages and tools (Node.js, Python, etc.)
📦 Installation
From crates.io (Recommended)
Make sure ~/.cargo/bin
is in your PATH
environment variable.
From source
🚀 Usage
Basic Usage
Simply run devtool
in your terminal to start the update process:
This is equivalent to running devtool update
.
Command Line Options
Customize devtool
behavior with these options:
Option | Short | Description |
---|---|---|
--dry-run |
-n |
Show steps that would be executed without actually running them |
--verbose |
-v |
Print detailed output for each step during execution |
--version |
-V |
Show version information |
--keep-logs |
Keep log files for each step, stored in ~/.cache/devtool/ by default |
|
--no-banner |
Don't show startup banner | |
--compact |
Use more compact output format for non-interactive environments | |
--parallel |
(Not implemented) Execute update steps in parallel | |
--no-color |
Disable colored output | |
--help |
-h |
Show help information |
Examples
Standard update:
[========================================] ) |
)
)
)
)
)
)
Dry run:
Check version:
# Output: devtool 0.3.3
Monitor progress (for scripts or status bars):
Run devtool
in one terminal, query progress in another:
# Output: Progress status: ProgressStatus { state: "update", percent: Some(60), done: Some(3), total: Some(5), desc: Some("Action: Cleanup old versions"), ts: Some("2025-10-04T13:17:45.123+08:00") }
Language support:
The tool automatically detects your system language and displays the interface in Chinese or English accordingly.
🤝 Contributing
Contributions are welcome! Please feel free to submit issues and pull requests on the GitHub repository.
📜 License
This project is licensed under both MIT License and Apache License 2.0.