The Tank CLI provides 19 commands for publishing, installing, and managing AI agent skills with security-first design.
Installation
npm install -g @tankpkg/cli
Global Options
All commands support these options:
| Option | Description |
|---|---|
-h, --help | Display help for the command |
-V, --version | Display the CLI version |
tank init
Create a new tank.json in the current directory
tank init
Options
| Flag | Description |
|---|---|
-y, --yes | Skip prompts, use defaults |
--name <name> | Skill name |
--skill-version <version> | Skill version (default: 0.1.0) |
--description <desc> | Skill description |
--private | Make skill private |
--force | Overwrite existing tank.json |
tank login
Authenticate with the Tank registry via browser
tank login
tank whoami
Show the currently logged-in user
tank whoami
tank logout
Remove authentication token from config
tank logout
tank publish
Pack and publish a skill to the Tank registry
Aliases: pub
tank publish
Options
| Flag | Description |
| --------------------- | ----------------------------------- | -------- |
| --dry-run | Validate and pack without uploading |
| --private | Publish skill as private |
| --visibility <mode> | Skill visibility (public | private) |
tank install
Install a skill from the Tank registry, or all skills from lockfile
Aliases: i
tank install [name] [version-range]
Arguments
| Name | Description | Required |
|---|---|---|
name | Skill name (e.g., @org/skill-name). Omit to install from lockfile. | No |
version-range | Semver range (default: *) | No |
Options
| Flag | Description |
|---|---|
-g, --global | Install skill globally (available to all projects) |
tank remove
Remove an installed skill
Aliases: rm, r
tank remove <name>
Arguments
| Name | Description | Required |
|---|---|---|
name | Skill name (e.g., @org/skill-name) | Yes |
Options
| Flag | Description |
|---|---|
-g, --global | Remove a globally installed skill |
tank update
Update skills to latest versions within their ranges
Aliases: up
tank update [name]
Arguments
| Name | Description | Required |
|---|---|---|
name | Skill name to update (omit to update all) | No |
Options
| Flag | Description |
|---|---|
-g, --global | Update globally installed skills |
tank verify
Verify installed skills match the lockfile
tank verify
tank permissions
Display resolved permission summary for installed skills
Aliases: perms
tank permissions
tank search
Search for skills in the Tank registry
Aliases: s
tank search <query>
Arguments
| Name | Description | Required |
|---|---|---|
query | Search query | Yes |
tank info
Show detailed information about a skill
Aliases: show
tank info <name>
Arguments
| Name | Description | Required |
|---|---|---|
name | Skill name (e.g., @org/skill-name) | Yes |
tank audit
Display security audit results for installed skills
tank audit [name]
Arguments
| Name | Description | Required |
|---|---|---|
name | Skill name to audit (omit to audit all) | No |
tank scan
Scan a local skill for security issues without publishing
tank scan
Options
| Flag | Description |
|---|---|
-d, --directory <path> | Directory to scan (default: current directory) |
tank link
Link current skill directory to AI agent directories (for development)
Aliases: ln
tank link
tank unlink
Remove skill symlinks from AI agent directories
tank unlink
tank doctor
Diagnose agent integration health
tank doctor
tank migrate
Migrate skills.json → tank.json and skills.lock → tank.lock
tank migrate
tank upgrade
Update tank to the latest version
tank upgrade [version]
Arguments
| Name | Description | Required |
|---|---|---|
version | Target version (default: latest) | No |
Options
| Flag | Description |
|---|---|
--dry-run | Check for updates without installing |
--force | Reinstall even if already on the target version |
Quick Reference
| Command | Alias(es) | Description |
|---|---|---|
tank init | — | Create a new tank.json in the current directory |
tank login | — | Authenticate with the Tank registry via browser |
tank whoami | — | Show the currently logged-in user |
tank logout | — | Remove authentication token from config |
tank publish | pub | Pack and publish a skill to the Tank registry |
tank install | i | Install a skill from the Tank registry, or all skills from lockfile |
tank remove | rm, r | Remove an installed skill |
tank update | up | Update skills to latest versions within their ranges |
tank verify | — | Verify installed skills match the lockfile |
tank permissions | perms | Display resolved permission summary for installed skills |
tank search | s | Search for skills in the Tank registry |
tank info | show | Show detailed information about a skill |
tank audit | — | Display security audit results for installed skills |
tank scan | — | Scan a local skill for security issues without publishing |
tank link | ln | Link current skill directory to AI agent directories (for development) |
tank unlink | — | Remove skill symlinks from AI agent directories |
tank doctor | — | Diagnose agent integration health |
tank migrate | — | Migrate skills.json → tank.json and skills.lock → tank.lock |
tank upgrade | — | Update tank to the latest version |
Environment Variables
| Variable | Description |
|---|---|
TANK_TOKEN | API token — overrides ~/.tank/config.json (used in CI/CD) |
TANK_DEBUG=1 | Enable debug logging (pino → Loki structured logs) |
REGISTRY_URL | Override the default registry URL |
Configuration Files
| File | Purpose |
|---|---|
~/.tank/config.json | Auth token and registry URL (permissions: 0600) |
tank.json | Project manifest — skill metadata, dependencies, and permission budget |
tank.lock | Deterministic lockfile — pinned versions with SHA-512 hashes |
Exit Codes
| Code | Meaning |
|---|---|
0 | Success |
1 | General error (invalid arguments, network failure, auth error) |
2 | Security check failed (tank verify, tank audit, or tank scan with a FAIL verdict) |