Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Monkeytype Tracker and Advisor

Track and analyze Monkeytype typing statistics with improvement tips. Use when user mentions "monkeytype", "typing stats", "typing speed", "WPM", "typing practice", "typing progress", or wants to check their typing performance. Features on-demand stats, test history analysis, personal bests, progress comparison, leaderboard lookup, and optional automated reports. Requires user's Monkeytype ApeKey for API access.

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 1.5k · 0 current installs · 0 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
!
Purpose & Capability
The registry metadata declares no required environment variables or primary credential, but both the SKILL.md and the included Python script expect and use a Monkeytype API key (MONKEYTYPE_APE_KEY or a workspace config file). The skill legitimately needs an ApeKey for its stated purpose, so the registry metadata omission is an inconsistency and should have declared a primary credential.
!
Instruction Scope
SKILL.md instructs the agent to ask the user to paste their ApeKey into chat and/or save it into ~/.openclaw/workspace/config/monkeytype.json; it also tells the agent to create cron jobs for automated reports. Asking users to send secrets in conversation and instructing persistent system changes (cron) go beyond simple read-only queries to the Monkeytype API and expand the security surface.
Install Mechanism
There is no install spec (instruction-only + a small Python script). No downloads or external install steps are present, which keeps install risk low.
!
Credentials
The skill requires the user's ApeKey (a secret) but the registry failed to declare it. The SKILL.md and script use MONKEYTYPE_APE_KEY and write the key to a plaintext JSON config in the user's workspace. Storing API keys in plaintext and encouraging the user to paste a key into chat are disproportionate exposure risks even if the key is necessary for functionality.
!
Persistence & Privilege
The skill writes a workspace config file and a cache file, and the instructions propose creating cron jobs for automated reports (persistent, scheduled execution). While always:true is not set, scheduled automation would grant ongoing system presence and should be enabled only with explicit user consent and understanding of where secrets will be stored.
What to consider before installing
This skill appears to do what it says (fetch Monkeytype stats) but has several mismatches and risky instructions you should consider before installing: - Registry vs code mismatch: The skill actually needs an ApeKey (MONKEYTYPE_APE_KEY) but the published metadata does not declare this. Treat that as a red flag and ask the publisher to correct the manifest. - Secret handling: The SKILL.md asks users to paste their ApeKey into chat and/or save it into ~/.openclaw/workspace/config/monkeytype.json (plain JSON). Prefer setting the MONKEYTYPE_APE_KEY environment variable locally instead of sending it in chat. If you must provide a key, do not paste it into an untrusted conversation and be aware the key will be stored in plaintext in your workspace config. - Automations/crons: The instructions propose creating cron jobs for automated reports. Enabling scheduled runs gives the skill ongoing execution rights. Only enable automations if you trust the code and understand where secrets and outputs will be stored. - Review the code yourself or run it in an isolated environment: The included Python script is short and calls only api.monkeytype.com, but you should review it (or run it in a sandbox) before allowing scheduled runs or before storing your ApeKey on disk. - Minimum steps to mitigate risks: 1) Ask the publisher to update the registry manifest to declare the ApeKey requirement. 2) Prefer setting MONKEYTYPE_APE_KEY as an environment variable rather than pasting in chat or writing a plaintext config file. 3) If you enable automations, inspect and limit the cron job's permissions and ensure the key stored has only the necessary scope on Monkeytype. 4) If unsure, decline automated reports and use only on-demand commands after setting the env var locally. If you want, I can produce suggested safer setup text to replace the SKILL.md prompts (for example: a warning not to paste secrets in chat, and explicit instructions to set the env var instead of writing plaintext files).

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.1.0
Download zip
latestvk970vjq3mp49j20xt23pxhhkbs80j0qd

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

Monkeytype Tracker

Track your Monkeytype typing statistics and get personalized improvement tips.

Pre-Flight Check (ALWAYS DO THIS FIRST)

Before running ANY command, check if setup is complete:

Security Priority:

  1. Environment variable (most secure): MONKEYTYPE_APE_KEY
  2. Config file fallback: ~/.openclaw/workspace/config/monkeytype.json
# Check environment variable first
ape_key = os.getenv('MONKEYTYPE_APE_KEY')
if not ape_key:
    # Check config exists and has valid key
    config_path = Path.home() / ".openclaw" / "workspace" / "config" / "monkeytype.json"

If no env var AND no config: → Run Setup Flow (Step 1) If apeKey exists but API returns 471 "inactive": → Tell user to activate the key (checkbox) If apeKey works: → Proceed with command

Setup Flow (3 Steps)

Step 1: Get ApeKey

Send this message:

Hey! 👋 I see you want to track your Monkeytype stats. I'll need your API key to get started.

**🔑 How to get it:**
1. Go to monkeytype.com → **Account Settings** (click your profile icon)
2. Select **"Ape Keys"** from the left sidebar
3. Click **"Generate new key"**
4. ⚠️ **Activate it:** Check the checkbox next to your new key (keys are inactive by default!)
5. Copy the key and send it to me

