Tool Packs and Installed Assets
This page covers CLI commands that manage bundled OAT tool packs and installed OAT skill/agent assets in canonical directories.
Quick Look
- What it does: explains how bundled OAT packs are installed, updated, inspected, and removed.
- When to use it: when you need to add capabilities to a repo, update installed skills, or understand which packs own which tools.
- Primary commands:
oat tools list,oat tools install,oat tools update,oat tools remove
Bundled packs at a glance
core- foundational diagnostics and docs access (oat-doctor,oat-docs)docs- docs and agent-instructions governance workflowsworkflows- project lifecycle skills, reviewer agents, and core project templatesideas- lightweight ideation and promotion flowsutility- review and repo-maintenance helpersproject-management- file-backed backlog/reference skills plus backlog and roadmap templatesresearch- research, analysis, comparison, and synthesis skills
oat tools command group
The oat tools command group provides a unified interface for managing installed tools (skills and agents) across scopes.
oat tools list
Purpose:
- List all installed tools with version, pack membership, scope, and update status
Key behavior:
- Scans installed skills and agents across project and user scopes
- Displays version, pack (
core,docs,ideas,workflows,utility,project-management,research,custom), and status (current,outdated,newer,not-bundled) - Supports
--scopefiltering and--jsonoutput
oat tools outdated
Purpose:
- Show only tools that have available updates (status
outdated)
Key behavior:
- Filters scan results to tools where the installed version is older than the bundled version
- Displays installed and available versions side by side
- Supports
--scopefiltering and--jsonoutput
oat tools info <name>
Purpose:
- Show detailed information about a single installed tool
Key behavior:
- Displays name, type (skill/agent), version, bundled version, pack, scope, and status
- Reports whether the tool is invocable (for skills) and whether an update is available
- Returns exit code 1 if the tool is not found in any scope
oat tools install
Purpose:
- Install bundled OAT tool packs (
core,docs,ideas,workflows,utility,project-management,research)
Key behavior:
- Same pack selection and install flow as
oat init tools - Pack-oriented install subcommands:
core,docs,ideas,workflows,utility,project-management,research - Tracks installed vs bundled skill versions and reports outdated skills
- Records installed pack state in shared repo config as
tools.<pack>: trueso other OAT workflows can detect installed capabilities without relying on filesystem heuristics - Interactive runs can prompt to update selected outdated skills
- Auto-sync runs automatically after successful install (provider views are updated)
- Use
--no-syncto skip auto-sync
oat tools update
Purpose:
- Update installed tools to the latest bundled versions
Key behavior:
- Accepts a tool name,
--pack <pack>, or--all(mutually exclusive) - Compares installed versions against bundled versions and copies updated assets
- For
--pack <pack>and--all, an already-installed pack is reconciled to include newly added bundled skills or agents in that same scope - For
--pack <pack>and--all, shared repo config is also reconciled from an installed-pack scan sotools.*reflects what is actually available and staletrueflags are cleared - Dry-run mode with
--dry-run; auto-sync after mutations by default - Use
--no-syncto skip auto-sync - Reports tools that are already current, newer than bundled, or not bundled (custom)
oat tools remove
Purpose:
- Remove installed tools (skills and agents)
Key behavior:
- Accepts a tool name,
--pack <pack>, or--all(mutually exclusive) - Removes skill directories and agent
.mdfiles from canonical locations - For
--pack <pack>and--all, shared repo config is rewritten from a post-removal scan sotools.<pack>becomesfalsewhen a pack is no longer installed in any scope - Dry-run mode with
--dry-run; auto-sync after mutations by default - Use
--no-syncto skip auto-sync
Shared config signal: tools.*
Tool-pack lifecycle commands now persist pack availability in shared repo config under .oat/config.json.
oat tools install <pack>writestools.<pack>: trueoat tools update --pack <pack>andoat tools update --allrebuild the fulltoolsmap from installed-pack scansoat tools remove --pack <pack>andoat tools remove --allrebuild the same map after removals
This matters because other workflows can now check oat config get tools.<pack> instead of inferring capabilities from directory existence alone. For example, oat-project-document checks tools.project-management before auto-running repo-reference refresh work.
Core pack
The core pack contains foundational diagnostic and documentation skills:
- oat-doctor — Setup diagnostics with two modes: check mode (terse
brew doctor-style warnings with fix commands) and summary mode (full dashboard of installed packs, config values, and sync status). - oat-docs — Interactive Q&A skill backed by locally-bundled OAT documentation at
~/.oat/docs/.
Key behavior:
- Core pack always installs at user scope (
~/.agents/skills/), regardless of the--scopeflag. This ensures core skills are available in any directory. - Core is checked by default in the
oat init toolsguided setup. - Installation also bundles OAT documentation to
~/.oat/docs/for the oat-docs skill. oat tools update --pack corerefreshes both skills and~/.oat/docs/documentation.oat tools update --allalso refreshes~/.oat/docs/when an installed core pack is reconciled.
Docs pack
The docs pack contains active documentation and instruction-governance
workflows:
- oat-docs-analyze — Analyze a docs surface for contract coverage, nav drift, stale claims, and coverage gaps.
- oat-docs-apply — Apply only approved, evidence-backed docs-analysis recommendations.
- oat-agent-instructions-analyze — Evaluate
AGENTS.mdand provider instruction coverage, quality, and drift. - oat-agent-instructions-apply — Generate or update approved instruction files from an analysis artifact.
Key behavior:
- Docs pack installs at the selected scope, typically
project. - It complements the
corepack:oat-docsanswers questions from bundled docs, while thedocspack adds analyze/apply workflows. oat tools install docsis the preferred install path;oat init tools docsremains available for backward compatibility.oat tools update --pack docsandoat tools remove --pack docsmanage the workflow skills as a unit.
Auto-sync behavior
All mutation commands (install, update, remove) automatically run oat sync --scope <scope> after successful operations. This ensures provider views stay in sync with canonical assets without manual intervention.
Use --no-sync on any mutation command to skip this step.
Legacy commands
oat init tools
The oat init tools command remains available for backward compatibility. It has the same install behavior as oat tools install but does not include auto-sync — you must run oat sync --scope ... manually after install.
oat remove
The oat remove command group remains available for backward compatibility. It provides skill removal with dry-run/apply semantics and managed provider-view cleanup.
oat remove skill <name>— remove one installed skill by nameoat remove skills --pack <pack>— remove all installed skills from a bundled pack
These commands mutate by default; use --dry-run to preview deletions.
Related docs:
- Bootstrap (
oat init):bootstrap.md - Provider sync (
oat status,oat sync,oat providers ...):../provider-sync/index.md - Diagnostics and local-state commands:
config-and-local-state.md