2025-05-28 13:41:15 +02:00
2025-05-20 22:00:15 +02:00
2025-05-09 18:49:36 +02:00
2025-05-20 22:14:32 +02:00
2025-05-09 18:49:36 +02:00
2025-05-20 15:30:08 +02:00
2025-05-20 15:28:32 +02:00
2025-05-20 15:28:32 +02:00
2025-05-09 18:49:36 +02:00
2025-05-28 10:00:12 +02:00
2025-05-28 10:10:42 +02:00
2025-05-28 09:56:03 +02:00


GH-Recon 🔍

Latest Release GoDoc GoReportCard

🧾 Project Overview

Retrieves and aggregates public OSINT data about a GitHub user using Go and the GitHub API. Finds hidden emails in commit history, previous usernames, friends, other GitHub accounts, and more.

🚀 Features

  • Retrieve basic user profile information (username, ID, avatar, bio, creation dates)
  • List organizations and roles
  • Fetch SSH and GPG keys
  • Enumerate social accounts
  • Extract unique commit authors (name + email)
  • Find close friends
  • Find Github accounts using an email address
  • Export results to JSON
  • Deep scan option (clone repositories, regex search, analyze licenses, etc.)

⚠️ Disclaimer

This tool is intended for educational purposes only. Use responsibly and ensure you have permission to access the data you are querying.

📋 Prerequisites

  • Go 1.18+
  • GitHub Personal Access Token (recommended for higher rate limits): Create a GitHub API token with no permissions/no scope. This will be equivalent to public GitHub access, but it will allow access to use the GitHub Search API.

📦 Installation

With Go

go install github.com/anotherhadi/gh-recon@latest

With Nix/NixOS

Click to expand

From anywhere (using the repo URL):

nix run github:anotherhadi/gh-recon -- --username TARGET_USER [--token YOUR_TOKEN]

Permanent Installation:

# add the flake to your flake.nix
{
  inputs = {
    gh-recon.url = "github:anotherhadi/gh-recon";
  };
}

# then add it to your packages
environment.systemPackages = with pkgs; [ # or home.packages
  gh-recon
];

🧪 Usage

gh-recon --username TARGET_USER [--token YOUR_TOKEN]

Flags

  -u, --username string       GitHub username to analyze
  -t, --token string          GitHub personal access token (e.g. ghp_...)
  -e, --email string          Search accounts by email address
  -d, --deep                  Enable deep scan (clone repos, regex search, analyse licenses, etc.)
      --max-size int          Limit the size of repositories to scan (in MB) (only for deep scan) (default 150)
      --exclude-repo string   Exclude repos from deep scan (comma-separated list, only for deep scan)
  -r, --refresh               Refresh the cache (only for deep scan)
  -c, --only-commits          Display only commits with author info
  -s, --silent                Suppress all non-essential output
  -j, --json string           Write results to specified JSON file

💡 Examples

gh-recon --username anotherhadi --token ghp_ABC123...
gh-recon --email [email protected]
gh-recon --username anotherhadi --json output.json --deep

🕵️‍♂️ Cover your tracks

Understanding what information about you is publicly visible is the first step to managing your online presence. gh-recon can help you identify your own publicly available data on GitHub. Here’s how you can take steps to protect your privacy and security:

  • Review your public profile: Regularly check your GitHub profile and repositories to ensure that you are not unintentionally exposing sensitive information.
  • Manage email exposure: Use GitHub's settings to control which email addresses are visible on your profile and in commit history. You can also use a no-reply email address for commits. Delete/modify any sensitive information in your commit history.
  • Be Mindful of Repository Content: Avoid including sensitive information in your repositories, such as API keys, passwords, emails or personal data. Use .gitignore to exclude files that contain sensitive information.

You can also use a tool like TruffleHog to scan your repositories specifically for exposed secrets and tokens.

Useful links:

🤝 Contributing

Feel free to contribute! See CONTRIBUTING.md for details.

S
Description
Retrieves and aggregates public OSINT data about a GitHub user using Go and the GitHub API. Finds hidden emails in commit history, previous usernames, friends, other GitHub accounts, and more.
Readme MIT
767 KiB
Languages
Go 97%
Nix 3%