Metadata-Version: 2.4
Name: bhtool
Version: 0.1.10
Summary: Add your description here
Author-email: Bosco Ho <apposite@gmail.com>
Requires-Python: >=3.13
Requires-Dist: click>=8.1.7
Requires-Dist: cyclopts>=4.10.2
Requires-Dist: matplotlib>=3.9.0
Requires-Dist: microeval>=0.5.0
Requires-Dist: numpy>=1.26.4
Requires-Dist: pandas>=2.2.2
Requires-Dist: path>=16.14.0
Requires-Dist: pydash>=8.0.3
Requires-Dist: python-dotenv>=1.2.2
Requires-Dist: rich>=15.0.0
Requires-Dist: ruyaml>=0.91.0
Requires-Dist: semver>=3.0.2
Description-Content-Type: text/markdown

# bhtool

CLI utilities for version bumping, file conversion, process management, and dev workflows. Python ≥3.12.

**Install:** `uv sync` · `uv pip install -e .` · `uv tool install .` (global)

| Command         | Description                                                       |
|-----------------|-------------------------------------------------------------------|
| **bumpver**     | Bump version in pyproject.toml, commit, push, optionally publish  |
| **a**           | Open macOS apps by partial name (`a chrome`, `a cursor`)          |
| **clear_chmod** | Strip execute from non-scripts, group/other write                 |
| **npread**      | Print shape of .npy files                                         |
| **dfplot**      | Plot parquet/CSV, open figure                                     |
| **psword**      | Find processes by name; `--kill` to kill                          |
| **rm_npm**      | Recursively remove node_modules and package-lock.json             |
| **text2**       | Convert md ↔ html ↔ docx ↔ pug (pandoc)                           |
| **todict**      | JSON/YAML stdin → Python dict repr                                |

---

# jtools

Node CLI: pug formatting, agent config copy. Usage: `jtools <subcommand>`

**Install:** `cd jtools && npm install`

| Subcommand     | Description                          |
|----------------|--------------------------------------|
| **format-pug** | Format pug in ./index.html           |
| **copy-agent** | Copy ~/.claude/CLAUDE.md → ./AGENT.md |

`npx jtools format-pug` · `npx jtools copy-agent` 
