Skip to main content

EXC Analyzer

GitHub Release PyPI Downloads Release Date License Code Size Socket Badge

EXC Analyzer is a professional command-line tool for advanced GitHub repository intelligence, security auditing, and content analysis. Designed for security researchers, penetration testers, and open-source maintainers, it bridges the gap between simple metadata and deep, actionable insights.

Table of Contents

Features

  • Intelligence Gathering: Deep-dive into repository metadata, contributor impact, and historical anomalies.
  • Security Auditing: Score repository security posture, audit GitHub Actions workflows, and scan for secrets in commits/files.
  • Dork Scanning: Powerfully search public code using GitHub dorks to find sensitive exposures.
  • User Profiling: Analyze user activity patterns, potential anomalies, and contributions.
  • Smart Rate-Limiting: Handles API quotas automatically with intelligent pausing and retries.
  • Localization: Localization is currently available in English and Turkish, but the infrastructure is ready to expand to a wider range of languages ​​through community contributions.

Installation

Kali Linux / Debian

Download the latest .deb from Releases and run:

sudo dpkg -i exc-analyzer_1.3.3-1_all.deb
sudo apt-get install -f  # Fix dependencies if needed

Windows

pip install exc-analyzer

(Requires Python 3.7+)

Authentication & Security

Authentication

  1. Login:
    exc login
    
  2. Authorize: The tool will provide a code (and copy it to your clipboard). It will open your browser to GitHub activation.
  3. Ready: Paste the code, approve the permissions, and you are done!

The token behaves like a standard GitHub App connection and is stored securely in your OS credential manager.

If no supported OS credential backend is available, login/token storage is blocked by design (no local plaintext or base64 fallback).

Permissions & Privacy

To provide deep intelligence and security auditing (including private repositories), EXC Analyzer requests the following scopes:

  • repo (Full control of private repositories): Required to analyze private repositories, check branch protection status, and read security policies.
  • workflow (Update GitHub Action workflows): Required to read and audit GitHub Actions workflow files for security risks.
  • read:org / read:user / user:email: Required to fetch profile metadata and organization membership for context.

Risk Disclaimer

  • Passive Analysis: This tool is a passive analyzer. It gathers information that is already available via the public GitHub API.
  • User Responsibility: You are responsible for how you use the gathered intelligence. Do not use this tool for unauthorized testing or malicious purposes. The developer is not liable for misuse.

Quick Start

1. Analyze a Repository:

exc analysis torvalds/linux