Once you share the key, I'll ask about automation preferences 🤖

---

🔒 **Prefer to add it manually?** No problem!

**Option 1: Environment Variable (Recommended - Most Secure)**
Set in your system:
- Windows (PowerShell): `$env:MONKEYTYPE_APE_KEY="YOUR_KEY_HERE"`
- Linux/Mac: `export MONKEYTYPE_APE_KEY="YOUR_KEY_HERE"`

**Option 2: Config File**
Create this file: `~/.openclaw/workspace/config/monkeytype.json`
With this content:
{
  "apeKey": "YOUR_KEY_HERE"
}

Then just say "monkeytype stats" and I'll take it from there!

After receiving key:

  1. Save to ~/.openclaw/workspace/config/monkeytype.json:
{
  "apeKey": "USER_KEY_HERE",
  "automations": {
    "dailyReport": false,
    "weeklyReport": false,
    "reportTime": "20:00"
  }
}
  1. Test the key immediately by running python scripts/monkeytype_stats.py stats
  2. If 471 error → Key is inactive, ask user to check the checkbox
  3. If success → Proceed to Step 2

Step 2: Verify & Ask Automation Preferences

After key verification succeeds, send:

Got it! Key saved and verified ✅

**📊 Quick Overview:**
• {tests} tests completed ({hours} hrs)
• 🏆 PB: {pb_15}WPM (15s) | {pb_30}WPM (30s) | {pb_60}WPM (60s)
• 🔥 Current streak: {streak} days

Now, would you like automated reports?

**Options:**
1️⃣ **Daily report** — Summary of the day's practice
2️⃣ **Weekly report** — Week-over-week comparison + tips
3️⃣ **Both**
4️⃣ **None** — On-demand only

⏰ What time should I send reports? (default: 8pm)

Step 3: Finalize Setup

After user chooses options:

  1. Update config with preferences
  2. Create cron jobs if automations enabled:
    • Daily: 0 {hour} * * * with name monkeytype-daily-report
    • Weekly: 0 {hour} * * 0 with name monkeytype-weekly-report
  3. Send completion message:
🎉 **You're all set!**

**✅ Config saved:**
• Weekly report: {status}
• Daily report: {status}

**💡 Try these anytime:**
• "show my typing stats"
• "how's my typing progress"
• "compare my typing this week"
• "monkeytype leaderboard"

Happy typing! May your WPM be ever higher 🚀⌨️

Error Handling

ErrorUser Message
No config file"Looks like Monkeytype isn't set up yet. Let me help you get started! 🔑" → Start Setup Flow
No apeKey in configSame as above
API 471 "inactive""Your API key is inactive. Go to Monkeytype → Account Settings → Ape Keys and check the checkbox next to your key to activate it ✅"
API 401 "unauthorized""Your API key seems invalid. Let's set up a new one." → Start Setup Flow
API rate limit"Hit the API rate limit. Try again in a minute ⏳"
Network error"Couldn't reach Monkeytype servers. Check your connection and try again."

Commands

Fetch Stats

Triggers: "show my monkeytype stats", "how's my typing", "typing stats"

  1. Pre-flight check (see above)
  2. Run: python scripts/monkeytype_stats.py stats
  3. Format output nicely with emojis

Recent History & Analysis

Triggers: "analyze my recent typing", "how have I been typing lately"

  1. Pre-flight check
  2. Run: python scripts/monkeytype_stats.py history --limit 50
  3. Analyze output and provide 2-3 improvement tips

Progress Comparison

Triggers: "compare my typing progress", "am I improving"

  1. Pre-flight check
  2. Run: python scripts/monkeytype_stats.py compare

Leaderboard Lookup

Triggers: "monkeytype leaderboard", "where do I rank"

  1. Pre-flight check
  2. Run: python scripts/monkeytype_stats.py leaderboard [--mode time] [--mode2 60]

Improvement Tips Logic

After fetching stats, analyze and provide tips based on:

IssueTip
StdDev > 15"Focus on consistency — slow down and aim for 95%+ accuracy every test"
Accuracy < 95%"Accuracy builds speed. Slow down until you hit 95%+ consistently"
60s << 30s PB"Stamina gap detected. Practice longer tests to build endurance"
Low test count"More practice = faster progress. Aim for 5-10 tests daily"
Streak broken"Consistency matters! Try to type a bit every day"

API Notes

  • Base URL: https://api.monkeytype.com
  • Auth header: Authorization: ApeKey {key}
  • Rate limits: 30 req/min global, 30/day for results endpoint
  • Cache results locally when possible

Files

  • ~/.openclaw/workspace/config/monkeytype.json: User config
  • scripts/monkeytype_stats.py: Main stats fetcher script

Files

2 total
Select a file
Select a file to preview.

Comments

Loading comments…