Skip to content

termworks/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 a bobabrew-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 init
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 template apply nim /tmp/my-nim-tool --name my_nim_tool
dp template apply rust /tmp/my-rust-lib --name my_rust_lib
dp template apply cpp /tmp/my-cpp-lib --name my_cpp_lib
dp machine add lab 127.0.0.1:22:local --username "$USER"
dp machine ssh-config lab
dp data backup create --path ./devpilot-backup
dp tui

TUI

The full-screen TUI uses bobabrew as its Bubble Tea-style terminal backend.

dp tui

Running dp with no arguments opens the 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.

About

remot machine, template, project management tool

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages