Skip to content

Installation

Melvin PETIT edited this page Jun 17, 2026 · 1 revision

Installation

FeedYourSpider is a set of Bash scripts. There is nothing to compile and no package to install: clone the repository and run the entry script.

Requirements

  • Bash 4 or newer. The script enforces this at startup and exits with a clear message if it finds Bash 3.x. Features used throughout (mapfile, |&, associative arrays) are not available in the Bash 3.2 that ships with stock macOS.
  • sudo for some captures, raw-socket scans, and automatic installs.
  • One or more of the wrapped tools, installed on demand. You do not need them up front; FeedYourSpider offers to install whichever one you pick.

Get it

git clone https://github.com/WhiteMuush/FeedYourSpider.git
cd FeedYourSpider
chmod +x feedyourspider.sh
./feedyourspider.sh

That is the whole installation. The first time you select a tool that is not already on your PATH, the launcher offers to install it for you (see Automatic Installation).

macOS note

Stock macOS ships Bash 3.2, which is too old. Install a current Bash and run the script with it:

brew install bash
/opt/homebrew/bin/bash ./feedyourspider.sh   # Apple Silicon
/usr/local/bin/bash ./feedyourspider.sh       # Intel

On macOS the automatic installer uses Homebrew, so make sure brew is on your PATH.

Environment variables

Variable Effect
FEEDYOURSPIDER_OUTPUT_ROOT Base directory for all per-tool output folders. Defaults to $HOME.
NO_COLOR When set (to anything), disables all ANSI color output. See https://no-color.org.

Example: send every tool's results to a scratch directory instead of $HOME:

FEEDYOURSPIDER_OUTPUT_ROOT="/tmp/fys" ./feedyourspider.sh

Color is also disabled automatically whenever stdout is not a terminal (piped or redirected), so logs stay clean in CI or when captured to a file. More on this in Output & Files.

Verifying a checkout

The same commands the CI runs work locally to confirm the scripts are healthy:

# Syntax-check every shell script
find . -name '*.sh' -not -path './.git/*' -print0 | xargs -0 -n1 bash -n

# Confirm the source chain loads and key functions are defined
bash -c '
  source lib/core.sh
  source lib/installer.sh
  source lib/ui.sh
  for m in lib/modules/*.sh; do source "$m"; done
  declare -F nmap_run ensure_command generate_menu
'

See Architecture for what each of those files does.

Clone this wiki locally