@zamdevio/urus
v0.1.1
Published
TypeScript CLI to register and manage app bots under systemd — JSON registry, add/edit/delete, logs, safe path guards, and WSL/Linux friendly. Replaces ad-hoc bash scripts.
Downloads
9
Maintainers
Readme
Urus
npm version Node.js License: MIT
Urus is a small TypeScript CLI for registering long-running app bots on Linux and WSL, with systemd as the process supervisor. It replaces one-off shell scripts with a JSON registry (~/.config/urus/registry.json), interactive wizards, and consistent systemctl / journalctl integration.
What it does (facts)
| Area | Behavior |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Registry | Persists bot name, runtime, paths, optional Python venv metadata, optional deps-install command, timestamps. |
| Runtimes | Node.js, Python (optional venv under the bot dir; reuses existing venv/ when valid), PHP. |
| Systemd | Generates unit files from templates; install path /etc/systemd/system/<name>.service (sudo); start / stop / restart / logs wrap systemctl / journalctl. |
| Safety | Path checks before destructive actions; delete removes registry row + managed unit file only—not your bot source tree. |
| Automation | Global --non-interactive / URUS_NON_INTERACTIVE=1; add / edit support flags; config has get / set and JSON output modes. |
| Deps | Optional install command on add; on restart, runs again when the stored command changes (tracked in registry) or when you pass --install-deps. Venv activation follows bash vs fish (SHELL / FISH_VERSION). |
| Tests | Vitest unit + integration smoke (npm test); npm run build produces dist/ + copied .service templates. |
Requirements
- Node.js ≥ 18
- systemd and sudo where you install units (typical Linux / WSL2 setups)
Install
npm install -g @zamdevio/urusurus --versionQuick start
urus init
urus add # interactive wizard
urus list
urus status # or: urus status --jsonDocumentation site: urus.zamdev.dev. The same material lives under docs/ in this repository, and urus help <command> covers in-terminal topics.
Commands (overview)
init, add, edit, list, delete, start, stop, restart, status, logs, config / cfg, version, help.
Examples: urus help add, urus help delete, urus config --json.
Development
npm install
npm run build
npm test
npm run lint
npm run dev -- --help- Source:
src/cli/(Commander + prompts),src/core/(registry, systemd, venv),src/utils/. - Legacy:
scripts/legacy/ships a compatibility shell helper for npm package consumers.
Project links
| Resource | URL | | ----------------- | -------------------------------------------------------------------------------- | | Documentation | urus.zamdev.dev | | npm | npmjs.com/package/@zamdevio/urus | | Repository | github.com/zamdevio/urus | | Issues | github.com/zamdevio/urus/issues |
License
MIT — see the license field in [package.json](./package.json). Copyright Abdisamed Mohamed and contributors.
