Installation

Recommended: Git Clone

Cloning the repo lets you audit the source before running, and verifies integrity via SHA-256 checksums.

git clone https://github.com/darkbrew/darkbrew.git
cd darkbrew
bash install.sh

Alternative: One-liner

curl -fsSL https://darkbrew.sh/install.sh | bash
Security note: We recommend git clone over piping curl to bash. This lets you inspect install.sh before running it and verifies the SHA-256 checksum of darkbrew.sh.

System Requirements

RequirementMinimumRecommended
macOS12 Monterey14 Sonoma+
Bash3.2 (system)3.2+
HomebrewRequiredLatest
Python3.93.11+
Disk2 GB10 GB (all tools)
DockerOptionalFor labs feature

Quick Start

# Install DarkBrew globally
darkbrew setup

# Install ~30 essential tools
darkbrew install --quick

# Or install specific tools
darkbrew install nmap hydra ffuf nuclei

# Or install by category
darkbrew install --category recon,web

# Or install everything
darkbrew install --all

Package Management

CommandDescription
darkbrew install <tool>Install a specific tool
darkbrew install --allInstall all formulae
darkbrew install --quickInstall ~30 essentials
darkbrew install --category recon,webInstall by category
darkbrew install --cask burpsuiteInstall GUI application
darkbrew install --offlineInstall from cache only
darkbrew install --skip-depsSkip dependency resolution
darkbrew uninstall <tool>Remove a tool
darkbrew updateUpdate all installed tools
darkbrew pin <tool>Prevent tool from updating
darkbrew unpin <tool>Allow pinned tool to update
darkbrew rollback <tool>Revert to previous version

Discovery

CommandDescription
darkbrew listList all available formulae
darkbrew list --casksList GUI applications only
darkbrew search <query>Search by name or description
darkbrew info <tool>Show tool details
darkbrew statusDashboard: installed vs available
darkbrew outdatedList tools with newer versions
darkbrew deps <tool>Show dependency tree
darkbrew history <tool>Show version history

System & Maintenance

CommandDescription
darkbrew doctorFull system diagnostics (15+ checks)
darkbrew cleanupRemove caches and old downloads
darkbrew configureSet up macOS for pentesting
darkbrew setupInstall as global command
darkbrew analyticsView installation statistics

Workflows

CommandDescription
darkbrew profile <name>Install curated tool profile
darkbrew engage <target>Full engagement scaffolding
darkbrew pipeline <name> <target>Run automated tool chain
darkbrew report <dir>Generate pentest report
darkbrew report <dir> --obsidianExport as Obsidian vault
darkbrew cheatsheet <tool>Quick-reference guide
darkbrew scope check <target>Validate against scope rules
darkbrew proxy start <type>Set up proxy chain

Infrastructure

CommandDescription
darkbrew lab start <name>Launch vulnerable practice target
darkbrew lab stop <name>Stop a running lab
darkbrew arsenal add <name>Download wordlists/payloads
darkbrew monitor <target>Start background recon daemon
darkbrew cloud init <repo>Set up encrypted sync
darkbrew cloud pushSync to remote

Security & Integrity

CommandDescription
darkbrew verifyVerify all installed tools against package managers
darkbrew verify --selfCheck DarkBrew script SHA-256 checksum
darkbrew verify <tool>Verify a specific tool

DarkBrew performs integrity checking by querying the underlying package managers (Homebrew, pip, Go modules) to confirm that installed binaries match their expected state. The --self flag checks the SHA-256 hash of darkbrew.sh against the saved checksum from installation.

Tip: Run darkbrew verify --self after updates to ensure the script hasn't been tampered with.

Profiles

Profiles are curated sets of tools for specific use cases. Install an entire loadout with one command.

ProfileToolsUse Case
bugbounty~18Bug bounty hunting
redteam~20Red team operations
ctf~15CTF competitions
osint~12Open source intelligence
web~16Web application testing
wireless~8Wireless network testing
forensics~10Digital forensics
network~14Network pentesting
darkbrew profile bugbounty    # Install all bug bounty tools
darkbrew profile list         # Show all available profiles

Pipelines

Pipelines are automated tool chains that run sequentially against a target. Each step's output feeds the next.

PipelineStepsDescription
reconsubfinder → httpx → gowitness → nucleiFull reconnaissance
webscanffuf → nikto → nuclei → sqlmapWeb vulnerability scan
networknmap → nmap-scripts → searchsploitNetwork enumeration
osinttheHarvester → sherlock → spiderfootOSINT gathering
fullAll stages combinedComplete assessment
darkbrew pipeline recon target.com
darkbrew pipeline webscan https://target.com
darkbrew pipeline list

