Installation Commands
Installation commands manage skill dependencies in your project or globally.tank install
Install a skill from the Tank registry.Examples
Installation Flow
- Resolve version using semver range
- Fetch skill metadata from registry
- Verify permission budget (if defined in
skills.json) - Download tarball from signed URL
- Verify SHA-512 integrity hash
- Extract with security filters
- Update
skills.jsonandskills.lock - Link to installed AI agents (if detected)
Example Output
Options
—global
Install skill globally instead of in current project.~/.tank/skills/ and available to all agents.
Version Resolution
Tank uses semantic versioning (semver) to resolve versions:packages/shared/src/resolver.ts
Install from Lockfile
Runtank install without arguments to install all skills from skills.lock:
Integrity Checks
During installation, Tank verifies tarball integrity:apps/cli/src/commands/install.ts:244
If integrity fails:
- Tampered packages
- Corrupted downloads
- Man-in-the-middle attacks
Security Filters
Tank extracts tarballs with strict security filters:Rejected Entries
- Absolute paths -
/etc/passwd - Path traversal -
../../etc/passwd - Symlinks -
link -> /etc/passwd - Hard links - Physical links to other files
apps/cli/src/commands/install.ts:552
Size Limits
- Max uncompressed size: 100 MB
- Enforced during extraction
Permission Budget
Ifskills.json defines a permission budget, Tank verifies the skill fits within it:
apps/cli/src/commands/install.ts:592
Audit Score Threshold
Set minimum audit score inskills.json:
apps/cli/src/commands/install.ts:216
tank update
Update one or all skills to the latest compatible version.Update Flow
- Read version range from
skills.json - Fetch available versions from registry
- Resolve latest compatible version
- Compare with lockfile version
- If newer version exists, install it
Example Output
Update All
Global Updates
Update globally installed skills:tank remove
Remove a skill from the project.Examples
Removal Flow
- Remove skill from
skills.json - Remove all matching entries from
skills.lock - Unlink from installed agents
- Delete skill directory from
.tank/skills/
Example Output
Global Removal
Errors
Installation Locations
Project Installation
Global Installation
Agent Linking
After installation, Tank automatically links skills to detected agents:- OpenCode
- Cursor
- Windsurf
- Cline
- Continue
Lockfile Format
Theskills.lock file ensures deterministic installs:
Key Properties
- resolved - Download URL (signed, time-limited)
- integrity - SHA-512 hash for verification
- permissions - Declared permissions from manifest
- audit_score - Security score (0-10, null if pending)
Determinism
- Keys are sorted alphabetically
- Trailing newline enforced
- Consistent indentation (2 spaces)
Troubleshooting
Network Errors
~/.tank/config.json.
Permission Budget Violation
permissions.subprocess in skills.json or choose a different skill.
Audit Score Too Low
audit.min_score in skills.json or contact skill author to address security issues.
Skill Not Found
- Verify skill name is correct
- Run
tank loginif private skill - Check organization membership for scoped packages