MS MarlinSpike Passive OT/ICS Topology Workbench
Open-source OT/ICS passive topology mapping

Turn packet captures into topology, findings, and a shared responder workbench.

MarlinSpike is the open-source multi-user workbench for passive OT and ICS network analysis. Feed it `pcap` or `pcapng`, keep packet transmission at zero, and review topology, asset context, cross-Purdue paths, suspicious external communications, and portable JSON report artifacts with the team.

Shared web workbench Portable JSON report contract Docker-first deployment Open-source core of Fathom
MarlinSpike workbench screenshot
Shared analyst workbench Project-scoped intake, report review, and responder collaboration built around passive OT and ICS analysis.
Collection model
Passive only
Deployment
Docker first
Artifact boundary
Portable JSON
Operator fit
Team workbench
Why teams use it

Built for OT engagements, not generic packet tinkering

MarlinSpike is designed around operational workflow, report portability, and responder-facing output, not just protocol decoding.

Passive mapping

PCAP-driven OT/ICS discovery without transmitting a single packet

MarlinSpike ingests captures, reconstructs topology, infers Purdue placement, and surfaces role and vendor hints from passive traffic alone.

Responder workflow

A shared workbench instead of a single-user desktop analyzer

Projects, scans, report history, diffing, and findings review are built for team engagements on temporary field hosts or lab servers.

Portable artifacts

The JSON report is the product boundary

Packet analysis feeds a portable report artifact that can be reviewed in MarlinSpike, passed to downstream tooling, or preserved as evidence.

Field footprint

Built for temporary deployments and real OT handling constraints

The app is designed for reverse-proxied Docker Compose deployments, lightweight engagement hosts, and air-gapped operational realities.

Coverage

OT-aware topology, risk, and suspicious external communication review

MarlinSpike surfaces cross-zone paths, write-capable paths, beaconing, DNS exfiltration indicators, and high-priority targets from passive traffic.

Open source

Source, issues, and release tracking live on GitHub

The public repository carries the source code, license, issue tracker, and release surfaces for MarlinSpike.

Start here

Everything a visitor should be able to find fast

Start with the docs, deployment path, source repository, and release channel without digging through the repo first.

Full wiki
Docs

Documentation and deployment guide

Read product, deployment, architecture, and workflow documentation in one place.

Open docs
Packages

Downloads and package status

See the real distribution surface, including source downloads, Docker deployment, and what binaries and packages are still not published yet.

Open downloads
Source

Official source repository

Browse the codebase, license, issues, and source archives in the official GitHub repository.

Open source repo
External

Official release channel

The GitHub releases surface is the official place to watch for tagged binaries once they start being published.

Open releases page
Actual product screens

Show the workbench, not abstract promises

These screens show the actual product surfaces teams use after deployment.

Distribution

Source and Docker today, broader packaging later

MarlinSpike is source-first right now, with Docker as the supported deployment path and no fake installer story layered on top.

Full downloads page
Official repo

Source code repository

The public GitHub repo is the canonical source code surface for MarlinSpike, including issues, license, and history.

Open repository
Download

Source zip archive

Download the current main branch as a zip snapshot when you want the source tree without cloning.

Download zip
Official path

Docker deployment path

The supported install path today is source plus Docker Compose behind a reverse proxy.

Open deployment docs
No binaries yet

Tagged binary releases

The official binary release surface exists on GitHub, but it does not currently contain published artifacts.

Watch releases

Typical deployment flow

Clone the repo, set secrets in `.env`, build with Docker Compose, and place the app behind a reverse proxy. That remains the cleanest supported install path for now.

git clone https://github.com/riverrisk/marlinspike.git
cd marlinspike
cp .env.example .env
docker compose up -d --build
Deployment Docs