Practice Labs

Labs are Docker-based vulnerable applications for practice. Requires Docker Desktop.

LabPortDescription
dvwa8080Damn Vulnerable Web Application
juiceshop3000OWASP Juice Shop
webgoat8081OWASP WebGoat
hacktheboxHTB Pwnbox connector
metasploitableVariousMetasploitable 2
vulnhubVariousVulnHub machine launcher
darkbrew lab start dvwa       # Launch DVWA
darkbrew lab stop dvwa        # Stop it
darkbrew lab list             # Show all labs

Engagements

The engage command creates a full pentest engagement workspace with structured directories, scope templates, scan scripts, and optional tmux layout. Each engagement includes an audit trail that logs all DarkBrew actions.

darkbrew engage client-pentest

This creates:

~/pentests/2026-01-15_client-pentest/
├── SCOPE.md                    # Scope definition template
├── audit.log                   # Automatic action audit trail
├── notes/README.md             # Engagement notes
├── scans/{nmap,web,vuln}/      # Organized scan output
├── loot/{creds,files,screenshots}/
├── exploits/
└── reports/

Reports & Obsidian Export

Generate structured pentest reports from engagement data. Parses nmap, nuclei, and sqlmap outputs automatically.

# Markdown report (default)
darkbrew report ~/pentests/engagement

# HTML report
darkbrew report ~/pentests/engagement --html

# Export as Obsidian vault
darkbrew report ~/pentests/engagement --obsidian

The --obsidian flag creates a vault structure with interlinked notes, scan pages, findings templates, and evidence galleries — ready to open in Obsidian.

Offline Mode

Use --offline to install tools from your local Homebrew cache without network access. Useful for air-gapped environments or when working on unstable connections.

# Pre-download tools (while online)
darkbrew install --all

# Later, reinstall from cache (offline)
darkbrew install --offline nmap
Note: Offline mode only works for tools already cached by Homebrew. Pip, Go, and git-based tools require network access.

Tool Categories

CategoryExamples
reconnmap, masscan, subfinder, amass, httpx
webburpsuite, ffuf, sqlmap, nikto, nuclei
exploitmetasploit, hydra, john, hashcat
networkwireshark, bettercap, tcpdump, scapy
wirelessaircrack-ng, bettercap, kismet
forensicsbinwalk, radare2, ghidra, volatility
cryptoopenssl, testssl, trufflehog, gitleaks
osintsherlock, spiderfoot, shodan-cli
defenseyara, clamav, fail2ban, suricata
mobilefrida, objection, apktool
utiljq, bat, ripgrep, tmux, fzf

Directory Structure

~/.darkbrew/
├── bin/                    # DarkBrew binary + symlinks
├── Cellar/                 # Installed formula metadata
├── opt/                    # Git-cloned tools
├── etc/                    # Configuration files
├── share/
│   ├── wordlists/          # Arsenal downloads
│   └── zsh/site-functions/ # Shell completions
└── var/
    ├── db/
    │   ├── manifest.json   # Installed tools registry
    │   ├── pinned.json     # Pinned versions
    │   ├── history.json    # Version history
    │   └── darkbrew.sha256 # Self-verification hash
    └── log/
        └── darkbrew.log    # Operation log

Environment Variables

VariableDefaultDescription
DARKBREW_PREFIX~/.darkbrewInstallation root
DARKBREW_PARALLEL4Max parallel install jobs
DARKBREW_SKIP_DEPSunsetSet to 1 to skip dependency resolution
DARKBREW_OFFLINEunsetSet to 1 for offline cache-only installs
DARKBREW_ACTIVE_ENGAGEunsetActive engagement directory for audit trail

Troubleshooting

darkbrew: command not found

# Re-run setup
bash darkbrew.sh setup

# Or add to PATH manually
export PATH="$HOME/.darkbrew/bin:$PATH"

Homebrew not found

# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# On Apple Silicon, add to PATH
eval "$(/opt/homebrew/bin/brew shellenv)"

Permission denied

DarkBrew never requires sudo. If you see permission errors, the directory structure may have been created with wrong permissions:

chmod -R u+rwX ~/.darkbrew

Full system check

darkbrew doctor

This runs 15+ diagnostic checks including SIP status, firewall, architecture, disk space, all dependencies, directory integrity, and PATH configuration.