Skip to main content

AI-powered vulnerability scanner for Nigerian developers and global SMBs

Project description

PyPI version CI

Permi

AI-powered vulnerability scanner for Nigerian developers and global SMBs.

Permi scans your code for security vulnerabilities and uses AI to filter out false positives — so you only see findings that actually matter.

Built in Nigeria. For Nigeria. Then for the world.


What Permi detects

  • SQL Injection (string concatenation, f-strings, % formatting)
  • Cross-Site Scripting (innerHTML, document.write, Jinja2 |safe)
  • Hardcoded secrets (passwords, API keys, AWS keys, Paystack/Flutterwave keys)
  • Insecure practices (eval/exec, pickle.loads, SSL verification disabled, debug mode)
  • USSD vulnerabilities (Nigerian-specific — unvalidated sessionId, phoneNumber, serviceCode)

Installation

pip install permi

Requires Python 3.9+


Usage

Scan a local project:

permi scan --path ./myapp

Scan a GitHub repository:

permi scan --path https://github.com/user/repo

Show only high severity findings:

permi scan --path ./myapp --severity high

Output as JSON (for CI/CD pipelines):

permi scan --path ./myapp --output json

Skip AI filter (offline mode):

permi scan --path ./myapp --offline

Setup

Permi uses OpenRouter for AI-powered false positive filtering. Create a free account, generate an API key, and add it to a .env file in your project root: OPENROUTER_API_KEY=sk-or-your-key-here

No API key? Use --offline mode. All findings are shown unfiltered.


Example output

[1] [HIGH] SQL001 SQL Injection — string concatenation File : app/auth.py Line : 42 Code : cursor.execute("SELECT * FROM users WHERE name = " + username) Why : Raw string concatenation used to build a SQL query. AI : REAL User input is directly embedded into a SQL query with no sanitisation.


Built by

Peter N. D. — Cybersecurity student, University of Jos, Nigeria.


Permi is in active development. Feedback and contributions welcome.

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

permi-0.1.3.tar.gz (19.2 kB view details)

Uploaded Source

Built Distribution

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

permi-0.1.3-py3-none-any.whl (20.8 kB view details)

Uploaded Python 3

File details

Details for the file permi-0.1.3.tar.gz.

File metadata

  • Download URL: permi-0.1.3.tar.gz
  • Upload date:
  • Size: 19.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for permi-0.1.3.tar.gz
Algorithm Hash digest
SHA256 f714719de0df743b8a630c116b2b220282a44607184a671e19b808b63d62a940
MD5 555d8f730ba7202017d1118bc06f7e6d
BLAKE2b-256 297897a7429f11556fa2b16f3c7c2a31b1f7ddf76be0601d5e46e1c53e7acd39

See more details on using hashes here.

File details

Details for the file permi-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: permi-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 20.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for permi-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8ac2de46df35e444f20b74d5c776aa1d4e7d30c47bc6190c5cff62445b1cec2f
MD5 16d644a671213c1f7efa56e6351b6d5c
BLAKE2b-256 88c838cfa083494fd782c2e50595754e3b792a549cd5b784e2c2c301df8690bb

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