A local-first, zero-dependency desktop dashboard for the folder where all your projects live. Point it at that directory once โ every subfolder becomes a managed project.
One ~30 KB file ยท Python โฅ 3.10 ยท Linux (GTK4 + WebKitGTK)
$ pip install dev-workspace-manager $ devws # a window opens โ pick your projects folder
Everything you reach for between the editor and the terminal, in one place.
Named project directories with per-project settings. Switch between them from the toolbar.
Auto-detected commands โ npm run dev, cargo run,
manage.py runserver, โฆ โ with live logs and one-click stop.
Up, down, and status per project, detected automatically from
compose.yaml.
Open your terminal emulator or editor directly in any project folder.
Branch, ahead/behind, staged / modified / untracked counts, and the last commit for every project.
See which ports each dev server is listening on, and click to open them in the browser.
No frameworks, no browser, no cloud. Just your machine.
Backend is pure Python standard library; frontend is vanilla JS/CSS.
No node_modules, no build step, no packages to audit.
The whole app ships as one devws.pyz โ about 30 KB.
Binds to 127.0.0.1 on a random ephemeral port that only the
app's own window talks to.
No telemetry, no CDN assets, no update checks. Your config is a single
JSON file in ~/.config/dev-workspace-manager/.
A native desktop app with an Apple-inspired interface โ light & dark mode, custom controls, no frameworks.
devws/ โโโ app.py native window shell โ (GTK4 + WebKitGTK, โ browser fallback) โโโ server.py internal HTTP + JSON API โ (stdlib http.server) โโโ services/ โ โโโ config.py atomic JSON store โ โโโ processes.py process groups, log โ โ ring buffers, SIGTERM โ โ โ SIGKILL escalation โ โโโ gitinfo.py git porcelain parsing โ โโโ dockerc.py docker compose wrapper โ โโโ ports.py /proc/net/tcp discovery โ โโโ projects.py detection + launching โโโ static/ vanilla JS/CSS frontend
GTK4 + WebKitGTK via PyGObject โ preinstalled on Fedora/GNOME and most modern Linux desktops. Where it's missing, the app falls back to your default browser.
Dev servers run in their own process groups with log ring buffers and graceful SIGTERM โ SIGKILL shutdown.
70 tests cover process orchestration, Git, Docker Compose, configuration, project detection, port parsing, and the HTTP API. CI runs on Python 3.10 / 3.12 / 3.14.
Three ways in. All of them end with a window opening.
Grab devws.pyz from the
latest release
and run it. To add it to your application menu with an icon, clone the repo
and run scripts/install_desktop.sh.
$ python3 devws.pyz
One package, zero dependencies pulled in.
$ pip install dev-workspace-manager $ devws
Nothing to install โ the repo runs as-is.
$ git clone https://github.com/Mr-Don-Leo/workspacectl $ cd workspacectl $ python3 -m devws
Requires Python โฅ 3.10. Docker features light up automatically
when the docker CLI is present; everything else works without it.
A headless mode is available with devws --serve โ
keep the default host: the app starts processes on your
machine, so it must not be exposed to a network.