Skip to main content

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.

Metadata

Release files for workset 0.2.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for workset 0.2.5
File Size Uploaded Provenance
workset-0.2.5.tar.gz 46.9 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for workset 0.2.5
File Interpreter ABI Platform
workset-0.2.5-py3-none-any.whl Python 3 none any Details

Total release size: 59.8 kB

Release files / workset-0.2.5.tar.gz

Download URL workset-0.2.5.tar.gz
Size 46.9 kB
Tags Source
SHA-256 checksum
How to use checksums
8c22a040e1356bde15f6df35483b3f0de2fa690d1942fe7df5e11040267f0532
BLAKE2b-256 checksum
How to use checksums
b75868c0b11d21f54c9e6314ed9ae179b0592e16c45fba47966ec34697488127
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 16, 2026.

Transparency log

Release files / workset-0.2.5-py3-none-any.whl

Download URL workset-0.2.5-py3-none-any.whl
Size 12.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a7081a538186f60699fb130b0f52dbcff83e4e14f815fda4aa7c527031c67f34
BLAKE2b-256 checksum
How to use checksums
214c5f28b02fa6b5c635324d3fba70058fa5f125786596fbf3a27c8364838b46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 16, 2026.

Transparency log

Security for workset 0.2.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for workset-0.2.5.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 16, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page