概览
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-level | warn | 日志级别: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_idslingshot draft update article.html— 更新已有草稿,通过 sidecar YAML 自动检测media_idthumb_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(默认)或 zine | zine |
- 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-zine | Zine 站点管理(多语言、模板、版本管理) |
incus | Incus 容器生命周期管理,用于测试 |
示例:
# 列出可用技能包
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
工作流:
slingshot i18n sync— 扫描 Go 源码中的i18n.G()调用,同步 en_US .po 文件。新字符串以空翻译传播到所有其他语言环境。slingshot i18n check <locale>— 识别语言环境中的缺失、未翻译和孤立条目。CI 流水线中使用--exit-code。slingshot i18n show <locale> <id>— 按 ID 查看特定未翻译条目的完整详情(ID 是check命令显示的数字)。slingshot i18n translate <locale> --msgid "<msgid>" --msgstr "<翻译>"— 为单个条目设置翻译,正确处理 .po 转义。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_HOST | http://localhost:16686 | Jaeger 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