Skip to main content

Visualizer for processes and their interconnections

Project description

sysgraph

Real-time process-graph visualizer that discovers running OS processes, their inter-process communication channels (pipes, Unix domain sockets, TCP/UDP network connections), and renders them as an interactive force-directed graph in the browser.

Python License

Features

  • Process discovery — enumerates all running OS processes and their parent-child relationships
  • IPC visualization — discovers pipes, Unix domain sockets, and TCP/UDP connections between processes
  • Interactive graph — force-directed graph rendered in the browser with zoom, pan, drag, and search
  • Real-time — fetch the latest process graph on demand via the web UI
  • Fuzzy search — find processes by name, PID, command line, or any property
  • Adjacency filtering — right-click a node to show only its neighbors
  • Configurable — tune d3 force parameters, colors, and filters via the settings panel
  • Export/Import — save and load graph snapshots as JSON

Requirements

  • Linux (relies on /proc filesystem and the ss command)
  • Python ≥ 3.12
  • Root/sudo recommended for full visibility into all processes

Installation

pip install sysgraph

Usage

# Start the web server (default: http://localhost:8000)
sysgraph

# Specify a custom port
sysgraph --port 9000

# Or run as a module
python -m sysgraph

Open your browser to the displayed URL to see the interactive process graph.

For full visibility into all processes and their connections, run with elevated privileges:

sudo sysgraph

Docker

docker run --rm -it --pid=host --net=host gubenkoved/sysgraph

The --pid=host and --net=host flags allow the container to see host processes and network connections.

How It Works

  1. The FastAPI backend uses psutil and Linux-specific APIs (/proc, ss) to discover processes, pipes, Unix domain sockets, and network connections.
  2. It builds a graph of processes (nodes) and their IPC channels (edges).
  3. The browser frontend fetches the graph via GET /api/graph and renders it using force-graph with d3 physics simulation.

Development

Prerequisites

  • Python ≥ 3.12, Linux, Docker
  • Node.js 22 runs inside Docker; no host installation required

Backend

python3 -m venv .venv && source .venv/bin/activate
pip install -e . && pip install -r requirements-dev.in
python src/sysgraph/app.py   # → http://localhost:8000

Frontend (TypeScript + Vite)

./scripts/build-ui.sh         # production build → src/sysgraph/dist/
./scripts/dev-ui.sh           # Vite dev server with HMR on :5173
./scripts/typecheck-ui.sh     # TypeScript type checking
./scripts/lint-ui.sh          # Biome linter (pass --fix to auto-fix)

Tests

pytest src/sysgraph/tests/    # requires Linux /proc

Python linting

./scripts/lint.sh             # ruff check + ruff format + isort

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sysgraph-0.0.16.tar.gz (197.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sysgraph-0.0.16-py3-none-any.whl (194.6 kB view details)

Uploaded Python 3

File details

Details for the file sysgraph-0.0.16.tar.gz.

File metadata

  • Download URL: sysgraph-0.0.16.tar.gz
  • Upload date:
  • Size: 197.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for sysgraph-0.0.16.tar.gz
Algorithm Hash digest
SHA256 1616024ad3f0e5fb8283515e6f9bca7300dc4458cbbe237cec755bdd59727d70
MD5 860f046b2075e1f3be85becb14afff3d
BLAKE2b-256 c3273ac265cff44e65879c90c92c10c7d6f1da88f49572781ce76520d984235e

See more details on using hashes here.

File details

Details for the file sysgraph-0.0.16-py3-none-any.whl.

File metadata

  • Download URL: sysgraph-0.0.16-py3-none-any.whl
  • Upload date:
  • Size: 194.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for sysgraph-0.0.16-py3-none-any.whl
Algorithm Hash digest
SHA256 92659034b7c01ebeabafb4711209103426e79c7691bd2228d923457bcb3459f9
MD5 5856fad8f8c03fe6a38e6c116f798f1f
BLAKE2b-256 7203359cb8a4a07c260b20fb9d909a3f9a8abdb10fcbd534ce604568dc41019f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page