Powerful Python tool for in-depth GitHub analysis, designed for multiple platforms and still in development.
Project description
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).
[!TIP] You can revoke access at any time from GitHub → Settings → Applications → Authorized OAuth Apps.
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.
[!IMPORTANT] Passive Analysis Guarantee: Although the requested scopes technically allow write access, EXC Analyzer is designed as a read-only intelligence tool. It does NOT modify your code, change settings, or trigger actions.
[!NOTE] Token Security: Your access token is never logged to any file. It is held in memory during execution and stored securely in your operating system's credential manager.
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file exc_analyzer-1.3.3.tar.gz.
File metadata
- Download URL: exc_analyzer-1.3.3.tar.gz
- Upload date:
- Size: 186.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e987b436378d9d936c227cee9a4244ea72fbc760fa76387119d6eddb3b5d2ec
|
|
| MD5 |
3ade606796c0c7ac96c40a505c414bf7
|
|
| BLAKE2b-256 |
2849afca38ed38f4aafa73fd43e33d7c6dfdee152acd4a9e707e704f30f057bc
|
File details
Details for the file exc_analyzer-1.3.3-py3-none-any.whl.
File metadata
- Download URL: exc_analyzer-1.3.3-py3-none-any.whl
- Upload date:
- Size: 194.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a06f6dc94384c98e7129f3a72b05b92f9748af8a24285ad21b65d4bb348259d
|
|
| MD5 |
91c4db265d21b5986819649b7168d60b
|
|
| BLAKE2b-256 |
cf58844608ad9a98ebbda899f122374e68f13b6b99d1dd0ad5fd3c9f2fb88cbd
|