No description
This repository has been archived on 2026-07-12. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-06-15 09:06:41 -07:00
.opencode chore: sync residual agent and skill configs 2026-06-14 03:09:01 +01:00
cmd/res-init feat(init): add --skip-session flag and skip session in system mode 2026-06-12 21:28:53 -07:00
config fix(init/config): accept legacy grace_timeout format 2026-06-12 21:20:52 -07:00
install feat(init): redesign res-init CLI and add services.toml registry 2026-06-12 21:16:30 -07:00
service fix: stale doc reference in service.go 2026-06-15 09:06:41 -07:00
.gitignore init: res-init userspace init daemon (Phase 2) 2026-05-30 19:29:50 -07:00
go.mod init: res-init userspace init daemon (Phase 2) 2026-05-30 19:29:50 -07:00
go.sum init: res-init userspace init daemon (Phase 2) 2026-05-30 19:29:50 -07:00
LICENSE chore: add MIT license 2026-06-15 06:21:28 -07:00
README docs(init): add README and opencode harness 2026-06-13 16:23:20 +01:00

residual/init
=============

userspace init daemon and service manager for residual.

`res-init` runs alongside the host init system (systemd, openrc, runit). It
loads Lua service scripts, harvests zombie processes, exposes a
JSON-over-UNIX-socket RPC, and optionally launches a session binary.

packages:
  init/config/    init-specific TOML config and services.toml registry helpers.
  init/install/   host-init service file writers (systemd, openrc, runit).
  init/service/   service definition loading, dependency ordering, and runner.

binary:
  res-init   daemon + client for residual services.

             daemon mode:
               res-init daemon                 # user mode
               res-init daemon --system        # system mode
               res-init daemon --skip-session  # user mode, no session launch

             client mode:
               res-init ping
               res-init status [name]
               res-init start <name>
               res-init stop <name>
               res-init restart <name>
               res-init enable <name>
               res-init disable <name>
               res-init add <path.lua>
               res-init remove <name>

             system scope (prefix with `system`):
               res-init system ping
               res-init system status [name]
               ...

build:
  go build ./cmd/res-init

module:   git.merith.xyz/residual/init
requires: git.merith.xyz/residual/core

design docs:
  docs/init-design.md      full init subsystem design
  docs/res-init-client.md  daemon/client command reference