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 |
|
| port | 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.5
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.5.tar.gz | 11.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bhtool-0.2.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.3 kB
Release files / bhtool-0.2.5.tar.gz
| Download URL | bhtool-0.2.5.tar.gz |
|---|---|
| Size | 11.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c9f06edf7129a40361334f5dc3da2ab1e0900c883921976f4c0d9adc21c3dbb5
|
|
BLAKE2b-256 checksum How to use checksums |
82d247cd53209e753a85f8d7e89aca4fde627ec9ec4e4789e434fdf6cc2d818b
|
| 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.5-py3-none-any.whl
| Download URL | bhtool-0.2.5-py3-none-any.whl |
|---|---|
| Size | 14.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c273f46e617d03038fef574222c6bfd71d5ba395720199444d6a7c8f41594e1b
|
|
BLAKE2b-256 checksum How to use checksums |
814aa0c197f59a8b57312adb07a89cbf72ef418d829c88f9781df074454fa7f6
|
| 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}
|