Skip to content

warpcli/devpilot

Repository files navigation

devpilot

devpilot is a local development workflow CLI. The binary is dp.

Features

  • 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/devpilot on Linux when set), with backup/import/export commands.

Development

This repo uses flake.nix for the development environment. The implementation is written in Nim, but devpilot itself is language-neutral.

direnv allow

or directly:

nix develop --impure

Build:

make build

Test:

make test

Full local gate:

make verify

Run:

make run ARGS="--help"

After make build, the binary is available at:

./dp --help

Usage

dp --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 tui

TUI

The full-screen TUI uses illwill as a small terminal backend.

dp tui

Keys: Left/Right or h/l switch sections, Up/Down or j/k move the selection, r reloads data, and q/Esc quits.

Management keys:

  • Enter shows details for the selected project, workspace, machine, or template.
  • / filters the current section.
  • : opens a command palette that runs any non-interactive dp command and reloads the dashboard.
  • a opens a field-based add form for the current section.
  • d deletes the selected row after typing yes.
  • ? 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"

License

This project is licensed under the MIT License. See LICENSE.md.

Packages

 
 
 

Contributors