# Clientre 5, a pocket SSH terminal on Tab5

An ESP-IDF firmware that turns the M5Stack Tab5 into a standalone pocket SSH terminal, with a keyboard-first UI, Japanese kana-kanji input and Tailscale access.

- Category: Interface (mod)
- Device: [M5Stack Tab5](https://afterware.xyz/d/m5stack-tab5)
- Made by: [Mozgi512](https://github.com/Mozgi512) on GitHub
- Original: https://github.com/Mozgi512/Clientre5
- On Afterware: https://afterware.xyz/p/clientre-5-a-pocket-ssh-terminal-on-tab5

## Can I build this?

- Difficulty: Intermediate
- AI-buildability: 4/5 (The firmware is a large ESP-IDF software project on an off-the-shelf Tab5 that AI tools can mostly write, but the optional custom keyboard and battery case need printing and some assembly.)
- Time: A few weeks
- Cost: $50–100
- Parts: ESP32-P4, ESP32-C6, M5Stack Tab5
- Tools: soldering iron, 3D printer, computer with ESP-IDF v5.5

Estimates based on the original write-up. How the AI-buildability score works: https://afterware.xyz/ai-buildability

## Build sheet

- Device: M5Stack Tab5
- SoC: ESP32-P4 + ESP32-C6 WiFi
- Framework: ESP-IDF v5.5, LVGL
- Language: C

## Starter prompt

```
Based on "Clientre 5, a pocket SSH terminal on Tab5" on Afterware: https://afterware.xyz/p/clientre-5-a-pocket-ssh-terminal-on-tab5

I have an M5Stack Tab5 with an ESP32-P4 and want to build an ESP-IDF v5.5 project with LVGL that acts as a simple SSH terminal. Start with the display and touch setup, then add a text terminal view with keyboard input, and a settings screen for host name and credentials stored in flash. Explain how to build and flash it with idf.py.
```

## Story

Clientre 5 is a custom operating system for the M5Stack Tab5, a 1280 by 720 touchscreen handheld built around the ESP32-P4. The firmware is written in ESP-IDF and draws its interface with LVGL. It includes an SSH client with VT100 and xterm-256color emulation, scrollback and full-width CJK characters, along with password, public key and keyboard-interactive authentication.

The UI is designed around the Tab5's physical keyboard, or a USB keyboard, with an on-screen keyboard as fallback. Japanese input works through romaji to kana conversion and SKK dictionary lookup. Tailscale connectivity comes from the bundled MicroLink client. The firmware also covers a file manager, image, text and audio viewers, a web file interface over WiFi, and a USB disk mode.

The author lists a custom JIS-layout keyboard and a modified battery case as CAD files under CC BY 4.0. The repository notes that the firmware has been checked on real hardware for display, touch, keyboard, WiFi, SSH, Japanese input and USB disk mode, while music playback and OTA install are not yet fully verified.

## Resources

- [Repository](https://github.com/Mozgi512/Clientre5)
- [Releases](https://github.com/Mozgi512/Clientre5/releases)
- [M5Stack Tab5 docs](https://docs.m5stack.com/ja/core/Tab5)
- [MicroLink](https://github.com/Csontikka/microlink)

Tags: ssh terminal, esp32-p4, lvgl, tab5, japanese input, tailscale

AI assistants can search all Afterware builds through the MCP server at https://afterware.xyz/mcp (setup: https://afterware.xyz/agents).
