Metadata-Version: 2.3
Name: workstream-cli
Version: 0.0.1
Summary: Attention management for makers. Track trains of thought across projects.
License: MIT
Keywords: workstream,productivity,cli,attention-management,task-management
Author: Mahmoud Hashemi
Author-email: mahmoud@hatnote.com
Requires-Python: >=3.10,<4.0
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Office/Business :: Scheduling
Classifier: Topic :: Software Development
Classifier: Topic :: Utilities
Requires-Dist: ashes (>=24.0.0)
Requires-Dist: clastic (>=24.0.0)
Requires-Dist: face (>=20.0.0)
Requires-Dist: pyyaml (>=6.0,<7.0)
Project-URL: Homepage, https://github.com/mahmoud/workstream
Project-URL: Repository, https://github.com/mahmoud/workstream
Description-Content-Type: text/markdown

# workstream

Attention management for makers. Track trains of thought across projects.

`ws` is a CLI tool for managing workstreams -- named trains of thought that
span code repos, non-code activities, and time. Obsidian-native markdown files
with YAML frontmatter, designed to be legible to both humans and LLMs.

## Install

```bash
pipx install workstream-cli   # recommended
# or
pip install workstream-cli
```

For development:
```bash
pip install -e .
```

## Quick Start

```bash
ws init                        # first-time setup
ws new "API Redesign"          # create a workstream
ws list                        # see all workstreams
ws next --tag code --size day  # what should I work on?
ws stale                       # what's gone cold?
ws sweep                       # scan repos for plan/branch updates
ws report --since 7d           # summarize recent work
```

## Development

### Running Tests

```bash
pytest                              # quick, no coverage
pytest --cov=workstream             # with coverage report
tox                                 # full matrix + combined coverage report
tox -e py311                        # single Python version
tox -e py311 -- -k test_models      # single env, filtered tests
```

### Coverage Report

After running `tox` (which ends with `coverage-report`):
- Terminal summary prints automatically
- HTML report: open `htmlcov/index.html`

For a quick local coverage check without tox:

```bash
pytest --cov=workstream --cov-report=term-missing --cov-report=html
open htmlcov/index.html
```

## License

MIT

