Local dev orchestration for git worktrees.
Give a feature one name, and devctl runs that worktree across your services, each on its own port, wired to the services it depends on. Run several features at once without port clashes.
devctl up ft-my-feature # start the feature's worktrees
devctl status # what is running, and at which URLs
devctl down ft-my-feature # stop them- Stacks: one worktree name across services is one feature. Start it with one command.
- Graph: services declare what they provide and what they depend on. devctl starts them in order and injects the URLs.
- Named URLs: optional portless integration gives every service a
https://<name>.localhostURL instead of a port. - Raycast: a menu bar and panels to start, stop, and inspect stacks.
Needs Git, Node 20+, and pnpm (corepack enable).
curl -fsSL https://raw.githubusercontent.com/mhmdsami/devctl/main/install.sh | sh
$EDITOR ~/.devctl/src/devctl.config.json
devctl doctor- Concepts: services, worktrees, stacks, ports, shared services, state.
- Configuration: the config file, the graph, templates, environments.
- Named URLs: portless and the
devctl portlesscommands. - Raycast extension: the menu bar and panels, and releases.
- Command reference: every command and flag.