- Home
- Skills
- Code Quality & Review
- Stop shipping AI code that leaks your secrets.
Works with the AI Agents you already use
Stop shipping AI code that leaks your secrets.
This skill scans every .py file for hidden shell=True calls and environment vulnerabilities before it ever hits your CI.
$19.99
Stop shipping AI code that leaks your secrets.
Example session with this skill installed
Audit complete. 1 file scanned, 3 shell calls found, 4 findings.
"audit_status": "CRITICAL"
f1 — deploy.py:6 — HIGH — UNGUARDED_SHELL_CALL
subprocess.run("rm -rf /tmp/cache", shell=True)
f2 — deploy.py:7 — HIGH — UNGUARDED_SHELL_CALL
subprocess.run("ls -la", shell=True)
f3 — deploy.py:8 — HIGH — GUARD_BYPASS_VIA_OS
os.system("curl https://example.com/fix.sh | bash")
f4 — deploy.py:6 — MEDIUM — MISSING_ENV_ISOLATION
subprocess call has no env argument — child inherits every secret
Verdict: CRITICAL. Patch blocked until vulnerabilities are resolved.
- Read your context and instructions
- Compiled the stop shipping ai
--- INPUT — deploy.py ---
"""Live run 2: unguarded Python file. Shell calls without a guard."""
import subprocess
import os
def deploy() -> None:
subprocess.run("rm -rf /tmp/cache", shell=True)
subprocess.run("ls -la", shell=True)
os.system("curl https://example.com/fix.sh | bash")
if __name__ == "__main__":
deploy()
--- AUDIT OUTPUT ---
{
"audit_status": "CRITICAL",
"findings": [
{
"id": "f1",
"file": "live/scan2.py",
"line": 6,
"severity": "HIGH",
"signature": "UNGUARDED_SHELL_CALL",
"message": "subprocess.run is not wrapped by a guard function",
"snippet": "subprocess.run(\"rm -rf /tmp/cache\", shell=True)"
},
{
"id": "f2",
"file": "live/scan2.py",
"line": 7,
"severity": "HIGH",
"signature": "UNGUARDED_SHELL_CALL",
"message": "subprocess.run is not wrapped by a guard function",
"snippet": "subprocess.run(\"ls -la\", shell=True)"
},
{
"id": "f3",
"file": "live/scan2.py",
"line": 8,
"severity": "HIGH",
"signature": "GUARD_BYPASS_VIA_OS",
"message": "os.system bypasses subprocess-level guard",
"snippet": "os.system(\"curl https://example.com/fix.sh | bash\")"
},
{
"id": "f4",
"file": "live/scan2.py",
"line": 6,
"severity": "MEDIUM",
"signature": "MISSING_ENV_ISOLATION",
"message": "subprocess call has no env argument",
"snippet": "subprocess.run(\"rm -rf /tmp/cache\", shell=True)"
}
],
"metadata": {
"version": "1.0.0",
"timestamp": "2026-10-06T12:00:00Z",
"files_scanned": 2,
"calls_found": 3
}
}
--- VALIDATOR ---
PASS: live\live_run_report.json
Live run: PASS — 4 findings.
Connects securely to your tools. The creator never sees your data.
About this skill
🛡️ Stop Shipping Python Shell Calls AI Left Unguarded
AI assistants write code that works. They also write code that breaks your security. When Cursor, Copilot, or Claude Code generate Python scripts, they love taking shortcuts. They frequently drop in subprocess.run(..., shell=True) or os.system() just to get the job done. The problem? These calls completely bypass your runtime guardrails, leaving gaping vulnerabilities in your codebase. You either catch this during a tedious code review (wasting engineering time) or, worse, find out after the exploit hits production. This skill acts as your automated security engineer, auditing code before it ever reaches your CI pipeline. It parses every .py file instantly and returns a clean, structured JSON report (audit_status, findings, metadata).
🔍 Vulnerabilities Caught (That standard guardrails miss)
- UNGUARDED_SHELL_CALL — Flagged subprocess.run / Popen / call executions that lack proper wrapper security.
- GUARD_BYPASS_VIA_OS — Subprocess guardrails bypassed using raw os.system / os.popen / os.exec* commands.
- MISSING_NETWORK_ALLOWLIST — Unauthorized network calls pointing outside your defined ALLOWED_HOSTS.
- MISSING_AUDIT_TRAIL — Executed commands that failed to fire a corresponding audit log.
- MISSING_HUMAN_CONFIRMATION — High-risk code paths executing blindly without a required human-in-the-loop approval step.
- MISSING_ENV_ISOLATION — Subprocess calls missing the env argument, meaning the child process inherits all your system secrets and environment tokens.
🔒 Zero-Trust Local Security
We get it—you shouldn't trust third-party tools with your codebase. This skill is built with a strict, zero-trust architecture:
- ❌ Static Analysis Only: It reads your files but executes absolutely zero code.
- ❌ 100% Air-Gapped: No network calls. Your code never leaves your local machine.
- ❌ Zero System Access: Completely sandboxed with no shell access to your environment.
- ✅ Rock-Solid Reliability: 12/12 contract test cases passed. Verdict: Satisfied.
⚙️ Works Out of the Box
Integrates seamlessly with the AI tools you're already running:
- Claude Code / Cursor / Copilot / Codex CLI
Find more skills like this on the Claude Skills Marketplace, the Codex Skills Marketplace and the Gemini Skills Marketplace, or browse Claude Skills for Code Quality & Review.
• Supports Python exclusively. Does not analyze JavaScript, Go, or Rust codebases.
• Static analysis only — operates entirely pre-runtime and does not enforce security wrappers dynamically.
• Simple shell calls (e.g., 'ls -la') are flagged as HIGH severity if left completely unguarded, regardless of intent.
How to use
- 1
Connect your agent to the Agensi MCP
Copy the prompt and paste it into Claude, ChatGPT, Cursor or any agent that supports MCP. It sets up the connection for you. Manual setup
- 2
Sign in to Agensi
Your agent shows a sign-in link. Sign in and click Allow.
- 3
Ask for what you need
Your agent loads this skill and uses it on your task. It always asks before buying a skill.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill goes through the trust checks below.
Security scanned
Checked by our 8-point scan before listing
Fresh listing
Recently published to Agensi
Money-back guarantee
Doesn't do what its page promises? You get your money back.
Trust & safety
Security scan
Security scan passed 1 month ago
- Software
Python
Permissions
File Scopes
Reads Python source files only. Flags six classes of unguarded shell calls, returning a structured JSON report (audit_status, findings, metadata). Built strictly for static analysis: zero code execution, zero file modifications, and zero data interception.