The Setup
I’ve been building out a homelab K3s cluster — a Beelink Mini PC as the control plane, an Ubuntu tower as an agent, and a Razer Blade for GPU workloads. All connected over Tailscale, which gives every device a stable private IP regardless of network.
Recently I wanted to be able to run GitHub Copilot CLI sessions without being at my desk. Turns out the combination of Tailscale + a good SSH client makes this completely viable from a phone.
What You Need
- A Linux server (homelab, VPS, Raspberry Pi — anything you can SSH into)
- GitHub Copilot CLI installed on it (
sudo npm install -g @github/copilot) - Tailscale on both the server and your phone
- An SSH client app: Termius (iOS/Android) or Blink Shell (iOS)
Why Tailscale
Without Tailscale you’d need to expose SSH to the public internet or set up a VPN. Tailscale handles both — it creates a private mesh network where your phone and your server get stable 100.x.x.x IPs that just work, even when switching between WiFi and cellular. No port forwarding, no dynamic DNS.
Install it on your server:
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
Install the Tailscale app on your phone and sign in with the same account. Both devices appear in your Tailscale admin panel automatically.
Installing Copilot CLI on the Server
# Node.js 20+ required
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
# Install Copilot CLI
sudo npm install -g @github/copilot
# Authenticate (follow the device flow)
copilot auth login
The SSH Client
On iPad: Blink Shell is the gold standard — it’s a real terminal emulator with Mosh support (great for flaky connections) and feels native. Worth the subscription.
On iPhone: Termius works better on smaller screens. The free tier is sufficient. It adds a toolbar with Ctrl, Tab, Esc, and arrow keys above the keyboard which makes terminal work actually usable on mobile.
Both apps support Tailscale IPs directly — just add a new host with your server’s 100.x.x.x address.
The Workflow
Once connected:
cd ~/homelab
copilot
You’re in a full Copilot CLI session. You can ask questions about your codebase, run commands, edit files, deploy to K3s — everything you’d do at a desk, from your couch or on the go.
For quick sessions on iPhone, Termius handles it well. For longer work sessions where you want to actually write code, the iPad with a keyboard is surprisingly capable.
Automating the Setup
I added Copilot CLI installation to my Ansible dev-workstation playbook so every new machine in the homelab gets it automatically:
- name: Install GitHub Copilot CLI
tags: copilot-cli
community.general.npm:
name: '@github/copilot'
global: true
state: present
become: true
Run it against any host with:
ansible-playbook playbooks/dev-workstation.yml -l <hostname> --tags copilot-cli
Why This Matters
The barrier to picking up a dev task used to be “am I at my desk?” Now it’s just “do I have my phone?” For quick infrastructure fixes, reviewing a spec, or iterating on a K3s manifest — a Copilot CLI session from my iPhone is fast enough to be genuinely useful.