agent_first_mail/cli/
skill.rs1use clap::{Args, Subcommand, ValueEnum};
2
3#[derive(Subcommand, Debug, Clone)]
4pub enum SkillAction {
5 Status(SkillTargetArgs),
7 Install(SkillWriteArgs),
9 Uninstall(SkillWriteArgs),
11}
12
13#[derive(Args, Debug, Clone)]
14pub struct SkillTargetArgs {
15 #[arg(long = "agent", value_enum, default_value_t = SkillAgentSelection::All)]
17 pub agent: SkillAgentSelection,
18 #[arg(long = "scope", value_enum, default_value_t = SkillScope::Personal)]
20 pub scope: SkillScope,
21 #[arg(long = "skills-dir")]
23 pub skills_dir: Option<String>,
24}
25
26#[derive(Args, Debug, Clone)]
27pub struct SkillWriteArgs {
28 #[command(flatten)]
29 pub target: SkillTargetArgs,
30 #[arg(long)]
32 pub force: bool,
33}
34
35#[derive(Clone, Copy, Debug, PartialEq, Eq, ValueEnum)]
36pub enum SkillAgentSelection {
37 All,
39 Codex,
41 #[value(name = "claude-code", alias = "claude")]
43 ClaudeCode,
44 Opencode,
46}
47
48#[derive(Clone, Copy, Debug, PartialEq, Eq, ValueEnum)]
49pub enum SkillScope {
50 Personal,
52 Project,
54}