jin is an open-source CLI toolkit designed for OSINT and reconnaissance tasks.
1.5K
Version: 2.4.1
Jin is an open-source command-line interface (CLI) toolkit for OSINT (Open-Source Intelligence) and reconnaissance. It gathers server, network, and technology-stack information about a target using passive, safe techniques — no active exploitation. This tool is intended for ethical and educational use only—please refrain from using it for harmful actions.
Jin provides a suite of commands to assist with network reconnaissance, domain analysis, and vulnerability assessment. Built with Go, it is lightweight, portable, and containerizable with Docker, making it accessible for security researchers, students, and enthusiasts.
--subdomains for passive subdomain + DNS discovery, and --cve to cross-reference detected versions against the NVD.info + ports + tech-stack (accepts the same flags).bash, zsh, or fish).| Flag | Description |
|---|---|
-t, --target <host> | Target URL or host (most commands). |
-j, --json | Output as JSON (for piping/automation). |
-o, --output <file> | Write the JSON report to a file instead of stdout. |
-p, --ports <list> | Custom ports for the ports/scan commands (comma-separated). |
-s, --subdomains | Include subdomain + DNS discovery (tech-stack/scan). |
--cve | Cross-reference detected versions against NVD advisories (tech-stack/scan). |
--min-grade <grade> | CI gate: exit non-zero if the security grade is below this (e.g. B). |
--fail-on-low | CI gate: exit non-zero if the security grade is below C. |
brew tap sapiuwu/jin
brew install jin
Clone the repository:
git clone https://github.com/sapiuwu/jin.git
Navigate to the project directory:
cd jin
Build the binary:
go build -o jin ./cmd/
Run the CLI:
./jin
Pull an image from Docker Hub (built per base image, e.g. alpine-latest, debian-bookworm, ubuntu-24.04):
docker pull wahyouka/jin:v2.4.1-alpine-latest
Interactive mode (REPL — recommended). Running with no command
enters the REPL: the prompt returns after each command so you can keep
investigating. Always add --rm so the container is automatically removed
when you quit (exit/quit or Ctrl+C) — this prevents leftover
("sampah") containers piling up:
docker run -it --rm wahyouka/jin:v2.4.1-alpine-latest
Inside the REPL you can type commands or a bare URL, e.g.:
jin> https://example.com
jin> ports -t example.com -p 80,443
jin> dns -t example.com
jin> exit
One-shot command. Pass the command directly; the program runs once
and exits. Add --rm to clean up the container automatically:
docker run -it --rm wahyouka/jin:v2.4.1-alpine-latest ports -t example.com
docker run -it --rm wahyouka/jin:v2.4.1-alpine-latest dns -t example.com
docker run -it --rm wahyouka/jin:v2.4.1-alpine-latest subdomains -t example.com
Reuse a single container (no --rm). docker run always creates a
new container, so if you prefer one persistent container, give it a name
and reconnect or run commands into it:
docker run -it --name jin-session wahyouka/jin:v2.4.1-alpine-latest # then quit
docker start -ai jin-session # reconnect to REPL
docker exec -it jin-session ports -t example.com # run a command inside it
docker rm -f jin-session # remove when done
(Optional) Build the image locally:
docker build -t <yourusername>/jin:latest .
docker push <yourusername>/jin:latest
Running jin with no arguments starts an interactive session. Type any of the commands below (or a bare URL), press Enter to run it, and the prompt returns afterwards so you can keep investigating. Press Ctrl+C (or type exit/quit) to leave. Up/Down arrow keys recall history, and Tab completes command names.
jin
jin> https://example.com
jin> ports -t example.com -p 80,443
jin> tech-stack -t example.com --subdomains --cve
jin> dns -t example.com
jin> whois -t example.com
jin> scan -t example.com -o report.json
jin> exit
For scripts and Docker, commands can also be passed directly — the program runs once and exits:
jin <command> [options] <url> [options]
Or, using Docker:
docker run -it <yourusername>/jin:latest <command> [options] <url> [options]
We welcome contributions! To contribute:
git checkout -b feature-name.git commit -m "Add feature-name".git push origin feature-name.This project is licensed under the Apache 2.0 License. See the LICENSE file for details.
The tools in this project are intended for ethical and educational purposes only. Use them responsibly and avoid actions that could harm others or violate privacy laws.
Jin began as sapiuwu/jin, a project focused on ethical port scanning and DDoS simulation for educational purposes. It has since been rewritten in Go and repurposed as a passive OSINT and recon toolkit for security research and education.
Content type
Image
Digest
sha256:f25e8f296…
Size
9.1 MB
Last updated
25 days ago
docker pull wahyouka/jin:v2.4.1-alpine-3.20