Verktyg12 min läsning

Så här kör jag Claude Code från mobilen

Jag satte upp Claude Code på en billig server så jag kan koda med AI från telefonen. Här är hela resan, inklusive alla misstag och aha-upplevelser.

Daniel Dahlen

Daniel Dahlen

21 januari 2025

Jag sitter i soffan med telefonen. Kommer på en idé till en feature. Öppnar Termius, kopplar upp mig till min server, skriver till Claude vad jag vill ha. Några minuter senare är koden skriven, testad och pushad till GitHub.

Det här är min faktiska setup. Jag tänkte dokumentera hur jag fick ihop det.

TL;DR

  • Vad du får: Claude Code tillgängligt från din iPhone/Android, var som helst
  • Kostnad: ~90 kr/månad (€9)
  • Tid att sätta upp: 30-60 minuter om du följer guiden
  • Förkunskaper: Kunna navigera i en terminal (cd, ls, etc.). Eller kunna fråga en AI-modell hur du gör :)

Varför jag ville ha det här

Jag använder Claude Code dagligen på min Mac. Det är otroligt kraftfullt. Men jag ville kunna fortsätta jobba när jag är borta från datorn. Från soffan, på tåget, i väntrummet hos tandläkaren. (Okej, jag erkänner... även på toaletten.)

Problemet är att Claude Code kräver en riktig dator. Det är ett kommandoradsverktyg som behöver Node.js. Det finns ingen mobilapp.

Lösningen? Kör det på en server i molnet och anslut från mobilen.

Lösningen blev faktiskt riktigt bra:

  • Fullständig Claude Code-upplevelse på telefonen
  • Pushnotiser när Claude behöver min input
  • Kan se lokala webbservrar direkt i Safari
  • Allt synkar mellan telefon och dator

Välja server

Jag valde Hetzner av tre anledningar:

  1. EU-baserat (GDPR och närhet)
  2. Billigt (verkligt billigt)
  3. Bra prestanda för priset

Här är deras serveralternativ:

| Modell | CPU | RAM | Pris/mån | Bra för | |--------|-----|-----|----------|---------| | CX22 | 2 vCPU | 4 GB | ~€4 | Lätt användning | | CX32 | 4 vCPU | 8 GB | ~€8 | Mitt val | | CX42 | 8 vCPU | 16 GB | ~€17 | Tunga projekt |

Jag kör CX32 för ~€8.50 i månaden. Plus €0.60 för IPv4-adress. Totalt runt 90 kr/månad.

Varför just CX32?

Claude Code kan ibland köra tunga operationer (npm install, byggen, tester). Med 8 GB RAM och 4 vCPU har jag aldrig stött på problem. CX22 funkar för enklare grejer, men jag ville ha marginaler.

Skapa servern steg för steg

1. Skapa konto på Hetzner

Gå till hetzner.com/cloud och skapa ett konto. Du behöver verifiera med kreditkort.

2. Skapa en ny server

  1. Klicka "Add Server"
  2. Välj Location: Välj det som är närmast dig (jag tog Falkenstein)
  3. Välj Image: Ubuntu 24.04
  4. Välj Type: CX32 (eller vad du vill ha)
  5. Under Networking: Se till att IPv4 är aktiverat

Vad är Ubuntu?

Ubuntu är ett operativsystem (som Windows eller macOS, fast för servrar). 24.04 är bara versionsnumret. Det är det mest populära valet för servrar och det mesta fungerar direkt.

3. SSH-nycklar

SSH-nycklar är som ett superstarkt lösenord som består av två delar: en privat nyckel (som du håller hemlig) och en publik nyckel (som du ger till servern).

Tricket är att du kan skapa SSH-nycklar direkt i Termius. Så jag skippar detta steget här och fixar det i Termius istället.

4. Skapa servern

Klicka "Create & Buy". Det tar ungefär 30 sekunder att starta upp servern. Du får en IP-adress som ser ut ungefär som 168.119.xxx.xxx.

Termius: Din väg in

Termius är appen som gör allt möjligt. Det finns till både iOS och Android, och den synkar mellan alla dina enheter.

1. Ladda ner och skapa konto

Hämta Termius från App Store/Google Play. Skapa ett gratiskonto (du behöver inte betala).

2. Skapa SSH-nyckel i Termius

Det här är det smarta tricket:

  1. Öppna Termius
  2. Gå till Keychain (nyckelikonen)
  3. Tryck på + och välj Generate Key
  4. Ge den ett namn (t.ex. "hetzner")
  5. Välj ED25519 som typ
  6. Tryck Save

Nu har du en SSH-nyckel. Kopiera den publika nyckeln genom att trycka på nyckeln och sedan Copy to Clipboard (den som börjar med "ssh-ed25519").

3. Lägg till nyckeln i Hetzner

  1. Gå tillbaka till Hetzner Cloud Console
  2. Gå till SecuritySSH Keys
  3. Klicka Add SSH Key
  4. Klistra in din publika nyckel
  5. Ge den ett namn och spara

Om du redan skapat servern utan SSH-nyckel kan du:

  1. Gå till din server
  2. Klicka RescueEnable Rescue Mode
  3. Följ instruktionerna för att lägga till nyckeln

