I am trying to have a subcommand launched if there is no argument that has been supplied by the user and I could not find any way to do this.
If there is no subcommand supplied the help will show up when I want some action instead to be passed.
21 Answer
Based on the official clap documentation.
Modified by wrapping the Subcommand in Option, which makes it optional:
use clap::{Parser, Subcommand}; #[derive(Parser)] #[command(author, version, about, long_about = None)] #[command(propagate_version = true)] struct Cli { #[command(subcommand)] command: Option<Commands>, } #[derive(Subcommand)] enum Commands { /// Adds files to myapp Add { name: Option<String> }, } fn main() { let cli = Cli::parse(); // You can check for the existence of subcommands, and if found use their // matches just as you would the top level cmd match &cli.command { Some(Commands::Add { name }) => { println!("'myapp add' was used, name is: {:?}", name) } None => { println!("Default subcommand"); } } }