Clarify CLI password prompts and streamline fingerprint enrollment - #62
Open
alsocat wants to merge 1 commit into
Open
Clarify CLI password prompts and streamline fingerprint enrollment#62alsocat wants to merge 1 commit into
alsocat wants to merge 1 commit into
Conversation
Setup was hard to follow for users new to the terminal. Hidden password input looked like a frozen prompt, and enrollment printed four full sentences per scan with no visual separation between scans. - Tell users that nothing appears as they type, at every password prompt (HID Keychain capture, HID re-entry, and the PIV sudo authorization). - Standardize the PIV sudo prompt to "Mac password: " via sudo -p, with a short note that this password is not saved, in contrast to HID where it is stored in the Keychain. - Replace the per-scan sentences with a "Scan N of 4" header and indented touch/lift/touch-again steps, separated by blank lines. - Add macOS system-sound feedback during enrollment: Tink on each touch prompt, Pop on lift, and Glass once all four scans complete. Sounds are non-blocking and no-op off macOS, when the sound file is missing, or when TINYTOUCH_NO_SOUND is set.
ZimengXiong
force-pushed
the
cli/enrollment-ux
branch
from
September 3, 2026 05:17
8a3d1a5 to
b63758f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
CLI-only UX changes in
tinytouch. No protocol, firmware, or Keychain behavior is affected.Password prompts
Nothing appears as you type — that is normal.Applies to the HID Keychain capture, the HID re-entry path, and the PIVsudoauthorization.Password:. It now usessudo -v -p "Mac password: "so both modes read identically, preceded by a shortmacOS needs to authorize this step. Your password is not saved.— the honest contrast with HID, where the password is stored in the Keychain.Enrollment
Scan N of 4header and indentedtouch the sensor/lift your finger/touch againsteps, with blank lines between scans.Fingerprint enrolled.line.Audio feedback
chime()helper plays macOS system sounds during enrollment:Tinkon each touch prompt,Popon lift,Glassonce all four scans complete.afplayviaPopen), and silently no-ops off macOS, when the sound file is missing, or whenTINYTOUCH_NO_SOUNDis set.Why
Setup reads as intimidating to users who aren't comfortable in a terminal. Hidden password input looks like a frozen prompt, and the dense enrollment output gave no sense of progress or separation between scans. The sounds give confirmation without making the user watch the terminal while positioning a finger.
Before / after
Notes for reviewers
enroll()andexchange_serial(), so the scan formatting and sounds apply to HID and PIV alike. The sounds also fire on other touch-driven commands such asAUTH— intentional, for consistency.sudo -ponly affects the first prompt; on a wrong password sudo re-prompts with its own text.python -m unittest discover -s testspasses, and the flow was exercised on real hardware in both HID and PIV mode. Sound choices are easy to swap ifTink/Poparen't the right feel.tinytouch_keychain.pyusesX | Noneannotations withoutfrom __future__ import annotations); macOS system Python 3.9 fails on import. Pre-existing, not touched here.🤖 Generated with Claude Code