Documentation Index
Fetch the complete documentation index at: https://mintlify.com/tankpkg/tank/llms.txt
Use this file to discover all available pages before exploring further.
Security Commands
Security commands help you verify skill integrity, inspect permissions, and review security scan results.tank verify
Verify that installed skills match the lockfile.Verification Flow
- Read
skills.lockin current directory - For each skill entry:
- Parse skill name from lock key
- Check that skill directory exists in
.tank/skills/ - Verify directory is not empty
- Report any mismatches or missing files
Example Output
All verified:Use Cases
- Verify installation - Ensure
tank installcompleted successfully - Detect tampering - Check if skill files were modified or deleted
- CI/CD checks - Verify lockfile matches installed state
- Troubleshooting - Diagnose missing or corrupt skill files
When to Run
tank permissions
Display resolved permissions for all installed skills.Example Output
Budget Violations
If permissions exceed the budget:No Budget Defined
Ifskills.json doesn’t define a permission budget:
skills.json:
Permission Budget Rules
Network (Outbound)
Define allowed domains with wildcard support:*.example.commatchesapi.example.com,sub.example.com- Does NOT match
example.com(apex) - Does NOT match
malicious.com
Filesystem (Read/Write)
Define allowed paths with glob support:./data/**matches./data/file.txt,./data/sub/file.txt- Exact paths must match exactly
- Relative paths only (no absolute paths)
Subprocess
Boolean flag for subprocess execution:tank audit
Display security audit results for installed skills.Audit All Skills
Audit Single Skill
Audit Scores
Scores range from 0-10:- 7.0-10.0 - Pass (green)
- 4.0-6.9 - Pass with notes (yellow)
- 0.0-3.9 - Issues found (red)
Audit Status
- completed - Analysis finished, score available
- pending - Queued for analysis
- error - Analysis failed (contact support)
Pending Analysis
Newly published skills may show pending status:- Small skills (<100 KB): 1-2 minutes
- Medium skills (100KB-1MB): 2-5 minutes
- Large skills (1MB-50MB): 5-15 minutes
Security Scan Pipeline
Tank uses a 6-stage security scanner:Stage 0: Ingest
- Compute file hashes
- Detect file types
- Extract metadata
Stage 1: Structure
- Analyze directory structure
- Check for suspicious patterns (node_modules, .git, etc.)
- Validate skill.json schema
Stage 2: Static Analysis
- Parse AST (abstract syntax tree)
- Detect dangerous functions (eval, exec, spawn)
- Check code complexity
Stage 3: Injection
- Detect prompt injection attempts
- Check for SQL injection patterns
- Identify command injection risks
Stage 4: Secrets
- Scan for hardcoded credentials
- Detect API keys, tokens, passwords
- Check for PII (personally identifiable information)
Stage 5: Supply Chain
- Analyze dependencies
- Check for known vulnerabilities
- Verify package integrity
Verdict Rules
python-api/lib/scan/stage5_verdict.py
Audit Score Calculation
The audit score is computed from finding severity:Example
- 0 critical, 2 high, 5 medium, 10 low
10.0 - (2 * 1.0) - (5 * 0.3) - (10 * 0.1) = 10.0 - 2.0 - 1.5 - 1.0 = 5.5
Setting Minimum Audit Score
Prevent installation of low-scoring skills:tank install:
Viewing Detailed Findings
To view detailed security findings, use the Tank web interface:- All findings with severity and category
- Source code snippets with line numbers
- Remediation suggestions
- SARIF export for IDE integration
CI/CD Integration
GitHub Actions
Best Practices
-
Always verify after install
-
Define permission budget early
- Add
permissionstoskills.jsonbefore installing skills - Start strict, relax only when needed
- Add
-
Set minimum audit score
-
Review permissions regularly
-
Audit before production
-
Use lockfiles in version control
- Commit
skills.lockto git - Ensures team uses same versions
- Enables integrity verification
- Commit
Troubleshooting
Verify: No lockfile
tank install to create lockfile.
Permissions: Budget violation
permissions.network.outbound in skills.json:
Audit: Pending analysis
tank audit again.