Quick Start

Get from zero to running processes in under two minutes.

1 — Install

npm install -g oxmgr

More install methods: Homebrew, APT, Chocolatey, Scoop, AUR, source

2 — Write your oxfile.toml

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"

Full reference: oxfile.toml configuration

3 — Apply

oxmgr validate ./oxfile.toml        # validate first
oxmgr apply ./oxfile.toml           # apply desired state
oxmgr apply ./core.toml ./api.toml  # multiple files supported

apply is idempotent — safe to run in CI/CD. Starts new processes, restarts changed ones, leaves untouched ones alone.

4 — Monitor

oxmgr list           # show all processes
oxmgr logs api -f    # stream logs
oxmgr ui             # interactive terminal UI

Full CLI reference: CLI Reference

5 — Foreground mode (Docker / Kubernetes)

oxmgr runtime ./oxfile.toml
# PM2 ecosystem files work too:
oxmgr runtime ./ecosystem.config.js

runtime runs without a daemon — stays in foreground, forwards logs to stdout/stderr, handles SIGTERM/SIGINT, and applies restart policy inline. Use this as your container entrypoint instead of pm2-runtime.

Still have questions?

Open an issue or browse the source on GitHub.

Open an Issue ↗