Backed by mandΕ
Pulsar is the real-time process observability platform that gives you a complete, instant view of everything running on your infrastructure. Custom viewports. Thread-level drill-down. Process genealogy. Built for engineering teams who refuse to fly blind.
$ pulsar aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 169436 13036 ? Ss 09:14 0:02 /sbin/init
root 2 0.0 0.0 0 0 ? S 09:14 0:00 [kthreadd]
www-data 1842 2.3 1.4 823412 57448 ? Sl 09:15 1:47 nginx: worker
postgres 2104 1.1 3.2 412956 131072 ? Ss 09:15 0:52 postgres
deploy 3891 0.4 0.8 224816 32768 ? Sl 09:16 0:18 node server.js
redis 4102 0.2 0.5 108244 20480 ? Ssl 09:16 0:09 redis-server
deploy 5743 0.0 0.1 12344 4096 pts/0 R+ 10:31 0:00 pulsar aux
$ pulsar -eo pid,user,%cpu,%mem,stat,comm --sort=-%cpu
PID USER %CPU %MEM STAT COMMAND
1842 www-data 2.3 1.4 Sl nginx
2104 postgres 1.1 3.2 Ss postgres
3891 deploy 0.4 0.8 Sl node
4102 redis 0.2 0.5 Ssl redis-server
5743 deploy 0.0 0.1 R+ pulsar
Works seamlessly with your existing stack
Pulsar ships with eight high-leverage features that give you complete observability over your process space. Each one was designed from first principles to solve a real infrastructure pain point.
See every single process on the system β across all users, all terminals, all states. No blind spots. No permission blockers. Full-spectrum visibility with one command.
pulsar aux / pulsar -e
Visualize parent-child relationships as an ASCII art hierarchy. Understand exactly how processes fork, spawn, and propagate through your system lineage.
pulsar --forest / pulsar -ejH
Build exactly the view your team needs. Select, rename, and resize any combination of output columns. Your data, your schema, zero compromise.
pulsar -o pid,user,%cpu,comm
Don't stop at the process boundary. Drill into individual threads with LWP identifiers and thread counts. See exactly what's running inside every worker.
pulsar -eLf / pulsar -T
Zero in on exactly the process you need β by PID, by user, by command name. No scrolling through noise. Surgical selection at O(1) speed.
pulsar -p 1842 / pulsar -C nginx
Surface what matters by sorting on any column. CPU hogs float to the top. Memory leaks become instantly visible. Your north star metric, always front and center.
pulsar --sort=-%cpu
Switch between user-oriented, long, and extra-full formats. Each format is a different lens on the same underlying data β from high-level overview to deep system internals.
pulsar -f / pulsar -l / pulsar -F
Never truncate critical command paths again. Wide output mode expands your view to capture every argument, every flag, every detail of long-running processes.
pulsar -ww
Point Pulsar at any system. It reads the process table in real-time, giving you an instant snapshot of every active entity. No agents, no sidecars, no overhead.
Choose exactly the columns you need β PID, USER, %CPU, %MEM, STAT, COMMAND, and dozens more. Rename headers, set widths, define your perfect schema.
Narrow your focus to specific users, PIDs, or command names. Sort by resource consumption to surface anomalies instantly.
Explore process genealogy with tree views. Inspect individual threads. Go from system-wide overview to thread-level detail in a single workflow.
| Feature | Pulsar | Competitor A | Competitor B | Competitor C |
|---|---|---|---|---|
| All-process snapshot | β Unlimited | β οΈ Own user only | β οΈ 500 limit | β |
| Custom output columns | β 47+ columns | β οΈ 8 columns | β 20 columns | β Fixed |
| Process tree view | β --forest | β | β οΈ 2 levels | β |
| Thread-level drill-down | β LWP + SPID | β | β | β οΈ Count only |
| Dynamic sorting | β Any column | β οΈ PID only | β CPU/MEM | β |
| Wide output mode | β Unlimited | β 80 cols | β 120 cols | β 80 cols |
| Process state codes | β Full STAT | β οΈ Basic | β οΈ Basic | β |
| Pricing | Free tier | $49/mo min | $29/mo min | Enterprise only |
$ pulsar aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 169436 13036 ? Ss 09:14 0:02 /sbin/init
root 2 0.0 0.0 0 0 ? S 09:14 0:00 [kthreadd]
root 11 0.0 0.0 0 0 ? S 09:14 0:00 [migration/0]
root 287 0.0 0.0 28340 2892 ? Ss 09:14 0:00 /usr/sbin/cron
syslog 312 0.0 0.0 263036 4288 ? Ssl 09:14 0:01 /usr/sbin/rsyslogd
root 398 0.0 0.1 72304 6124 ? Ss 09:14 0:00 /usr/sbin/sshd
www-data 1842 2.3 1.4 823412 57448 ? Sl 09:15 1:47 nginx: worker process
www-data 1843 1.8 1.3 819204 53120 ? Sl 09:15 1:22 nginx: worker process
postgres 2104 1.1 3.2 412956 131072 ? Ss 09:15 0:52 /usr/lib/postgresql/15/bin/postgres
postgres 2118 0.3 0.6 413212 24576 ? Ss 09:15 0:11 postgres: checkpointer
deploy 3891 0.4 0.8 224816 32768 ? Sl 09:16 0:18 node /app/server.js
redis 4102 0.2 0.5 108244 20480 ? Ssl 09:16 0:09 /usr/bin/redis-server *:6379
deploy 5743 0.0 0.1 12344 4096 pts/0 R+ 10:31 0:00 pulsar aux
$ pulsar -ef --forest
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 09:14 ? 00:00:02 /sbin/init
root 287 1 0 09:14 ? 00:00:00 \_ /usr/sbin/cron
syslog 312 1 0 09:14 ? 00:00:01 \_ /usr/sbin/rsyslogd
root 398 1 0 09:14 ? 00:00:00 \_ /usr/sbin/sshd
root 5690 398 0 10:28 ? 00:00:00 | \_ sshd: deploy [priv]
deploy 5710 5690 0 10:28 ? 00:00:00 | \_ sshd: deploy@pts/0
deploy 5711 5710 0 10:28 pts/0 00:00:00 | \_ -bash
deploy 5743 5711 0 10:31 pts/0 00:00:00 | \_ pulsar -ef --forest
root 1840 1 0 09:15 ? 00:00:00 \_ nginx: master process
www-data 1842 1840 2 09:15 ? 00:01:47 | \_ nginx: worker process
www-data 1843 1840 1 09:15 ? 00:01:22 | \_ nginx: worker process
postgres 2104 1 1 09:15 ? 00:00:52 \_ /usr/lib/postgresql/15/bin/postgres
postgres 2118 2104 0 09:15 ? 00:00:11 \_ postgres: checkpointer
postgres 2119 2104 0 09:15 ? 00:00:08 \_ postgres: background writer
$ pulsar -eo pid,user,%cpu,%mem,stat,rss,comm --sort=-%mem
PID USER %CPU %MEM STAT RSS COMMAND
2104 postgres 1.1 3.2 Ss 131072 postgres
1842 www-data 2.3 1.4 Sl 57448 nginx
1843 www-data 1.8 1.3 Sl 53120 nginx
3891 deploy 0.4 0.8 Sl 32768 node
2118 postgres 0.3 0.6 Ss 24576 postgres
4102 redis 0.2 0.5 Ssl 20480 redis-server
5743 deploy 0.0 0.1 R+ 4096 pulsar
$ pulsar -C nginx -o pid,user,%cpu,stat,comm
PID USER %CPU STAT COMMAND
1840 root 0.0 Ss nginx
1842 www-data 2.3 Sl nginx
1843 www-data 1.8 Sl nginx
$ pulsar -eLf
UID PID PPID LWP C NLWP STIME TTY TIME CMD
root 1 0 1 0 1 09:14 ? 00:00:02 /sbin/init
postgres 2104 1 2104 0 6 09:15 ? 00:00:12 /usr/lib/postgresql/15/bin/postgres
postgres 2104 1 2105 0 6 09:15 ? 00:00:04 /usr/lib/postgresql/15/bin/postgres
postgres 2104 1 2106 0 6 09:15 ? 00:00:08 /usr/lib/postgresql/15/bin/postgres
postgres 2104 1 2107 0 6 09:15 ? 00:00:03 /usr/lib/postgresql/15/bin/postgres
postgres 2104 1 2108 0 6 09:15 ? 00:00:15 /usr/lib/postgresql/15/bin/postgres
postgres 2104 1 2109 0 6 09:15 ? 00:00:10 /usr/lib/postgresql/15/bin/postgres
deploy 3891 1 3891 0 4 09:16 ? 00:00:06 node /app/server.js
deploy 3891 1 3892 0 4 09:16 ? 00:00:04 node /app/server.js
deploy 3891 1 3893 0 4 09:16 ? 00:00:05 node /app/server.js
deploy 3891 1 3894 0 4 09:16 ? 00:00:03 node /app/server.js
$ pulsar -p 2104 -L
PID LWP TTY TIME CMD
2104 2104 ? 00:00:12 postgres
2104 2105 ? 00:00:04 postgres
2104 2106 ? 00:00:08 postgres
2104 2107 ? 00:00:03 postgres
2104 2108 ? 00:00:15 postgres
2104 2109 ? 00:00:10 postgres
nginx: worker process
by www-datacron job completed (exit 0)
node worker.js by
deploysshd: admin [priv] by
rootapt-get update completed
(exit 0)"Pulsar's Custom Viewport feature completely changed our incident response workflow. We went from drowning in noisy process lists to surgical precision targeting. Our MTTR dropped significantly the week we deployed it."
"The --forest view is genuinely one of the best debugging tools I've ever used. I can trace any zombie or orphan process back to its parent chain in seconds. We used to spend hours on this."
"I'm a solo founder running nine services on three boxes. Pulsar gives me instant clarity on what's eating memory, what's spiking CPU, and what's just sitting there as a zombie. It's mission-critical for me."
"Thread-level observability with LWP tracking was the unlock we needed. Our Java monolith has hundreds of threads per process and Pulsar makes them legible. We've caught three thread-leak bugs this quarter alone."
Every plan includes real-time snapshots, basic process listing, and community support. Upgrade for advanced observability.
aux, -e)--sort)-f, -l)-ww)--forest)-eLf)-C)--headers)-M / Z)The default view shows only processes owned by you, associated with your current terminal.
Universal Scan (pulsar aux or pulsar -e) lifts all restrictions and
shows every process on the system β across all users, all terminals, including background
daemons and kernel threads. Most teams use Universal Scan as their default workflow.
Pulsar is built for snapshot-level observability β a precise, point-in-time view of your entire process space. For continuous monitoring with refresh, pair Pulsar snapshots with your existing metrics pipeline or dashboarding stack. Each snapshot is deterministic and consistent.
Custom Viewports let you select exactly which columns appear in your output using the
-o flag. You can choose from 47+ supported columns, rename headers, and set custom
widths. For example: pulsar -eo pid,user,%cpu,comm --sort=-%cpu gives you a
CPU-focused view. You can even combine multiple -o flags for complex schemas.
STAT codes are Pulsar's process state indicators. R = running, S = sleeping (interruptible), D =
sleeping (uninterruptible, usually I/O), T = stopped, Z = zombie (defunct), I = idle kernel
thread. Additional modifiers include: s (session leader), l (multi-threaded), + (foreground
group), < (high priority), N (low priority), L (locked in memory). The stat column
gives you the full multi-character view.
Absolutely. Pulsar reads from the process table in a read-only fashion. No data leaves your infrastructure unless you explicitly configure an export. All data in transit is encrypted. Enterprise customers get SOC 2 Type II compliance, audit logs, and RBAC out of the box.