2. Search for Sensitive Data (Dorks) (User's responsibility):

exc dork-scan "filename:config.php 'db_password'"

3. Scan for Secrets:

exc scan-secrets microsoft/vscode -l 20

Information Gathering

  • analysis <owner>/<repo> - Get a comprehensive overview of repository health, stats, and top contributors.
  • user-a <username> - Analyze public profile, top languages, and activity summary.
  • contrib-impact <owner>/<repo> - Calculate impact scores for individual contributors to identify key maintainers.
  • file-history <owner>/<repo> <path> - View granular commit history for a specific file.

Security & Auditing

  • security-score <owner>/<repo> - Evaluate repository security (branch protection, code scanning, security policies).
  • actions-audit <owner>/<repo> - Audit GitHub Actions workflows for dangerous triggers and insecure practices.
  • scan-secrets <owner>/<repo> - Fast scan of recent commits for credentials and tokens.
  • advanced-secrets <owner>/<repo> - Deep scan of current file contents and history for high-entropy secrets.
  • dork-scan <query> - Search GitHub for sensitive code patterns (dorks). Supports export.

Anomaly Detection

  • commit-anomaly <owner>/<repo> - Detect suspicious commit times, mass deletions, or unusual messages.
  • user-anomaly <username> - Identify irregular activity spikes or behavioral outliers for a user.

Content Audit

  • content-audit <owner>/<repo> - Check for essential community standards (LICENSE, CODE_OF_CONDUCT, CONTRIBUTING.md).

Utilities

  • login - Log in with your GitHub account to start analyzing.
  • logout - Log out from your GitHub account.

Output & Reports

Most commands support the -o or --output flag to save results to a file:

# Save to a generated filename (e.g., analysis_owner_repo_date.txt)
exc analysis owner/repo -o

# Save to a specific file
exc dork-scan "password" -o results.txt

Localization

Switch languages dynamically using --lang or the environment variable:

  • English (Default): exc --lang en analysis owner/repo
  • Turkish: exc --lang tr analysis owner/repo

(Selection is remembered for future commands.)

Troubleshooting

  • Rate Limits: If you hit API limits, the tool will automatically pause and retry. Using an authenticated token (exc login) increases your quota significantly.
  • Colors: If output looks strange, ensure your terminal supports ANSI colors.

FAQ

keyring_required_hint / Secure Store Not Available

If you see a message like:

Secure OS credential store is required...
Install/configure a supported system keyring backend, then run: exc login

it means EXC Analyzer refused to store your token insecurely (by design).

Why this happens

EXC Analyzer uses your operating system's credential vault (Windows Credential Manager, macOS Keychain, Secret Service/KWallet on Linux). If that backend is missing, locked, or inaccessible in your environment, token storage is blocked.

Step-by-step fix

  1. Check your Python environment

    • Make sure you are using the same interpreter where exc-analyzer is installed.
  2. Ensure keyring is installed

    python -m pip install -U keyring
    
  3. Install / enable an OS backend

    • Windows: Ensure Credential Manager service is running.
    • macOS: Ensure Keychain Access is available and your login keychain is unlocked.
    • Linux (desktop): Install and unlock GNOME Keyring or KWallet.
    • Linux (headless/server): Configure a supported Secret Service-compatible backend for the session.
  4. Verify keyring works before login

    python -m keyring diagnose
    
    • Confirm the output shows a usable backend (not fail/null-style backend).
  5. Run login again

    exc login
    

Common environment-specific notes

  • WSL/containers/SSH sessions: GUI keychains are often unavailable by default; use a compatible backend configured for that runtime.
  • CI/CD: Non-interactive runners usually should not perform interactive exc login; use ephemeral execution patterns instead.
  • Multiple Python installs: If keyring diagnose works in one Python but exc login fails, you likely installed packages into different environments.

Quick recovery checklist

  • python -m pip show keyring
  • python -m keyring diagnose
  • confirm OS keychain service is running/unlocked
  • retry exc login

License

MIT License. See LICENSE file for details.

Metadata

Release files for exc-analyzer 1.3.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for exc-analyzer 1.3.3
File Size Uploaded Provenance Actions
exc_analyzer-1.3.3.tar.gz 186.1 kB Without provenance Details for exc_analyzer-1.3.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for exc-analyzer 1.3.3
File Interpreter ABI Platform Actions
exc_analyzer-1.3.3-py3-none-any.whl Python 3 none any Details for exc_analyzer-1.3.3-py3-none-any.whl

Total release size: 380.7 kB

Release files / exc_analyzer-1.3.3.tar.gz

Download URL exc_analyzer-1.3.3.tar.gz
Size 186.1 kB
Tags Source
SHA-256 checksum
How to use checksums
8e987b436378d9d936c227cee9a4244ea72fbc760fa76387119d6eddb3b5d2ec
BLAKE2b-256 checksum
How to use checksums
2849afca38ed38f4aafa73fd43e33d7c6dfdee152acd4a9e707e704f30f057bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / exc_analyzer-1.3.3-py3-none-any.whl

Download URL exc_analyzer-1.3.3-py3-none-any.whl
Size 194.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8a06f6dc94384c98e7129f3a72b05b92f9748af8a24285ad21b65d4bb348259d
BLAKE2b-256 checksum
How to use checksums
cf58844608ad9a98ebbda899f122374e68f13b6b99d1dd0ad5fd3c9f2fb88cbd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Security for exc-analyzer 1.3.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page