Skip to content

l5yth/psn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

psn

Rust Codecov GitHub Release Crates.io AUR Version Nix Flake Gentoo Top Language License: Apache-2.0

psn is a Rust terminal UI for viewing process status and sending signals.

psn TUI overview

  • Browse running processes in a terminal UI
  • Filter processes by text match <FILTER> or regular expression -r <PATTERN>
  • Filter interactively while browsing with /
  • Show only the current user's processes with -u
  • Send Unix signals 1 through 9 to the selected process

Read more: Dev.to: psn - a minimalist process navigator for Linux

Dependencies

  • GNU/Linux (process data is read from /proc via sysinfo — no external binaries required)
  • Rust stable toolchain (Rust 2024 edition, Cargo) for building from source

Core crates: ratatui, crossterm, sysinfo, nix, anyhow, users.

Installation

Helpers exist for Arch and Gentoo-based systems but you can install also via crates.io or from source directly.

Archlinux

See PKGBUILD

Gentoo

See psn-9999.ebuild

Cargo Crates

cargo install psn

From Source

Build from source:

git clone https://github.com/l5yth/psn.git
cd psn
cargo build --release

Run the built binary:

./target/release/psn

Or run directly in development:

cargo run --release --

Usage

psn v0.1.2
process status navigator
apache v2 (c) 2026 l5yth

usage: psn <FILTER>
usage: psn [OPTIONS] -f <FILTER>
usage: psn [OPTIONS] -r <PATTERN>

Terminal UI for browsing process status and sending Unix signals.

Options:
  -h, --help            Show usage instructions
  -v, --version         Show version
  -f, --filter <value>  Filter process names/commands (case insensitive string)
  -r, --regex <value>   Use regex matching (regular expression pattern)
  -u, --user            Show only current user's processes

Examples:

# substring filter (positional)
psn "sshd"

# substring filter via option
psn -f "systemd"
psn --filter "python"

# regex filter
psn -r 'ssh(d|agent)'
psn --regex '(nginx|apache2)'

# current user only
psn -u
psn -u -f "cargo"
psn -u -r '^bash$'

In-app keys:

  • q: quit
  • r: refresh process list
  • / : move selection
  • PgUp / PgDn: page up/down
  • / : collapse / expand tree node
  • /: open interactive filter prompt (live, substring match); Enter confirms, Esc cancels
  • 1..9: send corresponding signal to selected process (prompts for confirmation); not available while the filter prompt is open — press Enter or Esc first

Development

cargo check
cargo test --all --all-features --verbose
cargo fmt --all
cargo clippy --all-targets --all-features -- -D warnings