dbs-install-skill: Multi-Agent Skill Installation and Synchronization
Install any Skill source directory containing
, or a collection directory containing multiple Skill subdirectories, to Agents already present on the local machine.
Users always use the same command. The script automatically selects the public entry or exclusive entry, so users don't need to judge the host type or add mode parameters.
Automatic Routing
Public Entry
The script always creates symbolic links for Skills in:
- General Agents:
~/.agents/skills/<skill-name>
The following clients can read this public entry, so their exclusive directories are no longer written to:
- Codex;
- GitHub Copilot;
- Gemini CLI;
- Cursor;
- Augment;
- Roo Code;
- OpenCode;
- OpenHands.
The same Skill will not appear in both
and the exclusive directories of the above clients. This avoids duplicate display in clients like Codex.
Exclusive Entries
The following clients currently still use exclusive directories. The script only creates symbolic links if the corresponding home directory already exists:
- Claude Code:
~/.claude/skills/<skill-name>
;
- WorkBuddy:
~/.workbuddy/skills/<skill-name>
;
- Hermes Agent:
~/.hermes/skills/<skill-name>
;
- Kiro:
~/.kiro/skills/<skill-name>
;
- Qwen Code:
~/.qwen/skills/<skill-name>
;
- Cline:
~/.cline/skills/<skill-name>
.
Grok Thin Adaptation Layer
When
exists on the local machine, the script generates:
~/.grok/skills/<skill-name>/SKILL.md
This file must contain
and point to the actual source
.
Automatic Cleanup
Every time
is executed, the script simultaneously handles historical remnants:
- Delete redundant symbolic links pointing to the same actual source in the exclusive directories of public entry-compatible clients;
- Delete symbolic links for hosts that were written by old versions of the script and are no longer maintained;
- Delete old aliases pointing to the same actual source in the same host where the standardized name already exists;
- When installing a collection, delete broken symbolic links and Grok adaptation layers pointing to invalid source directories within the collection;
- Keep real directories, real files, and symbolic links pointing to other sources, and report conflicts;
- Do not delete the source Skill.
Core Principles
- One public entry point. Clients that support the general Agents directory uniformly read from .
- Add exclusive entries only when necessary. Create symbolic links only for clients that still rely on native directories.
- Users don't need to select modes. The script does not require users to provide routing parameters.
- Only one copy for public-compatible clients. Clients like Codex cannot have both public and exclusive entries.
- All hosts use only symbolic links. Grok is the only host that uses a thin adaptation layer.
- Do not create non-existent Agent home directories. is the public installation entry and can be created by the script; skip other Agent home directories if they do not exist.
- Do not overwrite real directories. If a real directory or file already exists at the target location, keep it and report it.
- Uninstall only deletes derived products. only removes symbolic links pointing to the specified actual source, as well as Grok adaptation layers generated by this tool.
- Prioritize using the script. Use the included with this Skill; do not rewrite installation commands on the fly.
Identify Source Skill
Users may provide:
- Skill name: ;
- Relative path: ;
- Absolute path:
/Users/.../dbskill/skills/dbs-hook
;
- External Skill:
/Users/.../external-skills/lark-doc
;
- Skill collection directory:
/Users/.../dbskill/skills
;
- The Skill that was just created or modified in the current context.
Determine the source by the following priority:
- If the user provides an absolute path, use it directly;
- If the user provides a relative path, first resolve it based on the current working directory, then based on the dbskill repository root directory;
- If the user only provides a Skill name, first check the current working directory, then check in the dbskill repository;
- If the user only says "this Skill", use the Skill that was just created, renamed, or discussed in the current conversation;
- If still uncertain, check the most recently modified Skill in the current working directory and the repository's directory;
- If still unable to determine, ask only one question:
Which Skill to install? Give me the Skill name or path.
The source directory must meet one of the following conditions:
- The directory itself contains ;
- One or more of the directory's first-level subdirectories contain .
Execute Installation
Run in the dbskill repository root directory:
bash
skills/dbs-install-skill/scripts/install-skill.sh link <skill-name-or-path>
Examples:
bash
skills/dbs-install-skill/scripts/install-skill.sh link dbs-hook
skills/dbs-install-skill/scripts/install-skill.sh link skills/my-custom-skill
skills/dbs-install-skill/scripts/install-skill.sh link skills
skills/dbs-install-skill/scripts/install-skill.sh link "/absolute/path/to/skill"
skills/dbs-install-skill/scripts/install-skill.sh link "/Users/me/external-skills"
After execution, report the results of public entries, exclusive entries, Grok adaptation layers, and redundancy cleanup based on the script output.
Check Status
Run the following when users ask "Is it installed?", "Are there duplicates?", or "Check installation status":
bash
skills/dbs-install-skill/scripts/install-skill.sh status <skill-name-or-path>
When the status is normal, the script must output:
text
✓ No redundant entries found
If there are still symbolic links from the same source in the exclusive directories of public-compatible clients, the status returns failure and reports:
text
✗ Redundant entries found: <target> -> <source>
Uninstall Skill
Run the following when users say "Uninstall Skill", "Cancel installation", or "unlink":
bash
skills/dbs-install-skill/scripts/install-skill.sh unlink <skill-name-or-path>
After completion, inform the user: The source Skill has not been deleted; only derived products such as public entries, exclusive entries, and Grok adaptation layers have been removed.
Output Specifications
After installation, report briefly:
markdown
Installed `<skill-name>`:
- Public entry: `~/.agents/skills/<skill-name>`;
- Exclusive entries: Only written to Agents that are installed locally and still require exclusive directories;
- Grok: `~/.grok/skills/<skill-name>/SKILL.md` (if present locally);
- Deduplication: Historical redundant symbolic links pointing to the same actual source have been cleaned up.
When encountering real directories or other sources:
markdown
Retained `<target-path>` because it is a real directory, real file, or points to another source. Please manually confirm before processing.
Self-Check
Confirm the following before and after each execution:
- The source directory exists;
- The source directory contains , or its first-level subdirectories contain ;
- External paths use absolute paths or can be resolved from the current working directory;
- is the public standard entry;
- There are no symbolic links from the same source in the exclusive directories of public-compatible clients like Codex;
- If the target location for exclusive hosts exists, it must be a symbolic link to allow updates;
- If the Grok target location exists, it must be a Grok adaptation layer generated by this tool to allow updates;
- Real directories, real files, and symbolic links from other sources are not deleted;
- The source directory is not deleted;
- and are not read, copied, staged, or installed.
End directly after completing the current task. Only when the user explicitly asks about the next step and
is already installed in the current environment, briefly prompt: "If you're unsure about the next step, you can enter
."