EXC Analyzer
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
- Installation
- Authentication
- Quick Start
- Output & Reports
- Localization
- FAQ
- Troubleshooting
- License
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
- Login:
exc login - Authorize: The tool will provide a code (and copy it to your clipboard). It will open your browser to GitHub activation.
- 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
-
Check your Python environment
- Make sure you are using the same interpreter where
exc-analyzeris installed.
- Make sure you are using the same interpreter where
-
Ensure
keyringis installedpython -m pip install -U keyring
-
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.
-
Verify keyring works before login
python -m keyring diagnose
- Confirm the output shows a usable backend (not
fail/null-style backend).
- Confirm the output shows a usable backend (not
-
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 diagnoseworks in one Python butexc loginfails, you likely installed packages into different environments.
Quick recovery checklist
python -m pip show keyringpython -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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.