Skip to content

NanashiTheNameless/SerialTerminal

 
 

Repository files navigation

Web Serial Terminal Ask DeepWiki

A nice looking serial terminal in the web. Open-Source, free, and easy to use.

This version: serial.namelessnanashi.dev

Static Offline Builds are available under Releases.

Features

  • Direct serial port communication via Web Serial API
  • Real-time terminal output with timestamps
  • Configurable baud rates (50 - 4000000)
  • Clean, modern Material-UI interface
  • Customizable keyboard shortcuts (Ctrl+L to clear, Ctrl+K for settings)
  • Desktop browser support (Chrome, Edge, Opera, Ungoogled Chromium)
  • Desktop browser support (Chrome, Edge, Opera, Ungoogled Chromium, Firefox 151+)
  • Control character support (Ctrl+C, Ctrl+D)
  • Persistent settings via localStorage
  • Accessibility features with ARIA labels
  • Error boundary for graceful error handling

Browser Compatibility

This tool requires the Web Serial API, which is supported in:

  • Ungoogled Chromium 89+
  • Chrome/Chromium 89+
  • Edge 89+
  • Opera 75+

Not supported on

  • Safari (not supported)
  • Mobile browsers (not supported due to API limitations)

Note: Firefox added support for the Web Serial API in version 151 and later. See the MDN compatibility table for details: https://developer.mozilla.org/en-US/docs/Web/API/Serial#browser_compatibility

Keyboard Shortcuts

Main Shortcuts

  • Ctrl+K - Open settings
  • Ctrl+L - Clear terminal history
  • Ctrl+C - Send SIGINT (Ctrl+C control character 0x03, when enabled in settings)
  • Ctrl+D - Send EOF (Ctrl+D control character 0x04, when enabled in settings)
  • Ctrl+X - Disconnect from serial port (disabled by default, enable in settings)
  • Enter - Send command

Quick Hotkeys (customizable in settings)

  • Alt+I - Focus terminal input
  • Alt+H - Show command history
  • Alt+D - Download terminal output
  • Alt+C - Clear terminal dialoog
  • Alt+S - Open settings
  • Alt+X - Disconnect from serial port

Note: Quick hotkeys can be toggled and configured in the advanced settings panel

Development

Prerequisites

  • Node.js 25+ and Yarn 4+
  • A browser with WebSerial support

Local testing/running

git clone https://github.com/NanashiTheNameless/SerialTerminal
cd SerialTerminal
bash localTest.sh

The application will open at http://localhost:3000

Building

yarn install --immutable
yarn build

Output will be in the build/ directory.

Linting

yarn lint          # Check for errors
yarn lint:fix      # Auto-fix errors

Local Offline Building

git clone https://github.com/NanashiTheNameless/SerialTerminal
cd SerialTerminal
bash buildOffline.sh

Troubleshooting

"Serial not supported" error

  • Ensure you're using a desktop browser that supports the Web Serial API (Chrome, Edge, Opera, Ungoogled Chromium, or Firefox 151+)
  • Check that you're not on a mobile device
  • Verify the browser version supports Web Serial API

Device not appearing in port selection

  • Check USB cable connection
  • Ensure device drivers are installed
  • Try unplugging and replugging the device
  • Check if another application is using the serial port

Connection drops unexpectedly

  • Check physical USB connection
  • Verify baud rate matches your device
  • Check device power supply
  • Review browser console for error messages

Changes to baud rate not taking effect

  • Baud rate changes require disconnecting and reconnecting
  • Current connection must be closed first

License

This software is licensed under the MIT License. See the license file for details.

Font License

This project uses the amazing 0xProto font family, which is licensed under the SIL Open Font License, Version 1.1.

Copyright (c) 2024, 0xType Project Authors (https://github.com/0xType)

About

An Open-Source Web-based Serial Terminal

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • JavaScript 96.7%
  • CSS 2.0%
  • Other 1.3%