Written in Rust · MIT License · Cross-platform

The process manager your infrastructure deserves.

Lightweight, cross-platform process manager written in Rust. A modern alternative to PM2 — faster boot, lower memory, and crash recovery that's 42× quicker.

42× faster crash recovery 20× lower memory 4 ms restart time
zsh — ~/projects/myapp
$
42×
faster crash recovery
4.0 ms vs 167.7 ms
20×
lower memory at scale
7 MB vs 144 MB (100 procs)
3.9×
faster boot time
100.8 ms vs 395.1 ms
7.4×
faster fleet start
819 ms vs 6,037 ms (100 procs)

vs PM2 · measured on Linux · GitHub Actions Ubuntu · median of 5 runs

Full benchmark results

Everything a process manager should do.

01

Language-agnostic

Run any executable — Node.js, Python, Go, Rust, shell scripts, compiled binaries. If it runs in a terminal, oxmgr can manage it.

02

Declarative oxfile.toml

Define all processes in a single TOML file. oxmgr apply is fully idempotent — run it in CI, on deploy, or locally without side effects.

03

Health checks + auto-restart

Configure a health command per process. oxmgr polls it and restarts the process automatically when it fails, with configurable backoff.

04

Crash-loop protection

Set max_restarts to halt a runaway process after N consecutive failures. Prevents a broken deploy from consuming all system resources.

05

Resource limits

Cap CPU and memory per process via cgroup v2 on Linux. Keep a runaway worker from taking down your entire node.

06

Built-in terminal UI

Run oxmgr ui for an interactive dashboard showing all processes, their status, resource usage, and live logs in a single terminal view.

07

PM2 compatibility

Drop in an ecosystem.config.json and it works. No rewriting configs to migrate — oxmgr reads PM2 ecosystem files natively.

08

Git + webhook deploys

Trigger oxmgr apply via a webhook after a git push. Pairs cleanly with any CI/CD pipeline — no agent daemons required on the target host.

09

Cross-platform

Runs on Linux, macOS, and Windows. The same oxfile.toml works on your dev laptop and production server without modification.

10

System service integration

Register oxmgr as a systemd service, launchd agent, or Windows Task Scheduler task. Auto-start on boot with a single command.

Run oxmgr ui and see everything at once.

Interactive dashboard showing all processes, status, PID, uptime, CPU, RAM, and a live detail sidebar — all in your terminal.

oxmgr ui
oxmgr terminal UI showing process list and sidebar with CPU, RAM and status info

Get oxmgr running in seconds.

Pick your package manager. All channels track the same releases and binaries are pre-built for Linux, macOS, and Windows.

No Rust toolchain required for prebuilt binaries
Auto-updates via your package manager
Single static binary, no runtime dependencies

Having trouble? See the install guide on GitHub.

$npm install -g oxmgr

One file. All your processes.

A declarative oxfile.toml defines everything. Or keep your existing PM2 ecosystem.config.json — it works out of the box.

Idempotent — safe to run in CI or on every deploy
Per-process env vars, health checks, restart policies
PM2 ecosystem.config.json compatible, zero migration
oxfile.toml
version = 1

[defaults]
restart_policy = "on_failure"
max_restarts = 10
stop_timeout_secs = 5

[[apps]]
name = "api"
command = "node server.js"
cwd = "./services/api"
health_cmd = "curl -fsS http://127.0.0.1:3000/health"

[apps.env]
NODE_ENV = "production"
PORT = "3000"

[[apps]]
name = "worker"
command = "python worker.py"
cwd = "./services/worker"

[apps.env]
PYTHONUNBUFFERED = "1"

Your infrastructure is waiting.

MIT licensed, open source, no telemetry, no surprises. Just a fast process manager that stays out of your way.