Skip to main content

Add your description here

Project description

👾 helpfulGremlin

Sanity check your vibes before you git push.

Build Status

helpfulGremlin is a lightweight, zero-config CLI utility designed to scan your codebase for sensitive artifacts—API keys, secrets, tokens, and private keys—before they are accidentally exposed. Built for "vibe-coding" where velocity is high, it acts as a friendly guardrail.

🚀 Quick Start

Run it instantly using uv (no installation required):

# Run in the current directory
uvx helpfulGremlin

Or install it globally:

uv tool install helpfulGremlin
helpfulGremlin .

🛠 Usage

# Scan the current directory
helpfulGremlin

# Scan a specific directory or file
helpfulGremlin ./src/my_script.py

# Verbose mode (see every file checked)
helpfulGremlin . --verbose

# Run with multiple worker processes (for large repos)
helpfulGremlin . --workers 4

🏗 Architecture & Design Decisions

1. Python & uv First

We chose Python for its rich ecosystem of text processing and regex libraries. Typically, Python tools are hard to distribute, but with uv, helpfulGremlin can be run ephemerally (uvx) without messing up your system python.

2. Hybrid Detection Engine

The tool uses a two-layer detection strategy:

  • Layer 1: Regex Signatures: Fast pattern matching for known secrets (AWS, OpenAI, Stripe, etc.). Patterns are externalized in src/helpfulgremlin/patterns.yaml.
  • Layer 2: Entropy Analysis: Uses Shannon Entropy to detect high-randomness strings (like passwords or unknown API keys) that don't match specific regexes. This catches weird custom secrets others miss.

3. Smart Context Awareness

  • Gitignore Support: Automatically parses your .gitignore to avoid scanning node_modules, venv, etc.
  • Binary Skipping: Detects and skips binary files to save CPU.
  • Large File Protection: Skipping files > 5MB to prevent memory exhaustion.
  • Context-Aware Remediation: It doesn't just say "Error"; it suggests how to fix it (e.g., "Move this hardcoded key to an environment variable").

4. Modern UX (textual / rich)

We use the rich library to provide beautiful, emoji-enriched terminal output, progress bars, and tables. Security tools shouldn't be boring 1990s textual walls.

🕵️ Detected Patterns

helpfulGremlin currently detects:

  • Cloud Providers: AWS (Access/Secret Keys), Google Cloud API Keys, Azure Storage Keys (opt-in).
  • AI/ML: OpenAI, Anthropic, Gemini, HuggingFace, Replicate.
  • Services: Stripe, Slack, Twilio, Salesforce, Facebook.
  • Generic: PEM Private Keys, Generic "api_key" variable assignments.
  • Unknowns: High-entropy strings (> 4.2 bits of randomness).

⚙️ Configuration

You can customize the detection rules by editing the patterns.yaml file inside the package.

📦 License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

helpfulgremlin-0.1.1.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

helpfulgremlin-0.1.1-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file helpfulgremlin-0.1.1.tar.gz.

File metadata

  • Download URL: helpfulgremlin-0.1.1.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for helpfulgremlin-0.1.1.tar.gz
Algorithm Hash digest
SHA256 6d59bd1174da6fa1e8b23428882fa40d4622c2477e95539e8120e2218370ae9b
MD5 81f44b966b04e4bd0609736f9648d706
BLAKE2b-256 e263b9f2d1de517cc3a51d0feb20a7c89a1d300b59c988f30256872cf968aaaf

See more details on using hashes here.

File details

Details for the file helpfulgremlin-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: helpfulgremlin-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for helpfulgremlin-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 416156f5fb63b53a6669e2ded795dc1b61178dabe651a7dbcc5e143c3d0e520b
MD5 eec905e10fa4a39b0c081212d4268487
BLAKE2b-256 1d727e45179e44f8652e0c6a245655edeb6d5b7837cecbeb900fb959c00f8d34

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page