Platforms & Networking
This guide covers platform-specific notes and Docker networking behavior.
Windows
Section titled “Windows”Shannon on Windows is supported through WSL2. Native Windows, including Git Bash, is not supported: the CLI refuses to start there and points you to this guide. WSL2 is unaffected.
Ensure WSL2
Section titled “Ensure WSL2”wsl --installwsl --set-default-version 2
# Check installed distros.wsl --list --verbose
# If you do not have a distro, install one.wsl --list --onlinewsl --install Ubuntu-24.04
# If your distro shows VERSION 1, convert it to WSL2.wsl --set-version <distro-name> 2Install Docker Desktop on Windows and enable the WSL2 backend under Settings > General > Use the WSL 2 based engine.
Run Shannon inside WSL:
npx @keygraph/shannon setupnpx @keygraph/shannon start -u https://your-app.com -r /path/to/your-repogit clone https://github.com/KeygraphHQ/shannon.gitcd shannoncp .env.example .envpnpm installpnpm build./shannon start -u https://your-app.com -r /path/to/your-repoTo open the Temporal Web UI, navigate to http://localhost:8233 in your Windows browser. Shannon publishes the UI on the loopback address only, so use localhost rather than your WSL IP address.
Linux works with native Docker. Depending on your Docker setup, you may need sudo. If output files have permission issues, ensure your user has access to the Docker socket and workspace directory.
macOS works with Docker Desktop installed.
Testing local applications
Section titled “Testing local applications”Docker containers cannot reach localhost on your host machine. Use host.docker.internal instead. The same applies to a local model server such as Ollama, LM Studio, or vLLM:
npx @keygraph/shannon start -u http://host.docker.internal:3000 -r /path/to/repo./shannon start -u http://host.docker.internal:3000 -r /path/to/repoCustom hostnames
Section titled “Custom hostnames”If your local stack uses custom hostnames mapped in /etc/hosts, Shannon forwards those entries into the worker container at scan start.
To disable forwarding:
export SHANNON_FORWARD_HOSTS=falseIn source-build mode, you can also add this to .env:
SHANNON_FORWARD_HOSTS=false