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.2.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.2-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: helpfulgremlin-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 95d137fc4574f1ce957b5d7bc67ae704ab2302a8499849fe71ed46b7eb5578b2
MD5 de96cb73b568c5d6f240bcb0897efabb
BLAKE2b-256 ad996125f18b1b6335cb6467432b117ad9e5c4092979c00ad91247836f567820

See more details on using hashes here.

File details

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

File metadata

  • Download URL: helpfulgremlin-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6750be3c1817f669562b390fa3c28eb15e99ab60d170310fdca3c30707358251
MD5 54955add3b92f4ed3a8e95b541a66b4f
BLAKE2b-256 2999985bd1a271b384f3d14b9bfe774e51f94cc5591d79d292024940797bf6c4

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