cargoe is a powerful CLI tool for managing Cargo.toml files with features that cargo doesn't provide out of the box.
- π 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
cargo install cargoeOr from source:
git clone https://github.com/cumulus13/cargoe
cd cargoe
cargo install --path .# 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 initcargoe exclude add "target/" "*.log" # Add patterns
cargoe exclude remove "*.log" # Remove patterns
cargoe exclude list # List all patterns
cargoe exclude clear # Clear all patternscargoe include add "src/" "Cargo.toml"
cargoe include listcargoe keywords add cli cargo toml # Add keywords (max 5)
cargoe keywords remove cli # Remove keyword
cargoe keywords list # List all keywordscargoe categories add command-line-utilities
cargoe categories list
cargoe categories valid # Show valid crates.io categoriescargoe badges add maintenance status=actively-developed
cargoe badges add github-actions workflow=ci.yml
cargoe badges list
cargoe badges remove maintenancecargoe 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"cargoe get repository
cargoe get versioncargoe validate # Basic validation
cargoe validate --strict # Strict validation for publishingcargoe 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--manifest-path <PATH> # Path to Cargo.toml
--dry-run # Preview changes without applying
--quiet # Suppress output except errors# 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# 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/"# In your CI pipeline
cargoe validate --strict || exit 1
cargoe fmt --check || exit 1cargoe respects your Cargo.toml formatting and comments. It uses toml_edit to preserve the original structure.
Contributions are welcome! Please feel free to submit a Pull Request.
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
at your option.
Hadi Cahyadi
- Email: cumulus13@gmail.com
- GitHub: cumulus13
Built with:
