devpilot is a local development workflow CLI. The binary is dp.
- Manage named projects with namespace, path, language, framework, template, and tag metadata.
- Discover/import projects and bootstrap workspaces from existing source trees.
- Manage workspaces, attach components, inspect status, run commands, and emit shell environment exports.
- Manage reusable file/directory templates and apply them to new target directories with dry-run, conflict, and symlink controls.
- Manage SSH machine entries, generate SSH config, check TCP reachability, and connect through stored host/interface metadata.
- Browse all stored development data through an
illwill-backed terminal dashboard. - Store user data as versioned TOML files under the platform data directory (
$XDG_DATA_HOME/devpiloton Linux when set), with backup/import/export commands.
This repo uses flake.nix for the development environment. The implementation is written in Nim, but devpilot itself is language-neutral.
direnv allowor directly:
nix develop --impureBuild:
make buildTest:
make testFull local gate:
make verifyRun:
make run ARGS="--help"After make build, the binary is available at:
./dp --helpdp --help
dp project add my-app --path ~/code/my-app --language go --tags cli
dp project list --json
dp project discover ~/code --depth 2
dp workspace add lab --path ~/code --projects my-app
dp workspace status lab
dp workspace run lab -- git status --short
dp template add basic --description "Basic app" --path ./template --language go
dp template apply basic /tmp/my-app --name my_app --dry-run
dp machine add lab 127.0.0.1:22:local --username "$USER"
dp machine ssh-config lab
dp backup create --path ./devpilot-backup
dp tuiThe full-screen TUI uses illwill as a small terminal backend.
dp tuiKeys: Left/Right or h/l switch sections, Up/Down or j/k move the selection, r reloads data, and q/Esc quits.
Management keys:
Entershows details for the selected project, workspace, machine, or template./filters the current section.:opens a command palette that runs any non-interactivedpcommand and reloads the dashboard.aopens a field-based add form for the current section.ddeletes the selected row after typingyes.?shows the in-app key reference.
For CI or scripting, the TUI also has non-fullscreen modes:
dp tui --snapshot
dp tui --command "project add sample --path /tmp/sample --language go"This project is licensed under the MIT License. See LICENSE.md.
