Your workflows, from development to verified updates.
chainman runs your project’s just commands in pinned Nix environments, coordinating setup and services for daily development and update verification. It updates dependencies and toolchains together, then runs your project’s checks in the updated environment. Your project owns its toolchains, workflows, and acceptance checks.
Alpha. Expect breaking changes.
Under active development and not recommended for general adoption.
Update the whole project, then verify it.
chainman updates dependencies across your configured ecosystems, plus tools and toolchains managed through Nix, to the latest eligible versions, including major releases. Project dependencies default to a minimum release age of 30 days; configurable version pins can hold specific dependencies back.
chainman combines the selected updates into one candidate and runs your project’s acceptance checks in the updated environment. Only the exact candidate that passes is applied. If verification fails, no update is applied.
Setup and services across concurrent work.
A small launcher committed to your project runs its pinned chainman runtime with Nix on the host or in a container. No global chainman installation is needed; ordinary commands never silently upgrade the runtime.
chainman coordinates managed setup and services across commands and worktrees. Setup cannot be replaced while a command uses it, and services stay running while other tasks still own them.
When chainman is a fit.
Consider chainman when you want one opinionated approach to development and maintenance, with coordinated setup, services, and updates across ecosystems. Keep your existing flake, commands, and checks, and adopt it incrementally.
If you mainly need a Nix development environment, evaluate devenv and Devbox as well. devenv provides composable Nix environments, tasks, and services; Devbox makes environments built with Nix approachable.
Currently used in the development of Cyph and several private codebases.
Setup guide and documentation in the repository.