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

MIT/Apache

65KB
1.5K SLoC

cargoe

Crates.io Documentation License

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:

at your option.

Author

Hadi Cahyadi

Buy Me a Coffee

Donate via Ko-fi

Support me on Patreon

Acknowledgments

Built with:

Dependencies

~6–19MB
~254K SLoC