Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add ooooooooooooooooooop/agent-tools --skill dsh-config-syncgit clone --depth 1 https://github.com/ooooooooooooooooooop/agent-toolsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ooooooooooooooooooop/agent-tools/dsh-config-sync)<a href="https://agentmods.dev/skills/ooooooooooooooooooop/agent-tools/dsh-config-sync"><img src="https://agentmods.dev/badge/skills/ooooooooooooooooooop/agent-tools/dsh-config-sync/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ooooooooooooooooooop/agent-tools/dsh-config-sync"><img src="https://agentmods.dev/badge/skills/ooooooooooooooooooop/agent-tools/dsh-config-sync.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00098 | $0.01809 |
| Opus 5.5 | $0.00039 | $0.00724 |
| Sonnet 5.5 | $0.00020 | $0.00362 |
| Haiku 4.5 | $0.00010 | $0.00181 |
Grade A, and why
dsh-config-sync scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 93 lines — stays where its author put it; the contents beside it link to each section on GitHub.
DSH 配置同步(dsh-config-sync)
使用场景
当你想在另一台设备上复用本机的 DSH 用户配置,或把当前配置生成一份可追溯的脱敏归档时触发。它负责 ~/.dsh/ 下配置类文件(偏好、模型路由、预设)的安全打包与恢复。
职责边界很重要:技能栈的同步交给 environment-bootstrap,本 skill 只管 DSH 配置本体。
纳入与排除清单
对 $DSH_HOME(默认为 ~/.dsh,可用 $env:DSH_HOME 覆盖)做如下归类:
| 路径 | 类型 | 处理 |
|---|---|---|
AGENTS.md |
文件 | ✅ 纳入(用户全局偏好,纯文本无敏感) |
settings.yaml |
文件 | ✅ 纳入(仅含 provider/model 与 apiKeyEnv 环境变量名,无明文密钥) |
profiles/ |
目录 | ⚠️ 可选(需显式指定才纳入) |
.agent-presets/ |
目录 | ⚠️ 可选 |
patches/ |
目录 | ⚠️ 可选 |
.credentials.yaml |
文件 | ❌ 强制排除(真实凭据,打进公开仓库即泄密) |
sessions/storages/` |
目录 | ❌ 强制排除(运行时态,仓库硬约束禁止) |
skills/ |
目录 | ⛔ 不归本 skill,交给 environment-bootstrap |
安全边界
- 凭据绝不出包:
.credentials.yaml和任何可能含明文密钥的路径,打包含前必须显式排除并由校验确认不存在。 - settings.yaml 只携带环境变量引用:
apiKeyEnv: BAI_API_KEY这样的条目是“环境变量名”,换设备时由目标端设置同名环境变量即可,不在包内放任何密钥值。 - 不通过恢复删除目标端额外文件;旧/未登记的配置文件应单独审查。
- 不隐式安装插件、MCP、包、hooks 或全局配置。
- 不以旧目标文件、stdout 或 apply exit code 单独作为成功证据。
- 回滚应从已知稳定归档/提交重新复制,不使用递归删除。
模板渲染(跨设备路径适配)
导出时加 --template 自动将已知设备路径替换为占位符,恢复时渲染回目标设备值:
| 占位符 | 替换场景 | 示例 |
|---|---|---|
{{DSH_HOME}} |
~/.dsh 目录下的任何路径 |
C:\Users\<user>\.dsh\profiles\web → {{DSH_HOME}}\profiles\web |
{{DESKTOP}} |
桌面路径(含 Windows 双反斜杠形式) | C:\Users\<user>\Desktop\work → {{DESKTOP}}\work |
{{HOME}} |
用户主目录 | C:\Users\<user>\ → {{HOME}}\ |
替换顺序按最长优先,防止嵌套路径(如
{{DSH_HOME}}在{{HOME}}之前替换)。恢复时同步处理 Windows 双反斜杠路径。--with-optional导出profiles/或.agent-presets/时模板渲染尤其有用,因为这些目录常含设备绝对路径。特殊自定义路径(如非标准布局的C:\Desktop\)需手动模板化后按{{DSH_HOME}}/{{HOME}}同样处理。
打包(export)
- 确认源
$DSH_HOME存在,并解析其真实路径。 - 按“纳入/排除清单”收集要打包的配置项;
.credentials.yaml、sessions/、storages/无论是否显式指定都强制排除。 - 可选:
--with-optional额外纳入profiles/、.agent-presets/、patches/目录中的文件。 - 在仓库内建立一个脱敏架构录(例如
dsh-config/或打包器输出目录),把每个纳入路径复制进去。复制后跑一次敏感扫描:若发现apiKeyEnv之外的疑似密钥、.credentials.yaml或运行时文件,把该包标为 FAIL 并停止。 - 可选:
--template把已知设备路径(~/.dsh、桌面、主目录)替换为{{DSH_HOME}}/{{DESKTOP}}/{{HOME}}占位符,使包可跨设备复用。渲染后的文件 SHA-256 记录在 manifest 中,恢复时跳过 SHA 校验(因为内容会因设备而异)。 - 为每个文件计算 SHA-256,生成
manifest.json(含路径、版本号、SHA-256、打包时间、模板渲染记录)。 - 报告:源路径、纳入项、排除项、SHA-256、敏感扫描结果、模板化文件列表。只有扫描干净才报
PASS。
What ships with it
4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 93 lines · 98 tokens per session scan A 6b694b277989
dsh-config-sync is a skill published in the GitHub repository ooooooooooooooooooop/agent-tools (3 stars, last pushed 1mo ago), licensed MIT. It adds 98 tokens to every session and 1,809 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
analyze
Analyze a legacy app in any language before rewriting it in Elixir: inventory, features as goals, why each mechanism exists, runtime topology, external contracts. Use to start or refresh a rewrite.
session-deep-dive
Deep qualitative analysis of high-signal sessions. Spawns subagents with v2 template, synthesizes patterns, compares against known findings. Use after /session-scan.
brainstorm
Brainstorm Elixir/Phoenix features — explore ideas, compare approaches, gather requirements. Use when vague idea, not sure how to approach, or want to discuss before plan.
plugin-dev-workflow
Guide plugin development workflow — editing skills, agents, hooks, or eval framework in this repo. Use when modifying files in plugins/elixir-phoenix/, lab/eval/, or lab/autoresearch/. Ensures changes pass eval, lint, and tests before committing.
elixir-idioms
OTP/BEAM patterns and Elixir idioms — GenServer, Supervisor, Task, Registry, pattern matching, with chains, pipes. Use when designing processes or debugging BEAM issues.
tidewave-integration
Tidewave MCP runtime tools — debugging, smoke testing, live state inspection, SQL queries, hex docs. Use when evaluating code in a running Phoenix app.