Eller enklare: ta bort servern och skapa en ny med nyckeln vald från början. Du betalar per timme, så det kostar nästan inget.

4. Anslut för första gången

I Termius:

  1. Gå till Hosts
  2. Tryck + och välj New Host
  3. Fyll i:
    • Label: Något beskrivande (t.ex. "Claude Server")
    • Address: Din servers IP-adress
    • Username: root
    • Keys: Välj nyckeln du skapade
  4. Spara och tryck på hosten för att ansluta

Du borde se något som:

root@ubuntu-4gb-fsn1-1:~#

Det funkar! Du är inne på din server. Från mobilen.

Installera grejerna

Nu ska vi installera det som behövs. Kopiera och klistra in dessa kommandon ett i taget.

1. Uppdatera systemet först

apt update && apt upgrade -y

Detta kan ta några minuter. Om den frågar om kernel-uppgradering, välj bara att fortsätta.

Omstart kan behövas

Om du ser ett meddelande om att starta om, kör reboot och vänta 30 sekunder innan du ansluter igen.

2. Installera Node.js

curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
apt install -y nodejs

Verifiera att det fungerade:

node --version

Du borde se något som v22.x.x.

3. Installera tmux

apt install -y tmux

Tmux är superviktigt. Mer om det snart.

4. Installera Claude Code

npm install -g @anthropic-ai/claude-code

5. Logga in på Claude

claude

Första gången får du välja inloggningsmetod. Välj att logga in via webbläsaren. Du får en länk i terminalen som du behöver kopiera och öppna i mobilens (eller datorns) webbläsare. Där autentiserar du dig med ditt Anthropic-konto.

När det är klart är du redo!

tmux: Varför dina sessioner inte dör

Här kommer den viktigaste delen för mobilanvändning: tmux.

Problemet utan tmux: Du startar Claude Code, stänger Termius för att svara på ett SMS, och när du kommer tillbaka är sessionen död. Allt du höll på med är borta.

Tmux löser detta genom att skapa "virtuella rum" som fortsätter köra även när du inte är ansluten.

Grunderna

Starta en ny tmux-session:

tmux new -s claude

Nu är du inne i tmux. Allt du gör här överlever även om du tappar anslutningen.

Koppla ifrån (utan att stänga)

Tryck Ctrl+B, släpp, och tryck sedan D.

Du är tillbaka i vanliga terminalen, men din session lever vidare.

Återanslut till sessionen

tmux attach -t claude

Boom. Allt är precis som du lämnade det.

Flera sessioner

Du kan ha flera projekt igång samtidigt:

tmux new -s projekt1
tmux new -s projekt2

Lista alla sessioner:

tmux ls

Tmux på mobil

På telefonens tangentbord kan Ctrl+B vara knepigt. I Termius kan du trycka på "Ctrl" i verktygsraden, sedan B, sedan D. Eller konfigurera en custom shortcut.

Scrolla i tmux

En sak som förvirrade mig: du kan inte bara svepa för att scrolla uppåt i tmux.

Lösningen: Tryck Ctrl+B, sedan [. Nu är du i "copy mode" och kan scrolla med svep eller piltangenterna. Tryck Q för att gå tillbaka.

Pushnotiser som faktiskt funkar

Det här är en game-changer: få notiser på telefonen när Claude behöver din input.

Jag använde ntfy.sh som är gratis och kräver ingen setup.

1. Ladda ner ntfy-appen

Hämta "ntfy" från App Store eller Google Play.

2. Prenumerera på en kanal

I appen, tryck + och skriv in ett unikt ämne. Till exempel: claude-daniel-12345 (gör det unikt så att ingen annan råkar prenumerera på samma).

3. Skapa notify-script på servern

nano ~/notify.sh

Klistra in:

#!/bin/bash
curl -s -d "$1" ntfy.sh/claude-daniel-12345

Byt ut claude-daniel-12345 mot ditt ämne.

Spara med Ctrl+X, Y, Enter.

Gör scriptet körbart:

chmod +x ~/notify.sh

4. Testa det

~/notify.sh "Hej från servern!"

Du borde få en notis på telefonen. Första gången jag fick det att funka var rätt nice.

5. Konfigurera Claude Code att använda det

Skapa en settings-fil:

mkdir -p ~/.claude
nano ~/.claude/settings.json

Klistra in:

{
  "hooks": {
    "Stop": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "/root/notify.sh 'Claude behöver input!'"
          }
        ]
      }
    ]
  }
}

Min miss: Fel format

Jag fick först fel för att jag hade "command": ["/root/notify.sh", "meddelande"] istället för en enda sträng. Claude Codes hooks vill ha kommandot som en sträng, inte en array.

Nu får du en notis varje gång Claude stannar och väntar på input. Perfekt när du kör något i bakgrunden och vill veta när det är klart.

Se localhost från mobilen

När Claude bygger en webbapp och startar en lokal server (typ npm run dev på port 3000), hur ser du den från mobilen?

Svaret är port forwarding i Termius.

