docs: 完善 --help 输出

- 每个子命令增加 long_about 描述和示例
- Login: 说明认证存储方式
- Listen: 示例 ias listen --llm / --echo
- Send: 示例 ias send --to <id> --text <msg>
- Whoami: 说明输出内容
- Usage: 示例时间范围查询、模型过滤
- Service: 说明日志位置、systemd 配合
- Skills: 子命令 Import/List/Delete 详细说明
- SkillsAction: 每种操作的目标路径和范围
- arg 添加 help 属性(--llm/--echo/--to/--text/--since)
This commit is contained in:
2026-06-01 22:38:28 +08:00
parent 438c52e79b
commit 2bd4485af6
+65 -19
View File
@@ -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 <user_id> --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<String>,
},
/// 查看当前登录状态
///
/// 显示已登录的账号、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<String>,
/// 结束时间(ISO 格式,默认现在)
/// 结束时间(RFC3339 格式,默认现在)
#[arg(long)]
until: Option<String>,
/// 模型名称过滤
/// 模型名称过滤
#[arg(long)]
model: Option<String>,
},
/// 后台服务模式(等同 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,交互式多选删除。
/// 系统 Skillresources/skills/)不会被删除。
Delete,
}