Expand description
Decompose: a process orchestrator for local development with Docker-Compose-compatible config and CLI surface.
The crate is split into a thin client and a long-running daemon. The
decompose binary always runs as the client; on up it spawns a detached
daemon process per project (identified by a SHA-256 of the config
directory plus file set, or by --session NAME) and then talks to it
over a local socket.
§Module map
cli—clapargument definitions for every subcommand.config— YAML parsing, merge/overlay,.envloading,${VAR}interpolation, and validation.daemon— supervisor loop, IPC server, process lifecycle, signal handling, reload/diff, health-probe scheduling.ipc— request/response wire types and a JSON-over-local-socket transport used by both halves.model— runtime types shared by the daemon and its clients (ProcessInstanceSpec,ProcessRuntime,ProcessSnapshot,HealthProbe, …).output— JSON / table formatting and TTY-aware mode resolution.paths— XDG path management and instance-ID hashing.tui— the optional interactive terminal UI built onratatui.tuning— env-var-overridable timing knobs (supervisor tick, IPC timeout, orphan grace period).completion— shell completion script generator.health_probes— exec/HTTP probe execution for readiness and liveness checks.
run_cli is the single entry point used by main.rs. See CLAUDE.md
for the full design notes and project conventions.
Modules§
- cli
- completion
- Shell completion generation.
- config
- daemon
- health_
probes - Health probe runtime.
- ipc
- model
- output
- paths
- tui
- Preliminary TUI for
decompose up --tui. - tuning
- Runtime tuning knobs.
Structs§
- Global
Config - Global config flags that live on the top-level
Clistruct.