Skip to main content

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.2.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.

For a human-oriented tabular hierarchy of open tickets and all of their tasks, use:

wyrd tree

The defaults are --status open and --task-status all. In human output, the tasks column reports displayed tasks versus the ticket total, such as 2/5. Ticket filters reuse the existing list semantics:

wyrd tree --label bug --text startup --task-status open

Tree JSON is always a compact nested projection of ticket and task summaries, without bodies or timestamps. It is useful when an agent needs tasks from several tickets in one consistent read:

wyrd tree --status open --task-status open --json

Agents should still prefer ticket list --summary --json for initial triage and task list --ticket ... --summary --json for one selected ticket, since an unfiltered tree can use unnecessary context.

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.2.0, install the repository package pinned to its matching Git tag:

pi install git:github.com/debonzi/wyrd@v0.2.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

wyrd_cli-0.2.0.tar.gz (44.3 kB view details)

Uploaded Source

Built Distribution

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

wyrd_cli-0.2.0-py3-none-any.whl (55.7 kB view details)

Uploaded Python 3

File details

Details for the file wyrd_cli-0.2.0.tar.gz.

File metadata

  • Download URL: wyrd_cli-0.2.0.tar.gz
  • Upload date:
  • Size: 44.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for wyrd_cli-0.2.0.tar.gz
Algorithm Hash digest
SHA256 ab5e7d8ca61560a15d17cfcecc04707ff28782858c57600ac11960a7dcc15060
MD5 e9ce8e27c97b278c23795cda7025238f
BLAKE2b-256 18f0d3666575ffdb45f3134c6f3246ca934748b7426e6b1e7f82b273f1328d4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for wyrd_cli-0.2.0.tar.gz:

Publisher: publish-pypi.yml on debonzi/wyrd

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

File details

Details for the file wyrd_cli-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: wyrd_cli-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 55.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for wyrd_cli-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 618be3bb94b6179c10712b07a03fe44af1e0234087fb3bd74cc2e6fafa8b952d
MD5 10b7749e77947b815c8d70badcf71694
BLAKE2b-256 bb4b8d8120da0e8a36a4112487dd97d6f69de1ce8a01cd7c014ed900426d0a02

See more details on using hashes here.

Provenance

The following attestation bundles were made for wyrd_cli-0.2.0-py3-none-any.whl:

Publisher: publish-pypi.yml on debonzi/wyrd

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

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.0

2 files

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