Konfigurera port forwarding

  1. I Termius, gå till din host
  2. Tryck på ⚙️ (inställningar) för hosten
  3. Scrolla ner till Port Forwarding
  4. Tryck Add Rule
  5. Fyll i:
    • Local Port: 3000
    • Remote Host: localhost (eller lämna tomt)
    • Remote Port: 3000
  6. Spara

Nu, när du är ansluten till servern och har en app som kör på port 3000, öppna Safari och gå till:

http://localhost:3000

Du ser appen. Direkt på mobilen. Det är lite magi första gången.

Flera portar

Lägg till fler regler för andra portar du använder ofta. Jag har 3000, 3001, 5173 (Vite), och 8080 konfigurerade.

Mappstruktur och dagligt arbetsflöde

Jag håller det enkelt på servern:

~/projects/
├── maivor-main/
├── sideproject-x/
└── experiment-y/

Mitt dagliga flöde

  1. Öppna Termius och anslut till servern
  2. Återanslut till tmux: tmux attach -t claude (eller skapa ny session)
  3. Gå till projektet: cd ~/projects/mitt-projekt
  4. Starta Claude: claude
  5. Jobba!

När jag är klar trycker jag bara Ctrl+B, D för att koppla ifrån tmux. Sessionen lever vidare om jag vill fortsätta senare.

Snabbstarts-script

Jag skapade ett litet script för att komma igång snabbare:

nano ~/start-claude.sh
#!/bin/bash
cd ~/projects/$1
tmux new -s $1 -d
tmux send-keys -t $1 "claude" Enter
tmux attach -t $1
chmod +x ~/start-claude.sh

Användning:

~/start-claude.sh maivor-main

Det går till rätt mapp, skapar en tmux-session med samma namn, startar Claude, och ansluter dig.

Bonus: Whispr Flow för röstinput

Att skriva långa promptar på telefonens tangentbord är inte alltid kul. Här kommer Whispr Flow in.

Whispr Flow är en app som låter dig prata istället för att skriva. Den använder OpenAIs Whisper-modell för att transkribera det du säger, och sen klistrar den in texten var du än befinner dig.

Så istället för att peta på tangentbordet i Termius kan jag bara hålla inne en knapp, säga vad jag vill att Claude ska göra, och släppa. Texten dyker upp i terminalen.

Det funkar överraskande bra för kodrelaterade instruktioner. "Skapa en ny React-komponent som heter UserProfile med props för name och email" blir exakt det.

Bonus: Samma setup på Mac

En grej till: Termius synkar mellan enheter.

Det betyder att du kan:

  1. Installera Termius på din Mac (gratis)
  2. Logga in med samma konto
  3. Alla dina hosts, nycklar och inställningar finns där

Så du kan börja jobba på telefonen, fortsätta på datorn, och allt är samma server och samma tmux-sessioner.

Tips och fallgropar

Här är saker jag lärde mig den hårda vägen:

Kernel-uppgradering

Efter apt upgrade kan det komma en fråga om att starta om. Gör det. Kör reboot och vänta en halv minut innan du ansluter igen.

Tmux scroll på mobil

Använd Ctrl+B, [ för att gå in i scroll-läge. Svepa eller använd piltangenterna. Q för att gå ur.

Hooks-format i Claude Code

Kommandot ska vara en sträng, inte en array:

// Rätt
"command": "/root/notify.sh 'meddelande'"
 
// Fel
"command": ["/root/notify.sh", "meddelande"]

Bind address i port forwarding

Du kan lämna "Remote Host" tomt i Termius. Det defaultar till localhost.

Sessionsnamn i notiser

Vill du veta vilken session som behöver dig? Ändra notify-kommandot:

/root/notify.sh "[$TMUX_PANE] Claude behöver input!"

Vad det kostar (sammanfattning)

| Post | Kostnad | |------|---------| | Server (CX32) | €8.50/mån | | IPv4-adress | €0.60/mån | | Totalt | ~€9.10/mån (~90 kr) |

Termius grundversion är gratis. ntfy är gratis.

Om du vill spara pengar när du inte använder servern kan du ta en snapshot och ta bort servern. Sen återskapa den från snapshot när du behöver den igen. Men för 90 kr/månad brukar jag bara låta den rulla.

Några sista ord

Det tog mig en eftermiddag att sätta upp allt detta. Och det var inklusive alla misstag, felsökning, och "varför funkar inte det här?!"-stunder.

Nu har jag Claude Code i fickan. Bokstavligt talat.

Är det samma sak som att sitta vid datorn med en stor skärm och riktigt tangentbord? Nej. Men för snabba ändringar, kodgranskning, eller att starta något som kan köra i bakgrunden? Det är perfekt.

Och känslan av att sitta i soffan och deploya en feature till produktion... det är riktigt mäktigt.


Har du frågor om setupen eller fastnade någonstans? Hör av dig så hjälper jag dig.

Claude CodeHetznerTermiusmobil utvecklingtmuxSSH

Gillade du artikeln?

Dela den med ditt nätverk

Relaterade artiklar

Behöver du hjälp med AI?

Vi hjälper företag implementera AI-lösningar som faktiskt fungerar. Boka ett kostnadsfritt samtal.

Boka konsultation