Skip to content

skmtrd/3dssh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

3dssh

A Nintendo 3DS native SSH terminal client, tuned for use with Claude Code.

Connect your 3DS to a remote machine and run Claude Code directly from the handheld — full Japanese rendering, Nerd Font symbols, and a touch keyboard included.

3dssh screenshot

Features

  • SSH connection via libssh2 + mbedTLS (xterm-256color PTY)
  • Claude Code optimized — Nerd Font symbols, box-drawing characters, Braille spinners, and Unicode special characters all render correctly
  • Japanese support — Hiragana, Katakana, and Kanji via Shinonome bitmap font (6,879 glyphs) with HackGen35 fallback
  • Pixel-perfect fonts — Terminus for ASCII, HackGen35ConsoleNF + Apple Symbols for symbols, Shinonome for CJK
  • Full UTF-8 — multi-byte sequences are preserved across SSH receive buffer boundaries
  • Touch keyboard with Ctrl shortcut bar (^C, ^D, ^Z, ^A, ^L, ^R, ^U, ^W, PgUp, PgDn)
  • Circle pad scrolling — analog stick scrolls the 500-line scrollback buffer
  • 256-color + TrueColor SGR support

Requirements

  • Nintendo 3DS / 2DS (with Homebrew Launcher)
  • devkitPro with devkitARM and 3DS libraries
  • libssh2 built for 3DS (see build-libssh2.sh)

Build

# Install devkitPro and set environment variables
export DEVKITPRO=/opt/devkitpro
export DEVKITARM=/opt/devkitpro/devkitARM

# Build libssh2 (first time only)
bash build-libssh2.sh

# Generate font atlas (requires Python 3 + Pillow, Terminus TTF, HackGen35ConsoleNF)
python3 tools/gen_font.py

# Build
make

Font Setup (macOS)

The font generator expects these fonts in ~/Library/Fonts/:

Usage

  1. Copy 3dssh.3dsx to /3ds/3dssh/3dssh.3dsx on your SD card
  2. Launch via Homebrew Launcher
  3. The app auto-connects using the credentials defined in source/main.c

Edit DEFAULT_HOST, DEFAULT_USER, DEFAULT_PASS, DEFAULT_PORT in source/main.c before building.

Controls

Input Action
Circle pad up/down Scroll terminal history
Touch keyboard Text input
^C, ^D, etc. Shortcut bar at top of keyboard
START Reconnect

Why 3DS + Claude Code?

Because why not. The 3DS screen (400×240 top) fits ~66×20 characters at 6×12px — tight but usable for Claude Code's TUI. This project started as a curiosity and turned into a fairly complete terminal emulator.

About

Nintendo 3DS native SSH terminal client

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors