Device Access

Web Serial

Probing…

Web Serial is a web platform capability in the Device Access category. Read/write serial ports — Arduinos, printers, industrial gear. Supported in Chromium 89+; not available in Firefox and Safari. Requires a secure context (HTTPS or localhost) and a user gesture such as a click or tap.

Secure contextUser gesture

Try it

Loading demo…

Code

const port = await navigator.serial.requestPort()
await port.open({ baudRate: 9600 })

const reader = port.readable.getReader()
const { value, done } = await reader.read() // value is a Uint8Array
console.log([...value].map(b => b.toString(16)).join(' '))

reader.releaseLock()
await port.close()

Browser support

Chromium
89
Firefox
No
Safari
No

Frequently asked questions

Which browsers support Web Serial?

Supported in Chromium 89+; not available in Firefox and Safari.

Does Web Serial require HTTPS?

Yes. Web Serial needs a secure context, so it only works over HTTPS (or on localhost during development).

What is Web Serial used for?

Read/write serial ports — Arduinos, printers, industrial gear.

Can I try Web Serial in my browser?

Yes. shwcs.net runs a live Web Serial demo that probes your current browser and lets you try the API. Everything runs locally — nothing is sent anywhere.

MDN reference ↗ Specification ↗