Skip to content

Add unified BitBox02 CLI#2001

Open
NickeZ wants to merge 1 commit into
BitBoxSwiss:masterfrom
NickeZ:nickez/send-message-from-cli
Open

Add unified BitBox02 CLI#2001
NickeZ wants to merge 1 commit into
BitBoxSwiss:masterfrom
NickeZ:nickez/send-message-from-cli

Conversation

@NickeZ

@NickeZ NickeZ commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator

Introduce bitbox02_cli.py as the canonical Python CLI with explicit interactive mode and non-interactive subcommands for device, wallet, bootloader, and firmware workflows.

Keep send_message.py and load_firmware.py as compatibility wrappers, and update docs plus Python linting to point at the new entrypoint.


This is vibe coded so far. I'll need to make a self-review as well. Looking for concept ack from @benma and @cedwies

Introduce bitbox02_cli.py as the canonical Python CLI with explicit interactive mode and non-interactive subcommands for device, wallet, bootloader, and firmware workflows.

Keep send_message.py and load_firmware.py as compatibility wrappers, and update docs plus Python linting to point at the new entrypoint.
@NickeZ NickeZ requested review from benma and cedwies June 29, 2026 13:48
@cedwies

cedwies commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator

concept ACK

@benma

benma commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

Maybe rename to bitbox_cli so it works with future BitBoxes too?

@benma benma left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The commit msg does not sufficiently explain why a non interactive tool is needed. What do we need it for? Does it make sense to have the interactive and non-interactive tools be unified in one script?

Also this was a chance to split the monster send_message.py into multiple files 😁

Comment thread scripts/lint-python
# We must typecheck the whole `py` directory even if only a few files are modified so that mypy
# sees all types
${MYPY} --implicit-reexport --namespace-packages --ignore-missing-imports --strict py/send_message.py py/bitbox02/bitbox02 releases/describe_signed_firmware.py
${MYPY} --implicit-reexport --namespace-packages --ignore-missing-imports --strict py/bitbox02_cli.py py/bitbox02/bitbox02 releases/describe_signed_firmware.py

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

keep send_message.py? Can't hurt to check it while it exists.

Comment thread py/README.md

```bash
python ./send_message.py
python ./bitbox02_cli.py

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add non-interactive examples? I am confused how to use it, what are the args to the API calls when it's not interactive, like signmsg?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

--help ;).

It is all vibe coded so far, so mostly looking for concept ack.

@benma benma left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

concept ACK. approved because i can't remove myself as reviewer 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants