命令参考

概览

Slingshot 的命令层次按领域组织。所有命令支持 --help 标志查看内联文档,支持 --explain 标志进行空运行诊断。

slingshot ├── code 代码智能工具,支持 MCP stdio 服务器 ├── config 配置管理 ├── draft 微信公众号草稿 ├── i18n 翻译(.po)文件管理 ├── jaeger Jaeger 追踪查询 ├── meterial 微信永久素材 ├── page 站点页面管理 ├── site 部署站点管理 └── skill 内置 AI 智能体技能包

全局标志

标志说明
--explain解析并显示命令参数但不执行
-q, --quiet抑制非必要输出
-v, --version显示版本信息
-h, --help显示帮助信息

slingshot code

代码智能工具,提供 MCP stdio 服务器。通过模型上下文协议提供代码搜索、图谱分析、AST 导航和项目管理功能。

slingshot code serve

slingshot code serve 启动一个 MCP stdio 服务器,暴露 30+ 个工具:

  • 代码搜索与导航 — BM25 全文搜索、语义向量搜索、名称模式匹配、grep+图谱增强
  • 代码图谱分析 — 架构总览(Leiden 聚类、热点)、模式探索、路径追踪
  • AST 分析 — 结构查看、节点检查、定义列表、语法验证
  • 引用分析 — 查找引用、追踪调用(入/出方向、数据流、跨服务)
  • 变更检测与影响分析 — 基于 git,支持图谱传播
  • 项目索引与管理
  • ADR 与备忘录持久化

环境变量:

变量默认值说明
SLINGSHOT_PROJECT_ROOT(当前目录)项目根目录
SLINGSHOT_CODE_DB~/.config/slingshot/code.db代码图谱数据库路径

标志:

标志默认值说明
--project-root(当前目录)项目根目录
--db-path~/.config/slingshot/code.db代码图谱数据库路径
--log-levelwarn日志级别:debug、info、warn、error

示例:

# 启动代码智能 MCP 服务器
slingshot code serve

# 指定项目根目录和数据库路径
slingshot code serve --project-root /path/to/project --db-path /tmp/code.db

# 开启调试日志
slingshot code serve --log-level debug

slingshot config

管理 Slingshot 配置 — 设置微信凭据和其他设置。

slingshot config list
slingshot config show <key>
slingshot config get <key>
slingshot config set <key> <value>
slingshot config unset <key>

示例:

# 设置微信凭据
slingshot config set wechat.appid wx1234567890abcdef
slingshot config set wechat.secret abcdef1234567890abcdef1234567890

# 查看所有配置
slingshot config list

# 获取特定值
slingshot config get wechat.appid

slingshot draft

管理微信公众号草稿 — Slingshot 的核心功能。

slingshot draft list
slingshot draft add <file> [--title <title>] [--thumb <media_id>]
slingshot draft update <file>
slingshot draft remove <id|file>
slingshot draft show <id|file>
slingshot draft convert <file> [--upload]

Draft Convert 是流程入口:

  • 将 Markdown(.md)或 Org mode(.org)文件转换为微信兼容的 HTML
  • --upload:将本地图片路径替换为微信 CDN URL(自动上传图片)
  • 在同目录生成 .html 文件

Draft Add / Update:

  • slingshot draft add article.md — 创建新草稿,自动将 .org/.md 转为 HTML
  • --title 覆盖文章标题;--thumb 指定封面图片 media_id
  • slingshot draft update article.html — 更新已有草稿,通过 sidecar YAML 自动检测 media_id
  • thumb_media_id 中的本地图片路径自动上传到微信素材

Sidecar YAML:

同名的 YAML 文件(例如 article.yaml 与 article.md 放一起)提供元数据:

title: 文章标题
author: 作者名
thumb_media_id: cover.png    # 本地路径 — 自动上传
digest: 简要摘要...
content_source_url: https://example.com

优先级:sidecar YAML > front matter > HTML <meta> > 默认值

示例:

# 将 Markdown 转换为微信 HTML 并上传图片
slingshot draft convert post.md --upload

# 创建草稿(自动将 .md 转为 HTML)
slingshot draft add post.md

# 列出所有草稿
slingshot draft list

# 更新已有草稿
slingshot draft update post.html

# 安全预览 convert 的效果
slingshot draft convert post.md --upload --explain

slingshot meterial

管理微信永久素材(图片、缩略图等)。

slingshot meterial list
slingshot meterial add <file>
slingshot meterial remove <media_id>
slingshot meterial show <media_id>

slingshot page

管理部署站点中的页面。页面是存储在站点目录子目录下的独立 HTML 文件。

slingshot page list <name>
slingshot page add <name> <file>... [--rsync]
slingshot page update <name> <file>...
slingshot page remove <name> <page>

特性:

  • 添加/更新时自动将 .org 和 .md 文件转换为 HTML
  • --rsync:添加页面后自动部署站点
  • 一次接受多个文件
  • HTML 中引用的图片自动复制到页面目录
  • 所有页面处理完后自动重建站点索引

示例:

# 从 Markdown 文件添加页面
slingshot page add mysite my-post.md

# 一次添加多个文件
slingshot page add mysite about.md contact.md

# 添加并自动部署
slingshot page add mysite my-post.md --rsync

# 列出站点所有页面
slingshot page list mysite

# 更新页面
slingshot page update mysite my-post.html

# 删除页面
slingshot page remove mysite my-post

slingshot site

管理部署站点 — 配置一条命令发布的部署目标。支持两种站点类型:page(默认)和 zine。

slingshot site list
slingshot site add <name> [<key> <value>...]
slingshot site update <name> <key> <value>
slingshot site remove <name>
slingshot site rsync <name>
slingshot site optimize <name>

站点配置键:

键必填说明示例
dir是本地站点目录~/mysite
rsync否Rsync 部署命令rsync -avz --delete ./ user@host:/path
type否站点类型:page(默认)或 zinezine
  • page 类型:直接同步站点目录
  • zine 类型:先自动运行 zine release 构建,再从 public/ 目录同步

示例:

# 添加 page 类型站点
slingshot site add mysite dir ~/mysite

# 添加 zine 站点并配置部署命令
slingshot site add mysite dir ~/mysite \
  rsync 'rsync -avz --delete ./ user@host:/var/www/html' \
  type zine

# 更新部署命令
slingshot site update mysite rsync 'rsync -avz --delete ./ user@host:/new-path'

# 部署(zine 类型自动构建)
slingshot site rsync mysite

# 优化 CSS 适配响应式显示
slingshot site optimize mysite

slingshot skill

管理内置技能包 — AI 智能体的可复用工作流定义。

slingshot skill list
slingshot skill install <name>

特性:

  • 技能包定义常见任务的逐步工作流
  • 安装到项目的 .dscli/skills/ 目录
  • AI 智能体可加载和执行

可用技能包:

技能包说明
weixin微信公众号发布工作流
site-page静态站点部署(简单页面管理)
site-zineZine 站点管理(多语言、模板、版本管理)
incusIncus 容器生命周期管理,用于测试

示例:

# 列出可用技能包
slingshot skill list

# 安装 weixin 技能包
slingshot skill install weixin


---

## slingshot i18n

管理 slingshot i18n 系统的翻译(.po)文件 — 跨语言环境提取、翻译和验证本地化字符串。

```bash
slingshot i18n check [<locale>...] [--exit-code]
slingshot i18n stats
slingshot i18n sync [--delete]
slingshot i18n show <locale> <id>
slingshot i18n translate <locale> --msgid "<msgid>" --msgstr "<msgstr>"
slingshot i18n add <locale>
slingshot i18n init

工作流:

  1. slingshot i18n sync — 扫描 Go 源码中的 i18n.G() 调用,同步 en_US .po 文件。新字符串以空翻译传播到所有其他语言环境。

  2. slingshot i18n check <locale> — 识别语言环境中的缺失、未翻译和孤立条目。CI 流水线中使用 --exit-code。

  3. slingshot i18n show <locale> <id> — 按 ID 查看特定未翻译条目的完整详情(ID 是 check 命令显示的数字)。

  4. slingshot i18n translate <locale> --msgid "<msgid>" --msgstr "<翻译>" — 为单个条目设置翻译,正确处理 .po 转义。

  5. slingshot i18n stats — 查看所有语言环境的翻译覆盖率。

示例:

# 步骤 1:将 .po 文件与源码同步
slingshot i18n sync

# 步骤 2:检查 zh_CN 的未翻译条目
slingshot i18n check zh_CN

# 步骤 3:翻译特定条目
slingshot i18n translate zh_CN \
  --msgid "Hello World" \
  --msgstr "你好,世界"

# 步骤 4:查看翻译统计
slingshot i18n stats

# 初始化新语言环境
slingshot i18n add ja

# 带 --delete 同步(从源码重新生成)
slingshot i18n sync --delete

slingshot jaeger

通过 Jaeger Query HTTP API 直接查询追踪数据 — 无需 MCP Server。 替代不可靠的 Jaeger MCP Server:无截断、无超时、无需额外守护进程。

slingshot jaeger services
slingshot jaeger operations <service>
slingshot jaeger search <service> [--limit <n>] [--lookback <duration>]
slingshot jaeger trace <traceID>
slingshot jaeger trace topology <traceID>
slingshot jaeger trace critical-path <traceID>
slingshot jaeger deps

环境变量:

变量默认值说明
JAEGER_HOSThttp://localhost:16686Jaeger Query URL

命令:

命令说明
services列出所有已注册服务
operations <service>列出服务的操作(端点)
search <service>搜索服务的追踪记录
trace <traceID>获取完整追踪详情
trace topology <traceID>展示追踪的服务依赖拓扑
trace critical-path <traceID>展示追踪关键路径(最慢链)
deps获取服务依赖关系图

示例:

# 列出服务
slingshot jaeger services

# 搜索服务的近期追踪
slingshot jaeger search myservice --limit 10

# 获取完整追踪详情
slingshot jaeger trace abc123def456

# 可视化关键路径
slingshot jaeger trace critical-path abc123def456