Repolode
tinydesk-project

tinydesk-project/tinydesk

A mouse-driven, windowed desktop that runs on ESP32 microcontrollers and is drawn in any ANSI terminal over serial.

Stars
104
Forks
15
Open issues
4
Last commit
2 days ago

What is it?

TinyDesk is a text-mode desktop for microcontrollers. It draws overlapping, draggable windows using ANSI escape sequences and reads keyboard and mouse input back from the terminal, so no display hardware is needed. Connect a UTF-8 terminal with ANSI/VT cursor control and xterm mouse reporting to the board's serial port, such as PuTTY, and the desktop appears.

The desktop includes a Terminal app running TinyDesk Shell, plus Files, an Editor with Python highlighting, Network, MQTT, Modbus (TCP and RTU), System Monitor, Log Viewer, Settings and OTA software update. Scripts can be written in shell (.tdsh) or MicroPython, and a small API lets developers add their own apps.

The portable C11 core has no third-party dependencies and targets ESP32-S3, ESP32-C6 and classic ESP32 boards via ESP-IDF, as well as Linux, Windows and macOS for development. The project is a developer preview at version 0.2.0.

Key features

  • 01Overlapping, draggable, resizable windows drawn in a terminal over serial.
  • 02Mouse and keyboard control, with copy and paste to the PC.
  • 03Built-in apps for files, editing, networking, MQTT and Modbus.
  • 04Shell scripts and MicroPython scripts with access to files, MQTT and Modbus.
  • 05Runs on ESP32-S3, ESP32-C6 and classic ESP32 boards, and natively on Linux, Windows and macOS.

Use cases

  • Managing an ESP32 device's files, network settings and logs without a display or extra software.
  • Monitoring and writing Modbus registers on industrial RS-485 equipment from a board.
  • Prototyping MQTT or pin-control scripts in MicroPython on a microcontroller.
  • Learning or demonstrating embedded systems through a visual desktop in a terminal.

Quick start

  1. 1

    Clone the repository with its shell submodule

    git clone --recursive https://github.com/tinydesk-project/tinydesk.git
  2. 2

    Enter the project directory

    cd tinydesk
  3. 3

    Build the desktop for the PC and run it

    cmake -B build -G Ninja && cmake --build build && ./build/tinydesk

Things to know

  • This is a developer preview (v0.2.0), so expect rough edges.
  • Firmware images that include wolfSSH and wolfSSL are distributed under GPLv3 as a whole.
  • Full use needs an ESP32 board wired to a serial terminal; the PC build is mainly for development.
  • The optional Telnet takeover is unencrypted.

In collections

Topics

FAQ

What is tinydesk?
A mouse-driven, windowed desktop that runs on ESP32 microcontrollers and is drawn in any ANSI terminal over serial. TinyDesk is a text-mode desktop for microcontrollers. It draws overlapping, draggable windows using ANSI escape sequences and reads keyboard and mouse input back from the terminal, so no display hardware is needed. Connect a UTF-8 terminal with ANSI/VT cursor control and xterm mouse reporting to the board's serial port, such as PuTTY, and the desktop appears.
Is tinydesk free to use? What license does it have?
tinydesk is open source under the MIT license. Check the license terms before using it in commercial products.
Is tinydesk still maintained?
Actively maintained. The last commit to tinydesk was on Nov 5, 2026.
What can I use tinydesk for?
Managing an ESP32 device's files, network settings and logs without a display or extra software. Monitoring and writing Modbus registers on industrial RS-485 equipment from a board. Prototyping MQTT or pin-control scripts in MicroPython on a microcontroller. Learning or demonstrating embedded systems through a visual desktop in a terminal.
How do I install tinydesk?
Clone the repository with its shell submodule: git clone --recursive https://github.com/tinydesk-project/tinydesk.git Enter the project directory: cd tinydesk Build the desktop for the PC and run it: cmake -B build -G Ninja && cmake --build build && ./build/tinydesk
Where can I get tinydesk?
The source code and installation instructions are on GitHub: https://github.com/tinydesk-project/tinydesk

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects