Skip to main content

backlog-md-py

PyPI version Python versions License: GPL-3.0-only

backlog-md-py is a Python implementation of the local-file Backlog.md task workflow. It manages project tasks as plain Markdown files and lets you work with them from the CLI, Python code, AI agents over MCP, a browser board, or a terminal UI — no Node or Bun runtime required. New here? The Quick Start below runs entirely in a scratch directory, so nothing touches a real project until you point it at one.

What Is Backlog.md?

Backlog.md keeps a project's tasks, documents, decisions, and milestones as plain Markdown files under a backlog/ directory inside the project. The Markdown files are the source of truth: they diff, review, and commit with your code, so humans and AI agents can both read and update them without a hosted service or database.

backlog-md-py implements that workflow as a standalone Python package. Use it when you want Backlog.md-compatible project tracking from Python tooling or local agents. For the upstream concept and ecosystem, see Backlog.md.

Features

Interface Entry point What it's for
CLI backlog-py --cwd /path/to/project ... Scriptable task, document, and board commands.
Python module python -m backlog_py ... The CLI in module form, for environments without script shims.
Python helpers backlog_py.mcp, backlog_py.storage.project Call the same core services from your own Python code.
MCP stdio server backlog-py-mcp SDK-free MCP server so AI agents can manage the backlog.
Singleton daemon backlog-py daemon ensure One shared process for multi-agent setups.
Browser board backlog-py --cwd /path/to/project browser Human-facing kanban board in the browser.
Terminal UI (optional) backlog-py --cwd /path/to/project tui Keyboard-driven board in the terminal; requires the tui extra.

The plain CLI and MCP tools are the recommended automation surfaces. The browser board and TUI are human-facing project navigation surfaces.

Quick Start

1. Install

python -m pip install backlog-md-py

Optional extras and unreleased installs:

python -m pip install "backlog-md-py[tui]"   # terminal UI
python -m pip install "git+https://github.com/rmusser01/backlog-md-py.git"   # unreleased commits

2. Try it in a scratch project

Start in an empty scratch directory so nothing touches a real project:

mkdir -p /tmp/backlog-md-py-demo
backlog-py --cwd /tmp/backlog-md-py-demo init --defaults --no-git
backlog-py --cwd /tmp/backlog-md-py-demo task create "Try backlog-md-py" --plain
backlog-py --cwd /tmp/backlog-md-py-demo task list --plain
backlog-py --cwd /tmp/backlog-md-py-demo task edit task-1 --notes "Edited in a scratch project." --plain
backlog-py --cwd /tmp/backlog-md-py-demo board   # press q to exit

Then look inside /tmp/backlog-md-py-demo/backlog/ — every record you just created is a plain Markdown file you can read and diff.

3. Point at a real project

Start with read-only commands:

backlog-py --cwd /path/to/project task list --plain
backlog-py --cwd /path/to/project task <id> --plain
backlog-py --cwd /path/to/project board

Then the human-facing surfaces:

backlog-py --cwd /path/to/project browser --port 6420 --no-open
backlog-py --cwd /path/to/project tui   # requires the tui extra

Before running mutation commands (task create, task edit, task archive, and friends) against a real project, smoke-test on a copy and review the diff — see Safety and compatibility.

4. Use it with AI agents (MCP)

Run the SDK-free MCP stdio server:

backlog-py-mcp

For multi-agent setups, run one shared daemon and let MCP clients connect through it:

backlog-py daemon ensure
backlog-py daemon status --json

To generate Backlog.md instruction blocks for common agent files:

backlog-py --cwd /path/to/project agents --update-instructions

See integration.md for MCP client configuration and singleton-daemon.md for daemon lifecycle details.

Safety And Compatibility

The supported 2.x contract is the behavior documented in the compatibility inventory, stability policy, and parity docs. A few rules keep adoption safe:

  • Markdown files under backlog/ remain the source of truth; the daemon is a process-reuse and coordination layer, and the optional SQLite index is disposable read acceleration — neither is a separate database.
  • Before live mutation in a consuming project, run copied-repository smoke tests and review the resulting diff. See cutover-validation.md.
  • Do not alias backlog-py to backlog unless the target project has made an explicit project cutover decision.

See the stability policy for the full supported contract and release gate.

Documentation

Start with the documentation index. Common references:

Development

Use Python 3.11, 3.12, or 3.13. Create a local virtual environment with uv and install editable development dependencies:

uv venv --python 3.13 .venv
source .venv/bin/activate
uv pip install -e ".[dev]"

Run the focused agent-critical gate or the full test suite:

uv run --extra dev python -m pytest tests/test_agent_critical_matrix.py -v
uv run --extra dev python -m pytest tests -v

See CONTRIBUTING.md for the contributor workflow and architecture.md for the source layout.

License

GPL-3.0-only. See LICENSE.

Download files

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

Source Distribution

backlog_md_py-2.1.0.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

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

backlog_md_py-2.1.0-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file backlog_md_py-2.1.0.tar.gz.

File metadata

  • Download URL: backlog_md_py-2.1.0.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for backlog_md_py-2.1.0.tar.gz
Algorithm Hash digest
SHA256 a872c1552decf67bc83bf2060722e47732140938c9db81b9a76d7354a53a5953
MD5 c67fc9295e985edbfdce6f87c24316c2
BLAKE2b-256 28a65c8bfafd66e8f5a87bf030909d438209cf06b08e0eb6c57bd0fc9f8fa55c

See more details on using hashes here.

Provenance

The following attestation bundles were made for backlog_md_py-2.1.0.tar.gz:

Publisher: release.yml on rmusser01/backlog-md-py

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

File details

Details for the file backlog_md_py-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: backlog_md_py-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for backlog_md_py-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6cce0fec39662eb2cd595c2e6f11cc67fb137fc74eb29eabb36afb32e24ba711
MD5 c9d73c505952ae7614b97b0b94dd5654
BLAKE2b-256 86584f1cdc805f3f0ef6ba9ead33f7ef47b55f9a49ec8ecf6ca521c0000ded22

See more details on using hashes here.

Provenance

The following attestation bundles were made for backlog_md_py-2.1.0-py3-none-any.whl:

Publisher: release.yml on rmusser01/backlog-md-py

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

2.1.0 This release

2 files

2.0.1

2 files

2.0.0

2 files

1.0.1

2 files

1.0.0

2 files

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