devtools is a CLI for managing your project's development environment and work. Store environment variables and secrets, pass them to commands, and manage development servers, ports, and local URLs. Track tasks and progress so you can pick up where you left off in another session or with a coding agent. It runs on macOS, Linux, and WSL.
If you use Homebrew, install devtools with:
brew install jinyongp/tap/devtoolsHomebrew also installs completion files for zsh, bash, and fish. Once shell
completion is enabled, press Tab after devtools to explore commands and options.
See the completion guide for shell setup.
Paste the following command into your terminal. The installer detects your
operating system and CPU, installs the latest stable release to
~/.local/bin/devtools, and provides the shorter command dvt. You need curl.
curl -fsSL https://jinyongp.dev/devtools/install.sh | shAdd the install directory to your PATH so you can run devtools from anywhere:
export PATH="$HOME/.local/bin:$PATH"
devtools version
dvt versionTo keep this setting in new terminals, add the export line to your shell's
configuration file, such as ~/.zshrc for zsh. See the installation guide
for choosing a version or a different install location.
Open your project directory and run the example below. myapp is the profile
name that identifies your project; replace it with your own project name.
devtools init --profile myapp
devtools var set LOG_LEVEL --value info
devtools env create local
devtools var set LOG_LEVEL --env local --value debug
devtools run --env local -- sh -c 'echo "$LOG_LEVEL"'This sets LOG_LEVEL to info by default and overrides it with debug in the
local environment. The final command prints debug, showing that devtools
passed the environment variable to the command. In your project, replace
sh -c ... with your usual command, such as pnpm dev or go run ..
Commit the generated devtools.toml to Git. Projects and worktrees that use the
same profile share stored values. Environment variables and secrets are stored
in plaintext files accessible only to your user account; backups are encrypted
separately. See values and command execution to add
secrets and configure project commands.
Use devtools --help or a command's help, such as devtools task --help, to
explore the CLI. Run devtools command list to see your configured project commands.
To save a command you use often, add it to devtools.toml. For example, in a
project with a docs:dev script:
[commands."dev:docs"]
exec = ["pnpm", "run", "docs:dev"]Put devtools options before the command name. In devtools v0.23.0 and newer,
the -- separator before the saved command's arguments is optional:
devtools run dev:docs --port 3000
devtools run dev:docs -- --port 3000
devtools run --env local dev:docs --port 3000Use devtools run dev:docs --help for the saved command's help, or
devtools run --help for devtools' own help.
Every argument after the name belongs to the saved command, including --env
and --help. On older versions such as v0.22.3, use the explicit -- separator.
See the command execution guide
for the version requirements and both forms.
The detailed guides below are currently in Korean.
| What you want to do | Guide |
|---|---|
| Store variables and secrets, import .env files, and run commands | Values and command execution |
| Check required tools, configuration, and installation status | Environment diagnostics |
| Avoid port conflicts and connect to other project URLs | Ports |
Give each worktree a .localhost URL for its development server |
Local reverse proxy |
| Run servers, check status and logs, and restart them | Processes · Readiness checks |
| Plan work, share tasks, and hand off between sessions | Tasks and workstreams |
| Manage environment variables and tasks in a browser | Run devtools dashboard and open the URL it prints |
| Compare project settings or move to another computer | Profiles |
| Back up and restore data, or remove old data | Backups · Cleanup |
Install the devtools Skill to give your coding agent instructions for setting up projects, managing servers, and recording progress:
npx skills add jinyongp/devtoolsThe installer detects your agents and guides you through the install location.
Add --global to use the Skill across projects. See Agent Skill setup
for configuration and updates.
If you installed with Homebrew, update with Homebrew:
brew upgrade jinyongp/tap/devtoolsIf you used the install script, run devtools update to get the latest stable release:
devtools updateThe update replaces the executable and preserves your profile data and project
configuration. Check the new version with devtools version.
If you use a coding agent, update the Skill too. The CLI and Skill are updated separately through their respective installers.
devtools is available under the MIT license. See the development guide to contribute to the project.