4 releases
| 0.1.15 | Dec 15, 2025 |
|---|---|
| 0.1.14 | Dec 12, 2025 |
| 0.1.3 | Dec 10, 2025 |
| 0.1.1 | Dec 10, 2025 |
#160 in Cargo plugins
65KB
1.5K
SLoC
cargoe
cargoe is a powerful CLI tool for managing Cargo.toml files with features that cargo doesn't provide out of the box.
Features
- 📝 Exclude/Include Management - Easily add, remove, and list exclude/include patterns
- 🏷️ Keywords & Categories - Manage keywords and categories with crates.io validation
- 🎖️ Badges - Add and manage repository badges
- ⚙️ Metadata - Custom metadata management
- 🔍 Validation - Validate against crates.io requirements
- 📊 Info Display - Quick package information summary
- 🚀 Init Wizard - Interactive setup for publishing
- 🎨 Format - Format your Cargo.toml
- 🔄 Dry Run - Preview changes before applying
Installation
cargo install cargoe
Or from source:
git clone https://github.com/cumulus13/cargoe
cd cargoe
cargo install --path .
Quick Start
# Add exclude patterns
cargoe exclude add "*.log" ".env" "tmp/"
# Add keywords
cargoe keywords add cli cargo toml
# Add categories
cargoe categories add command-line-utilities development-tools::cargo-plugins
# Set repository URL
cargoe set repository https://github.com/user/repo
# Validate for publishing
cargoe validate --strict
# Show package info
cargoe info
# Initialize for publishing (interactive)
cargoe init
Usage
Exclude Patterns
cargoe exclude add "target/" "*.log" # Add patterns
cargoe exclude remove "*.log" # Remove patterns
cargoe exclude list # List all patterns
cargoe exclude clear # Clear all patterns
Include Patterns
cargoe include add "src/" "Cargo.toml"
cargoe include list
Keywords
cargoe keywords add cli cargo toml # Add keywords (max 5)
cargoe keywords remove cli # Remove keyword
cargoe keywords list # List all keywords
Categories
cargoe categories add command-line-utilities
cargoe categories list
cargoe categories valid # Show valid crates.io categories
Badges
cargoe badges add maintenance status=actively-developed
cargoe badges add github-actions workflow=ci.yml
cargoe badges list
cargoe badges remove maintenance
Set Fields
cargoe set repository https://github.com/user/repo
cargoe set homepage https://example.com
cargoe set documentation https://docs.rs/crate
cargoe set license "MIT OR Apache-2.0"
Get Fields
cargoe get repository
cargoe get version
Validation
cargoe validate # Basic validation
cargoe validate --strict # Strict validation for publishing
Other Commands
cargoe info # Show package summary
cargoe fmt # Format Cargo.toml
cargoe fmt --check # Check if formatted
cargoe init # Interactive initialization
cargoe init --yes # Non-interactive initialization
Global Options
--manifest-path <PATH> # Path to Cargo.toml
--dry-run # Preview changes without applying
--quiet # Suppress output except errors
Examples
Prepare for Publishing
# Validate current state
cargoe validate --strict
# Initialize missing fields interactively
cargoe init
# Add keywords and categories
cargoe keywords add cli parser rust
cargoe categories add command-line-utilities
# Add exclude patterns
cargoe exclude add "tests/" "benches/" ".github/"
# Final validation
cargoe validate --strict
Batch Operations
# Add multiple keywords at once
cargoe keywords add cli parser async tokio rust
# Add multiple exclude patterns
cargoe exclude add "*.log" "*.tmp" ".env" "tmp/" "cache/"
CI/CD Integration
# In your CI pipeline
cargoe validate --strict || exit 1
cargoe fmt --check || exit 1
Configuration
cargoe respects your Cargo.toml formatting and comments. It uses toml_edit to preserve the original structure.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
at your option.
Author
Hadi Cahyadi
- Email: cumulus13@gmail.com
- GitHub: cumulus13
Acknowledgments
Built with:
Dependencies
~6–19MB
~254K SLoC