Service management evolved

Manage services with one clean system.

Ninja packages services as shurikens: installable units with their own metadata, scripts, config, and lifecycle. One product, one path, one place to get started.

Formats

Philosophy

Shurikens are the unit of service.

Instead of juggling scattered tools and configuration formats, Ninja packages each service as a self-contained Shuriken with its own start, stop, log, and config behavior.

Portable

Services travel as packages

Deterministic

Same inputs, same service state

What you get

CLI, GUI, and APIs

A command-line workflow, a Next.js + Tauri desktop app, and HTTP access for automation.

Scriptable

Lua and DSL support

Embed Lua logic in shurikens and extend behavior with a dedicated service DSL.

Reliable

Rust core

The engine is written in Rust for performance, process safety, and service state tracking.

Extensible

MCP, FFI, backup

Integrate with agents, C/C++ code, snapshot service state, and plug into CI/CD workflows.

Quick start

Install, configure, start.

Install Ninja, add a .shuriken package, render templates, and start the service from the CLI or desktop UI.