akawashiro / procinsh
git clone https://github.com/akawashiro/procinsh.git
v0.1.18 · 3d ago
Explore Linux processes in 3D. A real-time process inspector powered by Rust, eBPF and Three.js.
+2
stars, 24h · #10,688
+~9
stars, 7 days · #12,618
+~40
stars, 30 days · #15,141
118
★ total · +8% this week
10
forks · 18 open issues
Star history (as recorded here)
LanguageTypeScript
LicenseMIT
Created2026-09-21 (1mo ago)
Last pushtoday
Watchers0
OwnerUser
GitHub topics
Links
README excerpt
# ProcInSh - Process in the Shell ProcInSh (pronounced "proc-in-shell") is a web-based process inspector for Linux. Like Ghost in the Shell, you can wander through process space with your ghost. See also a blog post. Try the interactive demo. Join our Discord server for questions and discussion. ## Screenshot ## Usage Requires Linux x86-64. Both installation methods compile native code and require Rust, a C compiler, clang with the BPF backend, bpftool, pkg-config, libelf and zlib development files, and BTF information at `/sys/kernel/btf/vmlinux`. Support on WSL2 is very limited, I recommend building procinsh from source rather than installing it from crates.io. ### Install from crates.io Install procinsh from crates.io and run it: (Sorry, we assume you are using Ubuntu, please reinterpret not so) [code] Then run and open http://127.0.0.1:9090 in your browser. To allow remote access, use `--allow-non-loopback`, but be careful: this exposes process memory and environment variables without any authentication. [code] If you don't want to use `sudo`, please use setcap instead of it. [code] `CAP_SYS_ADMIN` enables UNIX socket peer diagnostics in other network namespaces. Without it, ProcInSh keeps available socket information and reports missing peer diagnostics as warnings; an unknown peer does not mean an unconnected socket. ### Self build on Linux #### Ubuntu Also requires Node.js 22.12 or newer with npm and Rust via rustup. The Rust version and components are pinned in `rust-toolchain.toml`; rustup installs them automatically when needed. Clone this repository and run the following from its root: [code] Then run: [code] #### NixOS With Rust installed via rustup, create `shell.nix` in the repository root: [code] Build the web assets and binary inside the Nix shell: [code] The binary links to libraries such as `libelf` in `/nix/store`. Create a GC root to keep these dependencies from being removed by `nix-collect-garbage`: [code] Keep `.nix-gcroot` while using the binary. Then run: [code] ### Building on WSL2 (Ubuntu) Ubuntu's `bpftool` wrapper may fail with `bpftool not found for kernel ...` because the WSL2 kernel version differs from the Ubuntu tools package. Set `BPFTOOL` to the packaged executable directly, bypassing the wrapper: [code] Then run: [code] _Now, where shall I go? The process space is vast._