Skip to main content

Create and initialize isolated git worktree worksets.

Project description

workset

Create and initialize isolated git worktree worksets in one command.

A workset is a directory containing one or more git worktrees for related repos, each on their own branch, with submodules initialized and the Python environment ready to go. workset automates the setup so you can go from "I have a task" to a working environment without the manual back-and-forth.

Installation

uv tool install workset

Or with pip:

python -m pip install workset

Or install from source:

uv tool install --editable path/to/workset

Usage

workset --help

Configure repos

workset resolves specs like api:feat/refactor from ~/.config/workset/repos.toml. Keep these repo paths pointed at stable canonical checkouts, not temporary worksets.

[workset]
root = "~/worksets"
date_prefix = true
timezone = "America/Los_Angeles"

[repos]
api = "~/repos/api"
web = "~/repos/web"

With date_prefix = true, worksets are created under a dated layout:

<workset-root>/YYYY/MM-month/DD-ddd/<slug>/

For example:

~/worksets/2026/06-june/15-mon/my-task/

When timezone is omitted, workset uses UTC for date-prefixed paths.

First successful workset

Start with one repo alias and one new branch:

git clone git@github.com:your-org/api.git ~/repos/api
workset new api-refactor api:feat/refactor

That creates a new workset directory, adds a git worktree for api, initializes submodules, and prepares the repo environment when it recognizes the tooling.

For a task that spans multiple repos:

git clone git@github.com:your-org/web.git ~/repos/web
workset new checkout-flow api:feat/checkout-flow web:main

You can also pass a repo path directly when you do not want to configure an alias yet:

workset new quick-fix ~/repos/api:main

Development

uv sync --extra dev
uv run ruff format --check .
uv run ruff check .
uv run mypy
uv run pytest

Publishing

Releases are published to PyPI automatically when a GitHub Release is created.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

workset-0.2.4.tar.gz (46.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

workset-0.2.4-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file workset-0.2.4.tar.gz.

File metadata

  • Download URL: workset-0.2.4.tar.gz
  • Upload date:
  • Size: 46.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for workset-0.2.4.tar.gz
Algorithm Hash digest
SHA256 a6c97d724ba1104ae0f17e40eacfa84940dc3e1ef2c48273d1fd73356eefade0
MD5 74db5c9a08420e847a37e790e076ac9f
BLAKE2b-256 510455f92a6332f0071e577530f11cdd0ea935bddc9adc93b4164235c33a3527

See more details on using hashes here.

Provenance

The following attestation bundles were made for workset-0.2.4.tar.gz:

Publisher: release.yml on alik-git/workset

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file workset-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: workset-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 12.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for workset-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ea01fac7e32d8a334c6434653eb96498e2cc4995df4524af72698db2ef51c2a3
MD5 233e67d33e488b480257565b9f943035
BLAKE2b-256 04eeca4ea1dbac33ab097489d037857eee78de6309e640dbb4f95f55776a90b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for workset-0.2.4-py3-none-any.whl:

Publisher: release.yml on alik-git/workset

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page