Baud
Use the baud CLI to diagnose and automate serial, UART, COM-port, USB-to-TTL, and firmware-console workflows. Trigger when Codex needs to enumerate serial ports, capture boot logs, diagnose silent or one-way communication, send device commands, run guarded YAML hardware tests, or interpret baud JSON, JSONL, logs, and exit codes. Prefer this skill over ad hoc pyserial scripts.From its SKILL.md
npx -y skills add Nitmi/baud-cli --skill baudAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 29 days oldThe repository was created 29 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.9 KB, 955 tokens by cl100k_base, as published. Nobody here has run it
Baud
Use baud as the serial execution layer. Preserve evidence, minimize transmission, and gate physical actions behind verified device state.
Prepare
- Run
baud --versionbefore opening a port. - If the command is unavailable, report the missing prerequisite. When installation is authorized, use
uv tool install baud-cli; useuv run --directory <baud-cli-repo> baudonly when the source checkout is known. Do not silently replace it with an ad hocpyserialscript. - Read applicable
AGENTS.md, firmware documentation, and existing serial workflows to learn the baud rate, line ending, safe query commands, reset behavior, and physical risks. - Resolve the port from evidence. Do not assume a previous COM or tty name still identifies the same adapter.
Choose The Least Invasive Command
Follow this escalation order:
- Run
baud list --jsonto enumerate ports and USB metadata. - Run
baud monitor --port <port> --duration <seconds> --jsonto observe boot output without transmitting. - Run
baud probe --port <port> --commands <safe queries> --endings crlf lf --jsononly after confirming the probe commands are harmless for the device. - Run
baud sendfor one bounded query with explicit expectations. - Run
baud run <workflow.yaml> --jsonfor multi-step configuration, observation, or hardware action.
Use --json for a bounded command whose final result drives the next decision. Use --jsonl when event ordering or streamed evidence matters. Keep automatic log artifacts enabled for real hardware work.
Apply Safety Gates
- Start with read-only observation and status queries.
- Treat DTR and RTS as physical control signals that may reset or reconfigure a device. Keep both false unless device documentation requires otherwise.
- Confirm both communication directions before sending a state-changing command. A boot banner proves only device-to-host traffic.
- Read configuration back from the device; do not treat ACK, echoed input, or a successful write as proof that hardware accepted the state.
- Mark motion, heating, injection, erase, flash-save, power switching, and similar actions as
dangerous: truein workflows. Require successful earlier verification steps withrequires. - Begin physical testing with one cycle, the lowest safe setpoint, unloaded mechanics, or another documented low-risk condition.
- Stop on a busy, disappearing, or unidentified port. Do not kill an unknown process or continue on a different port without evidence.
Read references/safety.md before transmitting to an unfamiliar device, controlling physical motion, changing DTR/RTS, or diagnosing resets and one-way communication.
Run Guarded Workflows
Prefer an existing repository workflow under locations such as debug/serial/ or examples/. Inspect it before execution and verify that its commands match the connected firmware.
When authoring a workflow:
- Give every meaningful step a stable
id. - Add positive read-back assertions and negative error assertions.
- Keep waits local to the operation that needs them.
- Make every dangerous step depend on all required verification steps.
- Query final device state after asynchronous activity.
- Preserve the generated
.logand.jsonlpaths in the result.
Read references/workflows.md when creating or modifying YAML, selecting assertions, or interpreting workflow results and exit codes.
Interpret Evidence
Use the structured result before reading the human log:
- Check
ok,exit_code,reason, andfailed_step. - Inspect the failed step's
text,bytes_received, and assertion details. - Use JSONL timestamps and Base64 raw bytes when decoding, line endings, resets, or event order are disputed.
- Distinguish
silentfromdevice_tx_only_or_command_loop_not_runningandresponsiveprobe diagnoses. - Treat a repeated startup banner after a command as evidence of a probable reset, not merely a missing response.
Summarize the exact command, port identity, observed evidence, safety decision, and next diagnostic step. Do not claim hardware success from process exit alone when the workflow lacks a device-state assertion.
Handle CLI Gaps
Inspect baud <command> --help before falling back. Use a temporary serial script only when baud cannot express a required diagnostic and the fallback is within the user's authorized hardware scope. Keep the fallback read-only first, preserve raw bytes, always close the port, and record the missing capability as a candidate baud-cli enhancement.
What ships with it: 3 files
6.3 KB alongside SKILL.md
agents/
- openai.yaml215 B
references/
- safety.md3.0 KB
- workflows.md3.1 KB