Wyrd
Weave your work, not your workflow.
Wyrd is a local-first ticket management CLI built for coding agents and equally comfortable for humans. It keeps project work close to the code, provides predictable commands, and offers deterministic JSON output for reliable automation.
Why Wyrd?
- Local and inspectable: project data lives alongside your code as readable Markdown and YAML.
- Agent-friendly: stable commands and structured JSON make automation straightforward.
- Human-friendly: concise terminal views make everyday project tracking easy.
- Portable: tickets travel naturally with the project and its version history.
- Focused: tickets, tasks, labels, and dependencies without a hosted service or database.
- Safe: lifecycle and dependency rules keep project state consistent.
Installation
Wyrd 0.1.0 supports Linux only and requires Python 3.12 or newer. Windows and
macOS are not currently supported. For released versions published on PyPI, install
Wyrd as an isolated CLI tool with uv (recommended):
uv tool install wyrd-cli
pipx is also supported:
pipx install wyrd-cli
A plain pip installation should normally be performed inside a virtual environment:
python -m pip install wyrd-cli
The distribution name is wyrd-cli; every installation method above provides the
wyrd command.
Getting started
Initialize Wyrd in a project directory:
wyrd init --name "My project"
Create and inspect a ticket:
wyrd ticket create --title "Improve startup performance" --label performance
wyrd ticket list
wyrd ticket view 1
Break work into tasks:
wyrd task create --ticket 1 --title "Measure the current startup time"
wyrd task create --ticket 1 --title "Optimize configuration loading"
wyrd task list --ticket 1
Express dependencies explicitly:
wyrd task dependency add 1.2 --blocked-by 1.1
Complete work when it is ready:
wyrd task complete 1.1 --yes
wyrd task complete 1.2 --yes
wyrd ticket complete 1 --yes
Use --json with project commands when integrating Wyrd with an agent or script:
wyrd ticket list --json
For lower-token triage, add --summary to ticket and task list commands:
wyrd ticket list --status open --summary --json
wyrd task list --ticket 3 --status open --summary --json
--summary changes the JSON projection, not merely its whitespace: it omits bodies,
timestamps, historical dependency fields, and complete ticket task IDs while retaining
stable identity, status, labels, active dependencies, blocking state, and task counts.
Without the flag, list JSON remains the complete, compatible resource projection.
Human list output is already concise and stays unchanged when --summary is present.
Run wyrd --help to explore all available commands.
Agent skill
The Wyrd source repository includes a first-party
Agent Skills package in
skills/wyrd. It teaches
coding agents to triage work with bounded context, use deterministic JSON, preserve
revision safety, and follow Wyrd lifecycle and dependency rules.
The skill requires a compatible wyrd executable on PATH. Installing the skill does
not install the Wyrd CLI. The skill is distributed separately from the matching Git
repository tag and is not bundled in the Python wheel or source distribution. From a
source checkout, try it in Pi with:
pi --skill ./skills/wyrd
For normal use with Wyrd 0.1.0, install the repository package pinned to its matching Git tag:
pi install git:github.com/debonzi/wyrd@v0.1.0
Pi discovers the repository's top-level skills/ directory automatically. Other
Agent Skills-compatible harnesses can obtain skills/wyrd from the matching Git tag
and install or copy it into their user- or project-level skills directory.
The skill uses the CLI's native read-only summary projections for bounded triage:
wyrd ticket list --status open --label performance --summary --json
wyrd task list --ticket 1 --status open --summary --json
See
skills/wyrd/SKILL.md
for the complete workflow.
Development
Create the locked development environment and run the complete suite with:
uv sync --locked
uv run pytest
The GitHub Actions workflow runs the same suite on Python 3.12, 3.13, and 3.14. Skill tests validate its metadata, documented command inventory and options, compatibility version, and native summary workflow against the installed CLI.
Before publishing, run the canonical artifact build, validation, and isolated smoke
pipeline documented in docs/releasing.md. It builds into a caller-selected empty
directory and never uses the stale files in the repository's top-level dist/.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wyrd_cli-0.1.0.tar.gz.
File metadata
- Download URL: wyrd_cli-0.1.0.tar.gz
- Upload date:
- Size: 43.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7608ad5ec6e61d495f90945cf1b35bac83e3742df97952e44d9513d84bb3d27
|
|
| MD5 |
d00011a613d0f4248330347eeb23ffd2
|
|
| BLAKE2b-256 |
bb015b6add1d88c783f7e3843cb6a563e52cfb7a6f3703ec4a6ba60b1c5454fd
|
Provenance
The following attestation bundles were made for wyrd_cli-0.1.0.tar.gz:
Publisher:
publish-pypi.yml on debonzi/wyrd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wyrd_cli-0.1.0.tar.gz -
Subject digest:
b7608ad5ec6e61d495f90945cf1b35bac83e3742df97952e44d9513d84bb3d27 - Sigstore transparency entry: 2387603816
- Sigstore integration time:
-
Permalink:
debonzi/wyrd@bf89ba8b188bf0b0d646a73dd8887c0d264f00c4 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/debonzi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@bf89ba8b188bf0b0d646a73dd8887c0d264f00c4 -
Trigger Event:
release
-
Statement type:
File details
Details for the file wyrd_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: wyrd_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 54.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8663725fa92e9a7792db06a9c3e913008fdfd9ae276d6ed268b33daf9bde9421
|
|
| MD5 |
1241149f5fbe8bad11b1c19336cbf7e5
|
|
| BLAKE2b-256 |
dffd318980d45815922804ecb9c67262d0fa2314432a852889dcafafe8488661
|
Provenance
The following attestation bundles were made for wyrd_cli-0.1.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on debonzi/wyrd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wyrd_cli-0.1.0-py3-none-any.whl -
Subject digest:
8663725fa92e9a7792db06a9c3e913008fdfd9ae276d6ed268b33daf9bde9421 - Sigstore transparency entry: 2387603859
- Sigstore integration time:
-
Permalink:
debonzi/wyrd@bf89ba8b188bf0b0d646a73dd8887c0d264f00c4 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/debonzi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@bf89ba8b188bf0b0d646a73dd8887c0d264f00c4 -
Trigger Event:
release
-
Statement type: