Thanks for taking the time to contribute.
No Node.js, pnpm, or frontend tooling is required for CLI development.
git clone https://github.com/julesklord/mangofetch-cli.git
cd mangofetch-cli
cargo build -p mangofetch-cliRun the CLI directly during development:
cargo run -p mangofetch-cli -- --help
cargo run -p mangofetch-cli -- check
cargo run -p mangofetch-cli -- download https://example.com/videoBuild a release binary:
cargo build -p mangofetch-cli --releaseThe binary will be at target/release/mangofetch-cli (or mangofetch-cli.exe on Windows).
mangofetch-cli/ # CLI binary crate (clap + indicatif)
│ └── src/
│ ├── main.rs # Command definitions and dispatch
│ └── reporter.rs # CLI progress bar reporter
mangofetch-core/ # Shared library crate
│ └── src/
│ ├── core/ # Download engine, dependencies, HTTP client, yt-dlp integration
│ │ ├── manager/ # Queue, recovery, download log
│ │ ├── traits.rs # DownloadReporter trait
│ │ └── ...
│ └── models/ # Data structures (queue items, settings)
└── mangofetch-lib/ # Platform implementations (YouTube, Instagram, etc.)
Run these checks locally:
cargo fmt --all
cargo clippy --workspace --all-targets
cargo test --workspaceAll three must pass cleanly before submitting.
- Bug fixes: If you find a bug, open an issue first, then submit a fix.
- New platforms: Add a new downloader in
mangofetch-core/src/platforms/implementing thePlatformDownloadertrait. - Core improvements: Enhancements to the download queue, progress reporting, or dependency management in
mangofetch-core. - Documentation: Improvements to README, inline docs, or usage examples.
Follow Conventional Commits: feat:, fix:, refactor:, docs:, chore:. Keep the subject under 72 characters.
Do not file public issues for security problems. See SECURITY.md.
By contributing you agree that your changes are licensed under GPL-3.0.