| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
Local lookup helper used by a private TDESKTOP_OSINT=ON build. Results stay in a local SQLite DB — nothing is uploaded to Telegram servers.
Implemented in Go with:
| Tool | When invoked | Docker image | Default? |
|---|---|---|---|
| gosearch | Username discovery | (none — native Go binary only) | Yes, if bin/gosearch or PATH |
| sherlock | Username discovery | sherlock/sherlock | Yes, if docker image or local binary |
| maigret | Username discovery | soxoj/maigret:latest | Yes, if docker image or MAIGRET_BIN / PATH |
| user-scanner | Username discovery | (none — pip/nix only) | Optional (if installed) |
| username-probe | Built-in HTTP probes | — | Off (--username-probe or OSINT_USERNAME_PROBE=1) |
| holehe | Email → registered sites | mrnonoss/holehe:latest (community, amd64) | Optional (when --email given) |
| phoneinfoga | Phone scan | sundowndev/phoneinfoga:latest (amd64; use native on Apple Silicon) | Optional (when --phone given) |
| HTTP validate | Every URL-bearing username finding | — | Always |
| ADK + OpenAI | Smart classify / dedupe / summarize after HTTP validate | — | Optional — on when OPENAI_API_KEY or API_KEY is set and OSINT_ADK is not 0 |
| Tool | Official image | Notes |
|---|---|---|
| sherlock | sherlock/sherlock | Official; multi-arch |
| maigret | soxoj/maigret:latest | Official; mount -v $TMP:/app/reports for JSON output |
| holehe | mrnonoss/holehe:latest | Community (no official image); amd64 only — build from megadose/holehe on arm64 |
| phoneinfoga | sundowndev/phoneinfoga:latest | Official; amd64 only — prefer bin/phoneinfoga on Apple Silicon |
| gosearch | — | No official/community image; install via go install github.com/ibnaleem/gosearch@latest |
| user-scanner | — | No Docker image; pip install user-scanner or Nix |
Resolution order for each tool: native binary (*_BIN, bin/<tool>, PATH) → docker image (when present) → skipped.
cd tools/osint
go build -o bin/osint-worker ./cmd/osint-workerRequires Go 1.26+ (ADK Go). Uses pure-Go SQLite (modernc.org/sqlite, no CGO).
ADK orchestrator (osint_orchestrator)
│
├─ discover_fanout parallel ADK agents (errgroup inside each username agent)
│ ├─ gosearch native binary (parallel with others)
│ ├─ sherlock docker run --rm sherlock/sherlock …
│ ├─ maigret docker run --rm -v $TMP:/app/reports soxoj/maigret …
│ └─ user-scanner native (optional)
│ ├─ holehe docker/native (per --email)
│ └─ phoneinfoga docker/native (per --phone)
│
├─ merge_dedupe URL dedupe before HTTP validate
│
├─ http_validate HEAD→GET, soft-404, blocklist, Reddit about.json
│
└─ smart_pipeline (when OPENAI_API_KEY / API_KEY set)
├─ fanout_prep parallel prep agents
├─ smart_validate OpenAI classify valid_profile / false_positive / unsure
├─ dedupe merge duplicate site/account rows
├─ summarize short UI snippets
└─ openai_ready llmagent health ack
Progress events stream as NDJSON on stderr ({"type":"progress","stage":…}). Final JSON on stdout (and --out) includes progress[] and tool_modes for the C++ UI.
Example tool_modes from a smoke run:
{
"gosearch": "native",
"sherlock": "docker",
"maigret": "docker",
"user-scanner": "skipped"
}Cache schema version 4 invalidates older soft-404 / weak “validated” rows.
Never commit real keys. Prefer repo-root .env (gitignored) or tools/osint/.env.
# OpenAI / ADK (optional smart layer)
OPENAI_API_KEY=sk-...
# API_KEY=... # alias
OSINT_ADK=1 # default on when key present; OSINT_ADK=0 to force off
OPENAI_MODEL=gpt-4o-mini
# OPENAI_BASE_URL=http://localhost:11434/v1
# Tool toggles (1=force on, 0=force off; default=auto-detect)
# OSINT_SHERLOCK=1
# OSINT_MAIGRET=1
# OSINT_GOSEARCH=1
# OSINT_HOLEHE=1
# OSINT_PHONEINFOGA=1
# OSINT_USER_SCANNER=1
# OSINT_USERNAME_PROBE=1 # built-in HTTP probes (last resort)
# Docker image overrides
SHERLOCK_DOCKER_IMAGE=sherlock/sherlock
MAIGRET_DOCKER_IMAGE=soxoj/maigret:latest
HOLEHE_DOCKER_IMAGE=mrnonoss/holehe:latest
PHONEINFOGA_DOCKER_IMAGE=sundowndev/phoneinfoga:latest
# Native binary overrides
GOSEARCH_BIN=
SHERLOCK_BIN=
MAIGRET_BIN=
HOLEHE_BIN=
PHONEINFOGA_BIN=
USER_SCANNER_BIN=Copy placeholders from .env.example / tools/osint/.env.example.
docker pull sherlock/sherlock
docker pull soxoj/maigret:latest
# optional (amd64 hosts):
docker pull mrnonoss/holehe:latest
docker pull sundowndev/phoneinfoga:latestVerify from worker context:
docker info
cd tools/osint
OSINT_ADK=0 ./bin/osint-worker lookup --peer-id 1 --username compfaculty --refresh --json
# inspect tool_modes in outputmkdir -p tools/osint/bin
GOBIN="$(pwd)/tools/osint/bin" go install github.com/ibnaleem/gosearch@latestOverride with GOSEARCH_BIN=/path/to/gosearch. Worker passes --no-false-positives.
docker pull sherlock/sherlock
docker run --rm sherlock/sherlock USERNAME --print-found --no-color --no-txtDefault on when image present. Force off: OSINT_SHERLOCK=0.
Local fallback: uv pip install sherlock-project or pipx install sherlock-project.
docker pull soxoj/maigret:latest
docker run --rm -v /tmp/reports:/app/reports soxoj/maigret:latest USERNAME \
--json simple -fo /app/reports --top-sites 50 --no-progressbarOr: pipx install maigret.
pipx install user-scanner
# USER_SCANNER_BIN=… when installedNo official Docker image exists.
# phoneinfoga — native binary in tools/osint/bin/ (preferred on Apple Silicon)
# or docker pull sundowndev/phoneinfoga:latest (amd64)
# holehe — docker pull mrnonoss/holehe:latest (amd64) or pip install holeheWhen configured with -D TDESKTOP_OSINT=ON, CMake bakes TDESKTOP_OSINT_WORKER_DIR to this directory. Profile section runs:
bin/osint-worker lookup … --json --out <tempfile>
Override: TDESKTOP_OSINT_WORKER=/absolute/path/to/osint-worker.
./bin/osint-worker lookup \
--peer-id 123456 \
--username someuser \
--json \
--out /tmp/osint-result.json \
--refresh
./bin/osint-worker status --peer-id 123456 --jsonDefault DB: ~/Library/Application Support/Telegram Desktop/osint_cache.sqlite
See python_legacy/ — not invoked by Desktop.
| Back | FazBrowse Home | New Git URL |