A high-performance CLI tool for analyzing GitHub user profiles and generating meaningful insight reports.
Engineered with asynchronous Python to ensure rapid data retrieval without rate-limiting bottlenecks, GitInsight provides developers and recruiters with an immediate, deep-dive view into any GitHub footprint directly from the terminal.
- Features
- Installation
- Configuration
- Usage
- Architecture & Technology Stack
- Preview
- Local Development
- Changelog
- License
- Asynchronous Data Retrieval: Utilizes
aiohttpandasyncioto concurrently fetch user profiles, repositories, and recent events, significantly reducing wait times. - Terminal User Interface (TUI): Powered by
rich, featuring live loading indicators, color-coded data tables, and formatted statistical outputs for maximum readability. - Automated PDF Generation: Instantly compile a user's GitHub statistics and repository data into a clean, exportable PDF report.
- Secure Credential Management: Securely caches your GitHub Personal Access Token locally with restricted permissions.
GitInsight is available on the Python Package Index (PyPI). It requires Python 3.8 or higher.
Install the package globally using pip:
pip install gitinsight-pyBy default, GitInsight does not require a GitHub Personal Access Token. This allows upto 60 requests per minute.
To bypass standard GitHub API rate limits, add a token by using:
gitinsight --token TOKENTo remove the saved token and fall back to unauthenticated requests, run:
gitinsight --clear-tokenThis removes the cached ~/.gitinsight file; any GITHUB_TOKEN from your shell or .env file still takes precedence.
- Go to GitHub Settings → Developer Settings → Personal Access Tokens → Tokens (Classic)
- Click "Generate new token (classic)"
- Give it a name:
gitinsight - Set expiration: 90 days or no expiration
- Select these scopes:
read:userpublic_repo
- Click "Generate token"
- Copy it immediately — GitHub shows it only once
The token is securely stored in your local home directory (~/.gitinsight). You may also provide the token via a local .env file or by exporting GITHUB_TOKEN to your system environment variables.
Once installed, the gitinsight command is registered globally on your system.
Basic Profile Analysis: Execute the command followed by the target GitHub username.
gitinsight sshreyanshhGenerate a PDF Report:
Append the -r or --report flag to automatically generate and save a PDF summary in your current working directory.
gitinsight sshreyanshh -rEnable Verbose Logging:
Append the -v or --verbose flag to view underlying API requests and debugging information.
gitinsight sshreyanshh -v- Language: Python 3.8+
- Asynchronous Networking: aiohttp
- Terminal Formatting: Rich
- Document Generation: fpdf2
- Build System: Hatchling
gitinsight <username> (for insight without report)
gitinsight <username> --report (for insight with report, snapshot of additional message displayed.)
(sample of report generated via GitInsight)

To run the project locally for development or contribution:
- Clone the repository.
git clone https://github.com/sshreyanshh/GitInsight.git
- Navigate to the project root directory.
- Install the package in editable mode:
pip install -e .
- Added unauthenticated mode (no token required)
- Added --token flag to set GitHub PAT directly
- Added --clear-token flag to remove saved PAT
- Fixed token loading when running from any directory
- Improved rate limit error handling
- Improved error handling with specific exception types
- Fixed crash when entering a nonexistent GitHub username
- Initial release
This project is open-source and available under the standard MIT License.
Developed by Shreyansh Srivastava · 2026