Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Sherlock Real-time Terminal Dashboard

License: CC BY-SA 4.0 Python: 3.10+ Sherlock OSINT

A high-performance, multi-threaded real-time CLI dashboard wrapper for the Sherlock OSINT tool. It replaces Sherlock's raw CLI output with a premium, live-updating terminal interface featuring a progress bar, elapsed timer, rotating spinner, and clean results stream.


Features

  • True Real-time Rendering: Employs a multi-threaded architecture (UI rendering at 12.5 FPS, subprocess streaming in the background) to prevent terminal freezing.
  • 🟢 Clean Matches Only: Positive account hits are permanently locked onto your screen, while "Not Found" checks and connection errors update the progress bar and are immediately discarded.
  • 📊 Dynamic Progress Metrics: Shows real-time statistics including elapsed time (down to the millisecond), total sites searched, and a smooth block progress bar (▰▰▰▱▱).
  • 🔍 Database Auto-Inspection: Automatically locates and reads Sherlock's local database (data.json) to estimate the exact total platform count, or scales down dynamically for targeted --site scans.
  • ⚙️ Transparent Passthrough: Standard flags like --help, --version, or malformed queries bypass the UI and map straight to the original Sherlock CLI.

Installation

1. Prerequisites

Ensure you have the standard Sherlock OSINT tool installed via Homebrew or source:

brew install sherlock

2. Install the Wrapper

Clone this repository and save the wrapper script to your local binaries folder (e.g., ~/.local/bin):

# Create local bin directory if it doesn't exist
mkdir -p ~/.local/bin

# Copy the script
cp sherlock ~/.local/bin/sherlock

# Make it executable
chmod +x ~/.local/bin/sherlock

3. Update PATH Priority

Make sure your Zsh configuration prioritizes local binaries over global Homebrew packages. Open ~/.zshrc and ensure this line is present at the top:

export PATH="$HOME/.local/bin:$PATH"

Then reload your shell:

source ~/.zshrc

Usage

Simply run it exactly as you would normally run sherlock! The wrapper intercepts your call and loads the dashboard automatically.

# Scan a username across all platforms
sherlock john

# Scan a username across specific platforms
sherlock john --site github --site gitlab --site twitter

# Pass standard sherlock options
sherlock john --timeout 3

How It Works Under the Hood

  1. Subprocess Streaming: The wrapper executes the real Sherlock binary in a background process using Python's subprocess.Popen with PYTHONUNBUFFERED=1 and --print-all enabled.
  2. ConcurrentNode Processing: A dedicated background thread reads Sherlock's standard output stream in real-time, parsing positive hits ([+]) and negative checks ([-]).
  3. Cursor-Movement UI: The main thread uses ANSI escape sequences (\033[A to move up, \033[K to clear lines) to redraw the progress panel in-place at the bottom of your screen, while writing permanent findings to the terminal history above.

License

Distributed under the Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA 4.0). See LICENSE for more information.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages