devstart
A tiny Windows launcher: one command, many local projects. No installer, no magic — just cmd, batch files, and a folder on your PATH.
devstart jakobbecker
Why
Starting the same repos every day costs attention: venv, ports, browser, terminal titles. devstart is a dispatcher — it picks the right project script and gets out of the way. Each project owns its own startup logic; the CLI stays boring on purpose.
Overview
| Step | Section | What |
|---|---|---|
| 1 | Layout | devscripts folder, one script per project |
| 2 | PATH | Make devstart callable everywhere |
| 3 | Commands | Flags and aliases |
| 4 | Behaviour | Window handling, encoding rules |
| 5 | Add a project | New projects\<name>.bat |
| 6 | This site | Example: MkDocs dev server |
| 7 | Reference sources | The actual scripts |
1. Layout
Install once under your profile (or clone this repo’s mirror into the same shape):
%USERPROFILE%\devscripts\
devstart.bat # global entry point
projects\
jakobbecker.bat # one file per project
jakobbecker.aliases # optional extra names (e.g. jbblog)
On this site, the same files are published as read-only references (not in the nav — open from the links below):
| File | Role |
|---|---|
| devstart.bat | Dispatcher: parse args, resolve project, run script |
| jakobbecker.bat | This site: MkDocs venv, serve, Chrome |
| jakobbecker.aliases | Alias list for devstart jbblog |
Copy from the built site or sync from your live devscripts tree; keep %USERPROFILE%\devscripts as the source of truth on your machine.
2. PATH (one time)
- Windows search → Edit environment variables for your account
- Path → New →
%USERPROFILE%\devscripts - New terminal →
devstart --version
Override projects location:
set DEVSTART_PROJECTS_DIR=D:\tools\devscripts\projects
3. Commands
| Command | What it does |
|---|---|
devstart <name> |
Run projects\<name>.bat (or match an alias) |
devstart --list |
List projects (same as --projects) |
devstart --help |
Usage and registered projects |
devstart --version |
Version string |
devstart --stay-open |
Keep the launcher window open after success |
devstart --quiet |
Minimal output (scripts, CI) |
Flags can be mixed: devstart --stay-open jbblog.
Aliases: create projects\<name>.aliases with one alias per line (# comments allowed). Example: jbblog → jakobbecker.bat.
4. Behaviour
- Success: launcher window closes automatically (unless
--stay-open). - Error: window stays open so you can read the message (even without
--stay-open). - Batch files: ASCII-only in scripts; UTF-8 box characters break
cmdparsing on Windows.
5. Add a project
- Add
projects\myapp.bat— validate paths, start services,exit /b 0on success. - Optional:
projects\myapp.aliasesfor short names. devstart myapp
Template pattern (see jakobbecker.bat): call :MAIN wrapper, subroutines below, delayed expansion for exit codes (!EXIT_OK!), no Unicode in the file.
6. This site (jakobbecker)
devstart jakobbecker
# or
devstart jbblog
That script checks Python, maintains .venv, runs mkdocs serve --dev-addr 127.0.0.1:8000, opens Chrome, and prints the exact serve command in the server window for manual restarts.
7. Reference sources
Browse the full scripts on the built site (syntax-friendly raw files):
- devstart.bat — dispatcher source
- jakobbecker.bat — MkDocs project script
- jakobbecker.aliases — alias file
Part of the wider Windows setup: Windows 11 Setup (devscripts folder, terminal, PATH).