Project Overview
This project documents the build of a purpose-built cyberdeck: a portable SSH terminal combining a Sony Xperia 10 V running Sailfish OS with a compact mechanical keyboard in a 3D-printed chassis. Unlike typical cyberdeck builds that try to be underpowered laptops, this one has a specific mission — acting as a mobile SSH client to connect to a bastion server running Claude Code.
The result is a genuinely useful portable development terminal that also happens to function as a normal phone when you're not in hacker mode.
The Xperia 10 V lacks DisplayPort alt mode over USB-C, so external display output isn't practical. Rather than fighting against the hardware limitations, this build leans into the phone's strengths: excellent battery life, always-on mobile data, compact form factor, and a proper Linux userland via Sailfish OS.
Core Concept
The Xperia 10 V running Sailfish OS provides a proper Linux environment with SSH, mosh, tmux and all the CLI tools you need. USB OTG support means physical keyboards just work.
A compact 60% or 40% mechanical keyboard provides actual tactile typing. Either wired via USB-C hub or Bluetooth, depending on your preference for cable management vs battery life.
Custom chassis joins phone and keyboard into a cohesive unit. Clamshell design for portability, with space for USB hub and optional battery pack integration.
A remote server running Claude Code does the heavy lifting. SSH in via Tailscale/WireGuard, attach to a tmux session, and you've got a full AI-powered development environment.
System Architecture
┌─────────────────────────────────────────────────────────────────────┐ │ SAILFISH CYBERDECK │ ├─────────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────┐ USB-C ┌──────────────────┐ │ │ │ XPERIA 10 V │◄───────────►│ USB-C HUB │ │ │ │ │ │ │ │ │ │ Sailfish OS │ │ ├─ Keyboard │ │ │ │ SSH Client │ │ └─ Power (opt) │ │ │ │ Mosh Client │ │ │ │ │ │ Terminal App │ └──────────────────┘ │ │ └────────┬────────┘ │ │ │ │ │ │ Mobile Data / WiFi │ │ │ + Tailscale/WireGuard VPN │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ BASTION SERVER │ │ │ │ │ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌────────────┐ │ │ │ │ │ tmux │ │ Claude Code │ │ Git │ │ │ │ │ │ session │◄──►│ (claude) │◄──►│ repos │ │ │ │ │ └─────────────┘ └──────┬──────┘ └────────────┘ │ │ │ │ │ │ │ │ │ ▼ │ │ │ │ ┌─────────────────┐ │ │ │ │ │ Anthropic API │ │ │ │ │ └─────────────────┘ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────┘
Key Components
| Component | Specification | Notes |
|---|---|---|
| Phone | Sony Xperia 10 V (XQ-DC54) | 6.1" OLED, 5000mAh, USB OTG support |
| Operating System | Sailfish OS 4.6+ | Proper Linux userland, RPM packages |
| Keyboard | 60% / 40% Mechanical | USB-C or Bluetooth connectivity |
| Chassis | 3D Printed (PLA/PETG) | Custom design or adapted from existing |
| Bastion Server | Linux VPS / Home Server | Running Claude Code + tmux |
| VPN | Tailscale / WireGuard | Secure connection to bastion |
What Makes This Useful
Most cyberdeck builds are basically novelty Raspberry Pi laptops that are worse than actual laptops at everything. This build is different because it has a genuine purpose:
- Always-on connectivity — Mobile data means you're not hunting for WiFi
- Pocket-sized when not in use — The phone works normally for calls, messages, etc.
- Real keyboard for real work — Touch typing on a mechanical keyboard, not pecking at glass
- Heavy compute is remote — Claude Code running on a proper server, not straining mobile hardware
- Session persistence — tmux sessions survive disconnects, pick up where you left off
- Genuinely portable — Fits in a messenger bag, works on trains, cafes, wherever
Project Pages
Detailed specifications for all components: phone, keyboards, hubs, and optional extras.
Installing Sailfish X, terminal configuration, SSH setup, and package management.
3D printing considerations, reference designs, and custom modifications.
Server setup, Claude Code installation, tmux configuration, and VPN access.
Step-by-step assembly instructions from unboxing to first SSH session.