Skip to main content

mai_cli/cli/
mod.rs

1use clap::{Parser, Subcommand};
2
3mod check_cmd;
4mod completions_cmd;
5mod init_cmd;
6mod install_cmd;
7mod list_cmd;
8mod remove_cmd;
9mod sync_cmd;
10mod update_cmd;
11mod use_cmd;
12
13pub use check_cmd::CheckCommand;
14pub use completions_cmd::CompletionsCommand;
15pub use init_cmd::InitCommand;
16pub use install_cmd::InstallCommand;
17pub use list_cmd::ListCommand;
18pub use remove_cmd::RemoveCommand;
19pub use sync_cmd::SyncCommand;
20pub use update_cmd::UpdateCommand;
21pub use use_cmd::UseCommand;
22
23#[derive(Parser)]
24#[command(name = "mai")]
25#[command(about = "AI tooling package manager", long_about = None)]
26pub struct Cli {
27    #[command(subcommand)]
28    pub command: Commands,
29}
30
31#[derive(Subcommand)]
32pub enum Commands {
33    /// Switch active AI tool
34    Use(UseCommand),
35
36    /// Install a pack (skill/command/mcp)
37    Install(InstallCommand),
38
39    /// List installed packs
40    List(ListCommand),
41
42    /// Initialize a new mai project
43    Init(InitCommand),
44
45    /// Sync project packs with global registry
46    Sync(SyncCommand),
47
48    /// Verify lock file integrity
49    Check(CheckCommand),
50
51    /// Remove a pack
52    Remove(RemoveCommand),
53
54    /// Update a pack
55    Update(UpdateCommand),
56
57    /// Generate shell completions
58    Completions(CompletionsCommand),
59}