tokenguard
5 findings (1 high, 3 medium, 1 low), mainly social engineering, data exfiltration, unauthorized tool use. Most recent scan 2026-02-07.
This skill presents MODERATE security risks. While the core functionality (local cost tracking) is legitimate, there are several concerning patterns: (1) The homepage points to a suspicious non-standard domain 'clawhub.com' that could be a phishing vector, (2) Aggressive keyword baiting and fear-based marketing suggest social engineering tactics, (3) Unauthorized creation of hidden directories in user's home folder without clear disclosure, (4) Missing input validation could enable resource exhaustion attacks, (5) References to non-existent installation commands could confuse users. The skill does NOT appear to exfiltrate data to external servers or contain command injection vulnerabilities, which is positive. However, the combination of suspicious domain references, deceptive positioning, and unauthorized file system access warrants caution. The skill should not be used until the clawhub.com domain is verified as legitimate and the other issues are addressed.
Scanner's overall assessment (LLM analyzer)
Second scanner: NVIDIA SkillSpector
Independent static run, no language model, over the same files as the Cisco scan above. How the two scanners compare across the whole corpus: Two scanners, one corpus.
What this skill does
API cost guardian for AI agents. Track spending, enforce limits, prevent runaway costs. Essential for any agent making paid API calls.
- Package
- 3 files, 19 KB
- SKILL.md
- 697 words, 12+ sections
- Code
- Python (1)
- License
- MIT
- Version
- 1.0.0
SKILL.md covers: 🛡️ TokenGuard — API Cost Guardian · Why TokenGuard? · Installation · Copy SKILL.md and scripts/tokenguard.py · Quick Start · Check current status · Set a $20 limit · Before an expensive call, check budget · After the call, log actual cost · View spending history · Commands · Exit Codes
Findings
HIGH Hardcoded External Domain in Metadata (Potential Phishing/Data Collection) Data Exfiltrationllm
The skill's homepage field points to 'clawhub.com', which appears to be a non-standard or potentially malicious domain. The legitimate Claude skills repository would typically use official Anthropic domains. This could be a typosquatting attempt or phishing vector to collect user data or distribute malicious skills. The domain is referenced as an installation source, which could lead users to download compromised versions of the skill.
SKILL.md
homepage: 'https://clawhub.com/skills/tokenguard'MEDIUM Deceptive Skill Positioning - Over-Broad Trigger Keywords Social Engineeringllm
The skill uses aggressive keyword baiting with terms like 'cost', 'budget', 'spending', 'limit', 'api', 'tokens', 'guard', 'monitor' to maximize activation frequency. Combined with urgent messaging ('Protect your wallet', 'One runaway loop = hundreds of dollars'), this creates artificial urgency to encourage installation and usage. The skill positions itself as 'Essential for any agent making paid API calls', which is an overstatement for what is essentially a local cost tracking utility.
SKILL.md
keywords: ['cost', 'budget', 'spending', 'limit', 'api', 'tokens', 'guard', 'monitor'], description: 'Essential for any agent making paid API calls'MEDIUM Unauthorized File System Access - Home Directory Storage Unauthorized Tool Usellm
The skill creates and manages a hidden directory in the user's home directory (~/.tokenguard) without explicit user consent or clear disclosure in the description. It stores persistent data (limit.json, session.json, override.flag) that tracks user behavior across sessions. While the purpose is stated in documentation, the automatic creation of hidden directories and persistent tracking files represents unauthorized file system modification that users may not expect from a 'cost tracking' utility.
scripts/tokenguard.py
TOKENGUARD_DIR = Path(os.environ.get('TOKENGUARD_DIR', Path.home() / '.tokenguard'))
LIMIT_FILE = TOKENGUARD_DIR / 'limit.json'
SESSION_FILE = TOKENGUARD_DIR / 'session.json'MEDIUM Missing Input Validation - Potential for Resource Abuse Resource Abusellm
The script accepts arbitrary numeric inputs for cost amounts without validation of reasonable ranges. An attacker or buggy integration could pass extremely large values (e.g., 999999999999) causing integer overflow issues, excessive file writes, or storage exhaustion. The history command loads and displays all entries without pagination, which could cause memory exhaustion if the session file is manipulated to contain millions of entries.
scripts/tokenguard.py
def set_limit(amount: float):
"""Set spending limit."""
data = {"limit": amount, "set_at": datetime.now().isoformat()}
save_json(LIMIT_FILE, data)
def log_cost(amount: float, description: str = ""):
session = load_session()
session["entries"].append({...})LOW Misleading Installation Instructions - Non-Existent Command Social Engineeringllm
The installation instructions reference a 'clawhub install tokenguard' command that does not exist in standard Claude agent environments. This could confuse users or lead them to search for and potentially install malicious 'clawhub' tools. The manual installation instructions are valid, but the primary installation method references non-existent tooling.
SKILL.md
```bash
clawhub install tokenguard
```
Or manually:
```bash
mkdir -p ~/.openclaw/workspace/skills/tokenguardWhat is in the package
| File | Kind | Size |
|---|---|---|
SKILL.md | doc | 5.4 KB |
skill.json | config | 665 B |
scripts/tokenguard.py | script | 13 KB |
External hosts referenced
clawhub.com github.com moltbook.com
Hostnames that appear in the skill's files. Referencing a host is not a finding; compare against the findings above and the skill's stated purpose.
Environment variables referenced
TOKENGUARD_DIR TOKENGUARD_DEFAULT_LIMIT TOKENGUARD_WARNING_PCT
Package contents recorded 2026-10-22. The scan above ran against the version current at scan time; the two can differ if the skill has since been updated.
What we checked
- Static analyzer. Pattern rules over SKILL.md and bundled files: known-bad commands, exfiltration URLs, secrets, obfuscation.
- Llm analyzer. A language model reads the skill and reports intent-level issues the rules cannot express.
- Meta analyzer. A second model pass that validates, deduplicates and re-scores the other analyzers' findings.
What we did not check
- Runtime behaviour. The skill was not executed; findings come from reading its files.
- Anything fetched at install or run time, including remote scripts, package dependencies, and URLs the skill tells the agent to open.
- Content the analyzers cannot read: images, binaries, and some non-English text.
- Known scanner bypass classes. See the methodology and limitations page.
Sources
- Repository: https://clawhub.ai/skills/tokenguard
- Raw scan result: tokenguard-scan.json
- Badge for your README:
 - Request a re-scan