whatisgithub

What is tinytouch?

zimengxiong/tinytouch — explained in plain English

Analysis updated 2026-05-18

221CAudience · developerComplexity · 5/5Setup · hard

In one sentence

A DIY ESP32 device that lets you unlock and authenticate on a Mac with a fingerprint sensor instead of buying Apple's Touch ID keyboard.

Mindmap

mindmap
  root((tinyTouch))
    What it does
      Fingerprint login
      Sudo authentication
      Wireless auth
    Tech stack
      C
      ESP32
      Python helper
      OpenSSL
    Modes
      HID red pill
      PIV smart card blue pill
    Use cases
      Cheaper Touch ID alt
      Passwordless sudo
    Audience
      Hardware hobbyists
      Security tinkerers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build a cheaper alternative to Apple's Touch ID Magic Keyboard for fingerprint login.

USE CASE 2

Authenticate sudo commands on a Mac using a fingerprint instead of typing a password.

USE CASE 3

Use a smart card style fingerprint gate for lock screen login on macOS.

USE CASE 4

Learn how PIV smart card authentication works by building a working example.

What is it built with?

CESP32PythonArduinoOpenSSLmacOS PAM

How does it compare?

zimengxiong/tinytouchshibco/ableton-linuxfreertos/freertos-plus-tcp
Stars221217213
LanguageCCC
Last pushed2026-07-10
MaintenanceActive
Setup difficultyhardmoderatehard
Complexity5/54/5
Audiencedevelopergeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires flashing custom ESP32 firmware, generating crypto keys, and physically wiring a fingerprint sensor.

So what is it?

tinyTouch is a do it yourself project that lets you log in, run sudo commands, and authenticate on a Mac using a fingerprint sensor, wirelessly, instead of buying Apple's $149 Magic Keyboard with Touch ID. It is built around an ESP32 microcontroller connected to a fingerprint sensor, and it offers two different ways of working, which the project calls red pill and blue pill mode. In red pill mode, called HID mode, the device pretends to be a regular USB keyboard. After your fingerprint is matched, a small helper program on your Mac sends your real password to the device in encrypted form, and the device types it in for you, then immediately forgets it. This makes it work almost anywhere your password would normally work, including remote login sessions, but it does mean your actual password is briefly typed out by the device each time. In blue pill mode, called PIV mode, the device instead pretends to be a USB smart card, the kind macOS already knows how to use for secure login. Your fingerprint gates access to a private security key stored on the device, and macOS talks to it using its built in smart card system rather than typing your password at all. This is described as the more secure option, though it only works in places where macOS accepts smart cards, such as the lock screen and sudo prompts, not everywhere a password would work. The README is unusually direct about the security tradeoffs of building your own authentication hardware. It includes tables comparing attack scenarios for both modes, and openly states that anyone who leaves their computer physically accessible to people they do not fully trust, or who handles sensitive company or classified information, should stick with an official, more secure device instead. Setup involves flashing custom firmware onto the ESP32 board using either the Arduino IDE or the ESP-IDF toolchain, generating cryptographic keys with OpenSSL, running a Python helper script on macOS, and wiring up the physical hardware yourself. The README lists the exact commands for both modes but assumes comfort with command line tools, firmware flashing, and basic hardware wiring. It does not include a parts list beyond a partial hardware table, and it is written specifically for macOS users, not Windows or Linux.

Copy-paste prompts

Prompt 1
Walk me through setting up tinyTouch in HID red pill mode step by step.
Prompt 2
Explain the security tradeoffs between HID mode and PIV mode in this project.
Prompt 3
Help me flash the ESP32 firmware for the PIV smart card mode using ESP-IDF.
Prompt 4
What hardware do I need to buy to build a tinyTouch fingerprint device?
Prompt 5
Explain how the pairing key and nonce system protects my password in HID mode.

Frequently asked questions

What is tinytouch?

A DIY ESP32 device that lets you unlock and authenticate on a Mac with a fingerprint sensor instead of buying Apple's Touch ID keyboard.

What language is tinytouch written in?

Mainly C. The stack also includes C, ESP32, Python.

How hard is tinytouch to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is tinytouch for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.