dotai is a CLI for agent skill management. It helps you discover, install, update, and remove reusable skills so teams can share them consistently across projects.
It can discover skills from local directories or git-backed sources, install them into local or global .agents/skills directories, record provenance in a lock file, and later update or uninstall what was installed.
- discovers skills from a source repo or directory
- installs selected skills plus dependency skills
- hides
internalhelper skills from normal operator prompts - records install provenance in
dotai-lock.json - updates installed skills from their recorded sources
- supports local installs and
--globalinstalls
Each skill is a directory containing a SKILL.md file with YAML frontmatter:
---
name: alpha
description: Example skill
metadata:
dependencies:
- helper
internal: false
---dotai searches the source root, skills/, skills/.curated/, skills/.experimental/, skills/.system/, and .agents/skills/.
dotai runs on Bun. In a repo checkout:
bun install
bun run cli -- --helpYou can also invoke the entrypoint directly:
bun run src/cli/main.ts --helpWhen installed as a package, the binary name is dotai.
For local PATH testing with Bun's global link:
bun link
dotai --helpbun link creates a linked dotai binary that points at the CLI entrypoint. If dotai --help fails while bun run cli -- --help works, verify that Bun is installed and available on your PATH.
Examples:
dotai skills list
dotai skills discover ./skills-source
dotai skills install ./skills-source alpha beta
dotai skills update
dotai skills uninstall alpha
dotai skills list --globalIf install, update, or uninstall is run without a skill name, dotai prompts for a selection.
Supported source locators include:
- local paths
file://URLsgithub:owner/repo[#ref]gitlab:owner/repo[#ref]- SSH and git repository URLs
Git must be available for git-backed sources.
- local skills:
.agents/skills/ - local lock file:
dotai-lock.json - global skills:
~/.agents/skills/ - global lock file:
~/.agents/.dotai-lock.json
bun install
bun run checkRuntime notes:
- the linked
dotaiCLI expects Bun at runtime noderemains part of the tooling contract for this repository, but the CLI entrypoint itself is Bun-based