bhtool
Assorted CLI utilities that are handy in Bosco’s day-to-day work—version bumps, file conversions, process helpers, macOS shortcuts, LLM-assisted movie renaming, and other small odds and ends. Python ≥3.13.
Install options
| Option | Description |
|---|---|
uvx bhtool … |
Run from PyPI on demand (no clone). Example:uvx bhtool --help, uvx bhtool run cursor. |
uv tool install bhtool |
Install**b** / bhtool globally from PyPI (released versions). |
uv sync then uv run bhtool … |
Use the project venv from a checkout (no global install). |
uv tool install . |
Install**b** / bhtool globally from the current directory (pinned copy). |
uv tool install --editable . |
Install**b** / bhtool globally in editable mode from a checkout (code changes apply without reinstall). |
Commands
| Command | Description | |
|---|---|---|
| bumpver | Bump version inpyproject.toml, commit, push; PyPI publish is on by default (--no-publish to skip) |
|
| run | Open macOS applications by partial name (e.g.uvx bhtool run cursor or b run cursor after a local install) |
|
| clr-chmod | Remove execute bit from non-shell files; tighten group/other write | |
| npread | Print the shape of NumPy.npy files |
|
| psword | Find processes by name;--kill to terminate |
|
| portkill | Find processes listening on TCP ports;--kill to terminate |
|
| rm-npm | Recursively deletenode_modules dirs and package-lock.json files |
|
| text | Convert between Markdown, HTML, DOCX, and Pug (needspandoc and related tools on PATH) |
|
| todict | JSON or YAML file, or stdin, → Pythondict(...)-style repr on stdout |
|
| movies | uvx bhtool movies (or b movies) — ask an LLM for normalized names; writes movie_mapping.json in the current working directory; --execute applies renames (default is dry-run table) |
Movies + LLM
LLM_SERVICE selects the backend (openai, groq, ollama, bedrock, …). Set it in the process environment or in bhtool/.env (loaded from the installed package directory). Model defaults come from microeval’s config for that service.
jtools
Node CLI: pug formatting, agent config copy. Usage: jtools <subcommand>
Install: cd jtools && npm install — dependencies only; this package is not published, so run it from that directory (or npm link after install).
Run (after install): npx jtools <subcommand> resolves the local jtools binary (same as node_modules/.bin/jtools). Examples: npx jtools format-pug, npx jtools copy-agent.
| Subcommand | Description |
|---|---|
| format-pug | Format pug in./index.html |
| copy-agent | Copy~/.claude/CLAUDE.md → ./AGENT.md |
Metadata
Release files for bhtool 0.2.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bhtool-0.2.4.tar.gz | 11.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bhtool-0.2.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.3 kB
Release files / bhtool-0.2.4.tar.gz
| Download URL | bhtool-0.2.4.tar.gz |
|---|---|
| Size | 11.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e3e41991335d7e219dc12a0170095ec668942e4ee85441c8c3393610aa2d0a52
|
|
BLAKE2b-256 checksum How to use checksums |
a28ce956fa321a2ea4d3f37b64553b2cc05b6149ff980c050c25c2d177a03392
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / bhtool-0.2.4-py3-none-any.whl
| Download URL | bhtool-0.2.4-py3-none-any.whl |
|---|---|
| Size | 14.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7295f51db0eb3d601445e5b8322e189c9685c85d61d66d20eaeb98703b0d59d5
|
|
BLAKE2b-256 checksum How to use checksums |
d10f96e8a5117636fd820996dbb6de3cf998d2b7527d450cd7237b276f5f07fc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|