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.5.tar.gz (46.9 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.5-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: workset-0.2.5.tar.gz
  • Upload date:
  • Size: 46.9 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.5.tar.gz
Algorithm Hash digest
SHA256 8c22a040e1356bde15f6df35483b3f0de2fa690d1942fe7df5e11040267f0532
MD5 a00eeb9393e87fab4b442d5cd49e906b
BLAKE2b-256 b75868c0b11d21f54c9e6314ed9ae179b0592e16c45fba47966ec34697488127

See more details on using hashes here.

Provenance

The following attestation bundles were made for workset-0.2.5.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.5-py3-none-any.whl.

File metadata

  • Download URL: workset-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 12.9 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 a7081a538186f60699fb130b0f52dbcff83e4e14f815fda4aa7c527031c67f34
MD5 4dac18e8e100a9d55f317c7ef14e484e
BLAKE2b-256 214c5f28b02fa6b5c635324d3fba70058fa5f125786596fbf3a27c8364838b46

See more details on using hashes here.

Provenance

The following attestation bundles were made for workset-0.2.5-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