Skip to content

nullstalgia/yap

Repository files navigation

yap - A friendly serial terminal.

Build Release

A split view of yap's port selection screen and port interaction screen.

Features

  • User-friendly interface for interacting with Serial/COM ports.
  • Optional Pseudo-shell mode to allow preparing an input before sending, with history.
  • Intelligent auto-reconnect (checks for devices with matching characteristics, if port path changes unexpectedly).
  • Text can be colored by incoming ANSI commands, or by user-created color rules, supporting matching by either regex or string literals.
  • Connect to a device from the command line by supplying USB PID+VID
  • Log recieved port data to disk as UTF-8 processed text and/or raw bytes.
  • Macros with categories to organize commonly sent payloads.
  • Support for flashing connected ESP32 devices with .bin/.elf files!
  • Support for decoding incoming bytes as defmt frames.
  • Configurable keybinds, including for Macros and ESP32 flashing!
    • Keybinds can have several actions that run in order, so you can flash a device and send setup commands if it finishes successfully.
  • Hex view to see raw contents of incoming inputs.
  • Allow hiding specific devices from Port Selection screen.
  • Releases downloaded from GitHub can self-update!
  • Cross-Platform!

Showcase

Auto-Reconnection Example:

Auto-Reconnection.Showcase.mp4

espflash Flashing Example:

espflash.Showcase.mp4

Pre-compiled Downloads

Pre-compiled portable binaries can be found in Releases.

yap-full builds have all optional features enabled!

yap-lite builds exclude less universally-applicable features (currently excluded: espflash, defmt, defmt_watch).

Installation

Crates.io releases are not yet available (due to some dependencies not being available/yet released to crates.io).

Local installation can be accomplished by running

cargo install --git https://github.com/nullstalgia/yap --branch master --no-default-features --features yap-full

(or yap-lite or any other combination of features).

Avoid enabling the self-replace or portable features on installed builds!

Usage

Open port selection:

yap

Try to connect to port at COM1:

yap COM1

Try to connect to port at COM1 with 9600 baudrate:

yap COM1 9600

Try to connect to found USB device with VID 303A and PID 1001:

yap 303A:1001

Try to connect to found USB device with VID 303A and PID 1001 and Serial Number 123456 at 9600 baudrate:

yap 303A:1001:123456 9600

Antivirus notice:

Downloaded Windows builds of yap may falsely trigger Windows Defender, likely due to the executable's capacity to self-update.

Release builds have GitHub Attestations enabled to help you to verify their authenticity!

Acknowledgements:

Inspired by the likes of minicom/picocom, Termite, CuteCom, PuTTY, and others.

This wouldn't have been possible without the prior work of the original ansi-to-tui crate, esp-rs's team, Ferrous Systems, and many many other incredible crate authors and educators. Thank you all!