diff --git a/src/cli.rs b/src/cli.rs index 84f491d..d53628e 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -1,8 +1,11 @@ use clap::{Parser, Subcommand}; -/// iAs - 微信 AI 智能助手 +/// iAs — 微信 AI 智能助手 +/// +/// 支持扫码登录、长轮询收发消息、AI 自动回复(DeepSeek/LM Studio)、 +/// 工具调用(天气/搜索/邮件/Shell/定时任务等)、Token 用量统计。 #[derive(Parser, Debug)] -#[command(name = "ias", version, about = "微信 AI 智能助手 (Rust)")] +#[command(name = "ias", version, about, long_about = None)] pub struct Cli { #[command(subcommand)] pub command: Commands, @@ -11,60 +14,101 @@ pub struct Cli { #[derive(Subcommand, Debug)] pub enum Commands { /// 扫码登录微信 + /// + /// 在终端显示二维码,扫描后完成登录。 + /// 认证信息存入 PostgreSQL 或本地文件。 Login { - /// 登录超时秒数 + /// 登录超时秒数(默认 480s) #[arg(long, default_value = "480")] timeout: u64, }, - /// 监听消息(长轮询) + /// 监听微信消息(长轮询) + /// + /// 启动微信消息监听,接收并处理消息。 + /// 使用 --llm 启用 AI 自动回复,--echo 原样回显。 + /// + /// 示例: + /// ias listen # 仅监听,不做回复 + /// ias listen --llm # AI 自动回复 + /// ias listen --echo # 原样回显 Listen { - /// 启用 AI 自动回复 - #[arg(long)] + /// 启用 AI 自动回复(DeepSeek/LM Studio) + #[arg(long, help = "启用 AI 自动回复")] llm: bool, /// 仅回显消息(不调用 AI) - #[arg(long)] + #[arg(long, help = "原样回显收到的消息")] echo: bool, }, /// 发送文本消息 + /// + /// 向指定微信用户发送文本。 + /// + /// 示例: + /// ias send --to --text "你好" Send { /// 目标用户 ID - #[arg(long)] + #[arg(long, help = "微信用户 ID")] to: String, /// 消息内容 - #[arg(long)] + #[arg(long, help = "文本消息内容")] text: String, /// 上下文令牌 - #[arg(long)] + #[arg(long, help = "微信上下文令牌")] context_token: Option, }, /// 查看当前登录状态 + /// + /// 显示已登录的账号、Token 前缀、API 地址及存储方式。 Whoami, /// 查看 LLM Token 使用统计 + /// + /// 查询 LLM 调用的 Token 消耗、缓存命中率。 + /// 默认查询最近 7 天,支持时间范围和模型过滤。 + /// + /// 示例: + /// ias usage + /// ias usage --since 2026-06-01T00:00:00Z + /// ias usage --model deepseek-v4-flash Usage { - /// 起始时间(ISO 格式,默认7天前) - #[arg(long)] + /// 起始时间(RFC3339 格式,默认 7 天前) + #[arg(long, help = "起始时间(如 2026-06-01T00:00:00Z)")] since: Option, - /// 结束时间(ISO 格式,默认现在) + /// 结束时间(RFC3339 格式,默认现在) #[arg(long)] until: Option, - /// 模型名称过滤 + /// 按模型名称过滤 #[arg(long)] model: Option, }, - /// 后台服务模式(等同 listen --llm,日志写入文件) + /// 后台服务模式 + /// + /// 等同 listen --llm,同时日志写入 .data/logs/ 滚动文件。 + /// 配合 systemd 实现开机自启和进程守护。 + /// + /// 示例: + /// ias service # 前台运行 + /// sudo systemctl enable ias --now # systemd 管理 Service, - /// 从其他工具导入 Skills + /// Skills 管理 + /// + /// 从其他工具(Claude Code、OpenCode、pi 等)导入 Skills, + /// 或管理已导入的 Skills。 + /// + /// 示例: + /// ias skills list # 列出可导入的 Skill + /// ias skills import # 交互式多选导入 + /// ias skills delete # 交互式删除已导入的 Skill Skills { #[command(subcommand)] action: SkillsAction, @@ -73,10 +117,12 @@ pub enum Commands { #[derive(Subcommand, Debug)] pub enum SkillsAction { - /// 扫描并交互式导入 + /// 扫描 ~/.claude/、~/.agents/、~/.opencode/、~/.pi/ 等路径, + /// 交互式多选导入 Skill 到当前项目的 skills/ 目录。 Import, - /// 列出可导入的 Skill + /// 列出所有已知路径中可导入的 Skill(不导入)。 List, - /// 交互式删除用户 Skill + /// 扫描 skills/ 目录中的用户 Skill,交互式多选删除。 + /// 系统 Skill(resources/skills/)不会被删除。 Delete, }