Repository navigation
Releases: hayyaun/dwork
Release list
v0.6.0
Reusable workspace groups
Groups make a workspace selection reusable, including projects in different directories.
dwork group create daily api frontend
dwork up --group daily
dwork switch --group daily --dry-run
dwork down --group daily --dry-run- Group management includes create, list, show, add, remove, and delete, with Bash/Zsh completion and read-only previews.
- Group startup leaves other workspaces running. Group switching uses one combined plan that preserves every selected member. Group shutdown selects only eligible member workloads.
- Existing confirmations, locks,
DWORK_KEEP_PROJECTS, authenticated task ownership, and the existing-container-only behavior remain intact. - Workspace renames update group references atomically. Forgetting a referenced workspace is refused until its memberships are removed.
Compatibility
Creating the first group writes local registry version 2. Older CLIs reject it safely; deleting the final group returns the registry to version 1. Groups can overlap, but membership alone does not protect a shared workspace from shutdown. Groups are personal selections, with no nested groups, active-session tracking, or automatic rollback.
Companion 0.2.2 adds native package compatibility with CLI 0.6.x while retaining 0.4.x/0.5.x support. The tray UI still lists individual registrations. Installation does not launch the tray or enable startup.
Downloads
Assets include CLI 0.6.0 Python wheel/source, Debian/Ubuntu, Fedora 44, Arch packages, and the portable Windows tray 0.2.2 ZIP. SHA256SUMS covers all six packages. The Windows ZIP includes its runtime and connects to dwork in WSL; it needs no separate Windows Python installation.
GitHub release assets are separate from PyPI, Homebrew tap, AUR, and apt publication; those channels remain unpublished.
Full changelog: v0.5.0...v0.6.0
v0.5.0
dwork 0.5.0 adds explicit project discovery and named workspace controls.
What changed
- Scan one or several directories:
dwork scan .ordwork scan ~/projects ~/work. Roots are validated before registration;--dry-runpreviews and--permits paths beginning with a hyphen. - Start saved workspaces together with
dwork up api frontend, leaving all other workspaces running. The full batch is checked and applicable workspace/group confirmations are collected before startup; task and browser prompts remain separate. - Stop selected registrations with
dwork down api frontend, retaining ownership checks, Docker-target and service boundaries, KEEP protections, live locks, and shutdown confirmation. - Bash and Zsh complete named lifecycle arguments and positional scan directories. No-name
up,down, andscanretain their existing behavior. - README now introduces scanning early. Windows/WSL setup explains complete ZIP extraction, choosing and checking the Linux interpreter and user, and manual restart or desktop-shortcut options. Installation and launch do not enable startup.
Tray compatibility
Companion 0.2.1 supports native CLI 0.4.x and 0.5.x (dwork-cli>=0.4.0,<0.6). This changes compatibility metadata without changing companion runtime behavior. The portable Windows app includes its runtime and requires no separate Windows Python installation.
Downloads and verification
Attached packages: CLI wheel/source, Debian/Ubuntu, Fedora 44, Arch, and portable Windows tray 0.2.1, with SHA256SUMS covering all six downloads. Release jobs build, test, install and smoke-check packages before attaching them. The local suite completed 428 tests with 3 platform skips; quality checks passed.
PyPI, the public Homebrew tap, AUR submission and apt-repository publication remain separate and pending. The native companion remains a separate package; its wheel is not attached to this release.
v0.4.1
dwork 0.4.1 adds an optional tray companion and makes workspace setup, switching, and recovery easier to inspect.
Highlights
- Optional dwork-tray 0.2.0 for native Linux/macOS, plus a portable Windows tray for an explicitly selected WSL distribution. The Windows ZIP includes its runtime and a replaceable tray image.
- Optional native tray installation through
TRAY=1; installation never launches the tray or enables startup. Startup instructions are included for users who want them. - Read-only version-1
list --jsonandstatus --jsoninterfaces. dwork --version,init, andvalidate; native Bash/Zsh completions, including source loading on macOS Bash 3.2.- Temporary workspace locks, clearer workspace listings, and activation confirmation controls that preserve separate registration, group, task, browser, and shutdown consent.
- Configuration, registry, launch preparation, and lifecycle refactors with regression coverage for ownership, locks, partial failures, and interrupted installation.
- Portable CI fixtures, explicit Git build/test dependencies, corrected Homebrew strict auditing, and secure Zsh package verification.
Packages
Assets include CLI wheel/source, Debian/Ubuntu, Fedora 44, Arch, and the portable Windows tray. Verify downloads against SHA256SUMS. The native companion remains a separate package; native source installs can include it with make install TRAY=1.
Native dwork-tray 0.2.0 pairs with dwork-cli 0.4.x. The Windows tray connects to the matching CLI inside WSL and needs no separate Windows Python installation.
Native desktop rendering and interactive operation-terminal behavior still need manual desktop verification; automated checks cover source behavior, transports, packages, confirmations, and ownership.
The v0.4.0 tag was not published as a GitHub release because native package builds caught a missing Git test dependency. This release includes that correction; the v0.4.0 tag remains unchanged.
Full changes: v0.3.0...v0.4.1
v0.3.0
dwork 0.3.0 adds macOS support and configurable browser launching.
macOS
- Launch terminal tasks in Apple Terminal using its supported scripting API. New windows are supported.
- Track terminal and background commands for controlled shutdown with
dwork down, including macOS process-group cleanup and interactive Bash/Zsh handoff. - macOS requires Python 3.13 or newer for tracked tasks. Linux and WSL2 continue to require Python 3.10 or newer.
Browsers and confirmation
- Add a
browsers:list todwork.ymlto open application URLs after terminal commands are dispatched. - Use the OS default browser, or choose an installed browser with
browser:: a Linux executable, macOS application name/path, or Windows.exeon WSL2. - Set
wait_for: falseto open immediately, or configure HTTP readiness with a timeout and optional health endpoint. Omittingwait_forretains the 60-second readiness wait. - Set
confirm: falseper browser or terminal to skip that entry's launch confirmation. Readiness and confirmation are independent; workspace switching/shutdown confirmation remains separate. - WSL2 opens browsers on Windows and never falls back to a Linux browser.
Documentation and verification
README, configuration guides, examples, and the bundled agent skill cover the new fields and platform requirements. The skill writes explicit wait_for: false unless readiness is requested and considers ignoring personal dwork.yml files.
Source and Python package checks passed on Linux, Apple Silicon, and Intel macOS. Release packages passed build, installation, integrity, and CLI smoke checks. Native desktop GUI behavior still needs real desktop verification.
Downloads
Attached: Python wheel and source distribution, Debian/Ubuntu package, Fedora 44 RPM, Arch Linux package, and SHA256SUMS covering all five packages. Download the packages and checksum file into one directory, then run sha256sum --check SHA256SUMS.
These packages require Python and their documented dependencies; native packages use distro dependencies and are unsigned. PyPI, the public Homebrew tap, AUR, and apt repository publication remain separate. make install remains supported.
Full Changelog: v0.2.0...v0.3.0
v0.2.0
dwork v0.2.0 adds named workspaces, safer switching, controlled shutdown of development commands, and installable Linux packages.
Workspace management
- Register a project with
dwork register [NAME], list saved workspaces withdwork list, and activate one from any directory withdwork switch NAME. Saved Compose options are reused; your calling shell stays in its current directory. - Rename saved workspaces with
dwork rename NAME NEW_NAME, or remove their registration withdwork forget NAMEwithout stopping workloads or deleting project files. - Discover projects recursively with
dwork scan. Configured workspaces are registered first; an optional checkbox picker lets you choose Compose-only directories. Dependency/cache/build directories are skipped, and repository boundaries limit traversal.
Safer switching and shutdown
- Only registered workspaces are eligible to be stopped. Unregistered Compose projects stay running. Container management respects saved service selections and the active Docker target.
- Protect a workspace with
locked: trueindwork.yml. Locks andDWORK_KEEP_PROJECTSexclusions apply during switching and shutdown. dwork upanddwork downshow a plan and request confirmation before applying it. Use--dry-runto preview without changing state or answering prompts.dwork downstops registered containers and locally tracked commands. Containers, networks, volumes, and registrations are preserved.
Terminal and background tasks
- Run a task without a terminal window using
window: none. Health prerequisites and confirmation still apply; detached output is discarded rather than written to an implicit log file. - Commands launched through this version are tracked for
dwork down. Visible terminal windows remain open at a Bash or Zsh prompt after their command stops. Ordinary workspace switches leave existing host tasks running. - Renaming preserves task tracking; forgetting a workspace relinquishes management without stopping its tasks. Tracking is local to the Linux user and installation/WSL distribution.
Diagnostics and shell integration
- New read-only
dwork statusanddwork doctorcommands show workspace/container state and diagnose configuration, Docker access, shell, and terminal dependencies. - Failed or interrupted switches report completed and unconfirmed actions, refresh container state when possible, and suggest recovery steps without an automatic rollback.
- Bash and Zsh completion covers commands, aliases, workspace names, and relevant paths. Enable it with
source <(dwork completion bash)or, after Zsh'scompinit,source <(dwork completion zsh). - Command aliases:
ls,sw,reg,rm,ps, andup. Terminal output now uses consistent workspace colors;NO_COLOR=1disables them, and redirected output stays plain. - An optional dwork agent skill helps coding agents create and update
dwork.ymlfrom a project's existing services and commands.
Downloads and installation
This release includes:
- A Debian/Ubuntu
.deb, built and tested on Ubuntu 24.04. - A Fedora 44
.noarch.rpm. - An Arch Linux
any.pkg.tar.zst, built and tested against the rolling distribution. - A Python wheel and source distribution for
dwork-cli(the installed command isdwork). SHA256SUMScovering all five package files. Download the packages and checksum file into one directory and runsha256sum --check SHA256SUMS.
These are Python-based packages, not self-contained executables; dwork requires Python 3.10 or newer and PyYAML. Native packages use distro dependencies and are unsigned. PyPI, Homebrew/AUR, and package-repository publication remain separate from these GitHub downloads. make install remains supported.
Upgrading from v0.1.0
- Register the workspaces you want dwork to manage. First activation asks for registration consent; projects that remain unregistered will no longer be stopped by a switch.
- Restart commands launched by older versions through v0.2.0 to enable task tracking. Programs that daemonize or leave their process group need their own lifecycle management.
- dwork continues to resume existing containers only: it never creates, rebuilds, recreates, or removes them.
Validation
All 165 automated tests passed in both Fedora and Arch containers. The release workflow also passed Python wheel/source-distribution verification, Debian build/lint/install checks, native RPM and Arch build/install checks, and installed CLI smoke tests. Native desktop GUI behavior still needs real desktop verification.
Full changelog: v0.1.0...v0.2.0
dwork v0.1.0
First public release of dwork for Linux and WSL2.
- Resume existing Compose containers and stop other projects, with optional keep rules.
- Configure workspaces with dwork.yml, wait for healthy services, and confirm each terminal launch.
- Support Windows Terminal on WSL2 and GNOME Terminal, Konsole, Xfce Terminal, and xterm on Linux.
- Install with make install; dependencies are isolated for user installations.
Containers are never created, rebuilt, or removed. Native Linux terminal adapters have automated coverage; real desktop GUI behavior has not yet been visually verified.
Validation: 60 automated tests passed. Licensed under MIT.
See the README for installation and examples.