Birgir Birgisson
Mini-kurs på svenska

En alltid-på Codex-setup, från soffan till poolen.

Codex flyttade in i fickan. Det betyder att en utvecklingssession kan följa dig från skrivbordet ut till caféet, och vidare till en solstol, utan att du tappar en enda tråd kontext. Den här kursen visar exakt hur du bygger det flödet.

8 moduler · ~30 min · FRI

Modul 01

Codex flyttade in i fickan.

Det viktiga är inte att Codex finns på telefonen. Det viktiga är vad det öppnar upp.

Fram tills nu har vibe coding krävt att du satt vid en maskin. Du öppnade en terminal, du ritade upp en plan, du körde modellen och du tittade på vad som hände. När du gick ifrån skrivbordet pausade flödet. Sessionen levde i en terminal som du själv hade öppnat, och den dog när du stängde locket.

När Codex flyttade in i en mobil-app blev tre saker möjliga samtidigt:

  • Du kan initiera en körning utan att vara framför en dator. En kort prompt från ett kötillstånd, och något kompetent börjar jobba för dig.
  • Du kan styra en kraftigare maskin från fickan. Telefonen behöver inte vara där allting händer. Den är fjärrkontrollen, inte motorn.
  • Du kan plocka upp en pågående tråd. Det du startade vid skrivbordet är fortfarande där när du är ute. Inga kopierade promptar, ingen omstart, ingen "var var jag?".

Princip

När verktyget följer dig in i fickan slutar arbetsdagen vara bunden till en stol. Den blir bunden till hur du tänker.

Det här är poängen med kursen. Att du går från en setup där varje maskin är sin egen ö, till ett flöde där all kontext är delad. Du läser, godkänner och styr från den enhet som råkar vara närmast. Den enhet som råkar göra det tunga jobbet är alltid samma. Och du tappar aldrig tråden.

Modul 02

Tre lägen, en sömlös upplevelse.

Du behöver förstå att Codex kan köras på tre helt olika sätt. Det är samma märke, men olika kroppar.

Innan du sätter igång med setupet är det värt en minut på att zooma ut. Det här är de tre lägena:

01

Lokal CLI

Codex som en kommandoradsapp på din egen maskin. Snabbt, ärligt, har full tillgång till disk och processer. Det här är där det riktigt tunga jobbet sker.

02

Cloud sandbox

Codex kör i ett isolerat moln, klonar ditt GitHub-repo, kör jobbet, öppnar en PR. Bra för långkörningar du inte vill ha på din egen burk.

03

Mobil-app

Codex inbäddad i ChatGPT-appen på telefonen. Främst initiera, läsa diff, godkänna. Inte tänkt för att skriva en stor refaktor på en pendel.

De pratar med varandra via två saker: ditt konto och ett delat repo. Kontot binder sessionerna. Repot är där koden lever. Allt annat i kursen är variationer på den här bilden.

Tumregel

Mobilen är förarsitsen, inte motorrummet. Du ska kunna säga "ja", "nej" och en kort instruktion därifrån. Det tunga får andra maskiner göra.

När du har bilden i huvudet känns valet ingenting konstigt. Skrivbordet för djup, molnet för långa jobb, telefonen för att vara närvarande utan att vara avbruten.

Modul 03

Varför en session per enhet dödar ditt flöde.

Multi-enhets-problemet är inte ett bekvämlighetsproblem. Det är ett friktionsproblem som gör att du till slut slutar lyfta laptopen.

Sättet de flesta använder en kodassistent på i början är samma sätt som de använde sin editor på i tio år. En session per maskin. Stationären hemma har sin terminal, laptopen i ryggsäcken har sin egen, och om du skulle drömma om att jobba från mobilen så har telefonen ingen alls.

Det funkar tills du försöker växla. Då dyker symptomen upp:

  • Du commitar på fel maskin. Branch ligger lokalt på stationären, du behöver den på laptopen, du börjar mejla zip-filer till dig själv.
  • Du tappar promptkedjan. Du vet vad du sa till modellen, men du minns inte exakt hur den svarade. Eller tvärtom.
  • Du börjar undvika att flytta dig. Eftersom kostnaden för att byta enhet är hög, sätter du dig hellre vid skrivbordet i fyra timmar i sträck. Och då har hela poängen med portabilitet försvunnit.

Det fragmenterade flödet

Tre öar, ingen bro

Stationären har en pågående branch. Laptopen har en annan. Telefonen har bara ditt Instagram. Att gå från soffan ut till caféet är samma sak som att börja om.

Det alltid-på flödet

En sanning, tre fönster

Stationären kör. Laptopen och telefonen är fönster in i samma sanning. Du flyttar inte arbetet. Du byter bara fönster.

Rotorsaken är att tillstånd lever i lokala terminaler. Lösningen är att flytta tillståndet, både kodens och samtalets, till en plats alla enheter pratar emot.

Nyckelinsikt

Friktionen är aldrig hårdvaran. Friktionen är att tillståndet bor på fel ställe. Flytta tillståndet, så löser sig växlingen av sig själv.

Modul 04

Mobilen styr datorn, så släpper den dig.

Det finns två sätt att tänka kring Codex på mobilen. Det första är ointressant. Det andra är hela poängen.

Det första sättet är att tänka att telefonen ska göra jobbet. Att den ska skriva koden, köra testerna och pusha. Det går, men det är inte särskilt nyttigt. Telefonen är inte rätt verktyg för det.

Det andra sättet är att tänka att telefonen ska styra jobbet. Att den ska säga "starta det här", "godkänn det där", "kör om". Då är telefonen perfekt, för det är precis vad du gör mest av dagarna ändå.

Den här skillnaden är allt. Funktionen heter "Control Another Device", och den gör att en session på telefonen kan dirigera en körning på en annan maskin du äger. Sessionen plockas alltså inte upp på den lilla skärmen. Den plockas upp där den startade, men du behöver inte sitta där.

01

Starta hemma

Du sitter vid skrivbordet, sätter igång en längre tråd, går igenom första iterationen.

02

Gå ut

Du lämnar maskinen påslagen. Sessionen lever vidare. Du tar med dig telefonen.

03

Plocka upp

Från caféet öppnar du Codex på telefonen. Du ser tråden. Du skriver en mening till. Hemma-maskinen jobbar vidare.

Princip

Telefonen är en fjärrkontroll till en kompetent maskin, inte en kompetent maskin i sig. Behandla den så, så blir den värdefull. Behandla den tvärtom, så blir den frustrerande.

Det är därför funktionen kallas "kontrollera en annan enhet" och inte "kör Codex på telefonen". Namnet säger vad det är: en bro mellan något portabelt och något kraftigt.

Modul 05

Mac mini som din alltid-på-maskin.

Hjärnan i flödet är inte en laptop. Det är en liten, tyst, alltid påslagen maskin som väntar på att få jobba.

Du behöver en bas. En enhet som inte stängs av när du går ut, som inte slutar prata internet när locket går igen, som inte tappar SSH-sessionen när skärmsläckaren startar. Den enheten är inte din laptop. Laptopen är en klient i den här arkitekturen, inte servern.

En modern Mac mini är default-valet av tre skäl:

  1. 01

    Den är tyst

    Du kan ha den stående i samma rum som du sover utan att höra den. Det är en av de saker som faktiskt avgör om den blir påslagen 24/7.

  2. 02

    Den är energisnål

    En M-serie Mac mini drar lite ström även under last. Du kan låta den jobba över natten utan att vakna med dåligt klimatsamvete.

  3. 03

    Den är fullvuxen Unix

    Det är samma OS du redan utvecklar på. Du slipper hela "annan miljö, annan bash, annat git" som du får med en Pi eller en NAS.

Setup-checklista

  • Stäng av automatisk vila. Energisparpanelen, "förhindra automatisk vila när skärmen är avstängd". Annars somnar maskinen mitt i en körning.
  • Slå på "starta om automatiskt efter strömavbrott". Om strömmen blinkar vill du att maskinen kommer tillbaka utan att du behöver vara där.
  • SSH på. Delning, fjärrinloggning, bara din användare. Du vill kunna nå maskinen från laptopen i samma nätverk, eller via Tailscale utanför.
  • GitHub-credentials på plats. SSH-nyckel inlagd, git ssh-tested, gh CLI inloggad. Det är det här som låter alla enheter pusha mot samma centrala punkt.
  • En projektmapp att alltid jobba i. Inte en högen filer på skrivbordet. Ett dedikerat ~/code som klonar repon i sig. Lätt att backupa, lätt att tänka kring.
Har jag verkligen råd med en Mac mini bara för det här?

Du behöver inte köpa nytt. En äldre Mac mini, en gammal MacBook med locket öppet i ett hörn, eller en liten Linux-burk fungerar lika bra. Det viktiga är inte modellnamnet. Det viktiga är att maskinen alltid är på, alltid nåbar och inte är samma maskin du tar med dig.

Det är när "maskinen som jobbar" är samma som "maskinen jag bär" som hela kortleken ramlar.

Och om jag inte vill öppna ut maskinen mot internet?

Du behöver inte. Tailscale eller motsvarande mesh-VPN ger dig en privat adress till maskinen som bara dina egna enheter ser. Du slipper både portforwarding och dynamic DNS, och du slipper att exponera SSH mot öppna internet.

Modul 06

Ett repo som enda sanning.

Det är inte din terminal som binder samman setupet. Det är ditt repo. När alla enheter pratar emot samma GitHub-repo, försvinner växlingsfriktionen.

Den första instinkten är att synka filer. Dropbox, iCloud, någon mapp som speglas mellan maskinerna. Det funkar i några timmar, sedan kraschar det. Versionshanteringen är inte en filsynk, den är ett samtal mellan ändringar.

Den rätta modellen är enkel: GitHub är sanningen, varje enhet är en klient. Det är där state lever, det är dit allt skickas, det är därifrån allt hämtas. Codex hjälper dig att hålla rytmen.

Aktivera "Control Another Device"

  1. 01

    Logga in med samma konto överallt

    Mobilen, laptopen och din alltid-på-maskin ska vara inloggade mot samma Codex-konto. Det är så de upptäcker varandra.

  2. 02

    Slå på "Control Another Device" i inställningar

    Den ligger i Codex-inställningarna under enheter. När den är på syns dina andra maskiner som möjliga mål.

  3. 03

    Välj din alltid-på-maskin som default-mål

    När du startar en session från telefonen ska den landa hemma, inte i molnet. Det är poängen.

GitHub-rytmen som låter dig växla enheter

  • En branch per uppgift, alltid pushed. Du jobbar aldrig på main, du jobbar aldrig länge på en lokal branch utan att pusha. Pusha innan du går.
  • WIP-commits är okej. Du städar i squash sen. Bättre en ärlig "wip: halvvägs i refactor" pushad än en perfekt commit som ligger lokalt.
  • Pull innan du börjar. Första kommandot på den nya enheten är alltid git pull. Det är där sanningen bor.
  • En PR per spår. När branchen är pushad lever det som en draft PR. Det gör att telefonen kan läsa diffen i GitHub-appen om du vill granska där.
BehovLös viaInte via
Synka kod mellan maskinerGit push och pulliCloud-mapp eller Dropbox
Granska ändring snabbt på mobilenDraft PR på GitHubSkärmdump av terminalen
Bevara aktiv tråd över enheterSamma Codex-konto + Control Another DeviceKopiera-klistra prompts
Skydda hemma-maskinen utåtTailscale eller motsvarandeÖppna SSH-port mot 0.0.0.0
Förhindra "var var jag?"Pusha WIP innan du gårLita på minnet en timme senare

Tumregel

Om det inte finns på GitHub finns det inte. Det är hård regel, inte ett ideal. Skulle din alltid-på-maskin gå sönder ikväll ska du kunna fortsätta imorgon från laptopen med ett pull.

Modul 07

Studio till pool, det riktiga flödet.

Nu zoomar vi in på vad du faktiskt gör en vanlig dag. Inte teorin, utan rörelsemönstren.

Det är lätt att läsa en setup-guide och tänka "okej, men ska jag verkligen jobba från en solstol?". Det korta svaret är att du nästan aldrig kommer att jobba från solstolen. Du kommer att flytta arbete dit. Det är en viktig skillnad.

En dag i flödet

  1. 07:30

    Skrivbordet hemma

    Du startar dagen vid din riktiga maskin. En timme djupt arbete: planering, refaktorer, det som kräver att du tänker brett.

  2. 10:00

    Ut till caféet

    Du tar laptopen. Pullar branchen. Fortsätter på ett mindre tydligt avgränsat spår. Pushar igen innan kaffet är slut.

  3. 14:00

    Promenad eller pool

    Du har laptopen kvar i ryggsäcken. Du tar fram telefonen, kollar att den senaste körningen gick igenom, godkänner en diff, säger till modellen att fortsätta med nästa steg på hemma-maskinen.

  4. 18:00

    Tillbaka hemma

    Du sätter dig en kort stund vid skrivbordet, ser vad som hänt under dagen, gör en pull, granskar och mergar.

Vad mobilen är bra på, vad den är dålig på

Bra på

Korta beslut

Godkänna en diff, säga "kör vidare", "stoppa", "kör om utan den där filen", "öppna en PR med det här som titel". Snabb läsning, snabb instruktion.

Dålig på

Lång djup tankearbete

En stor refactor över fem filer, en arkitekturskiss, debug av något subtilt. Vänta tills du sitter vid en skärm med plats för dina ögon att flyta över saker.

Förbered för mobil-uppföljning

Innan du lämnar skrivbordet, gör en kort sammanfattning till modellen: "Här är vad jag har gjort, här är vad jag vill att du fortsätter med, kör inte X." Då blir mobilen ett "ja/nej" istället för ett "vänta, var var vi?".

Det här är hela poängen. Det är inte att du ska kunna utveckla en helt ny app på telefonen. Det är att du ska kunna behålla framdriften i din kod under timmar du tidigare hade förlorat helt.

Modul 08

När verktyget byts.

Det finns inget moraliskt val mellan kodassistenter. Det finns ett praktiskt val, och det förändras med jämna mellanrum.

Du behöver inte byta verktyg för att den här kursen ska fungera. Setupet, med en alltid-på-maskin, GitHub som hub och en mobil som styr, gäller oavsett vilken assistent du föredrar. Men det är värt att vara ärlig om varför verktygsbyten händer.

Vad du faktiskt jämför

DimensionVad du ska titta på
ModellkvalitetHur det löser dina riktiga uppgifter, inte benchmarks. Sätt två assistenter på samma riktiga ticket och se vilken som tar dig längst.
FörutsägbarhetHur ofta du tappar tråden mitt i ett spår på grund av en gräns. Det är friktionen, inte priset, som gör ont.
IntegrationHur väl det jacka in i ditt befintliga flöde. Mobil-app, IDE, terminal, allt det här.
TonalitetHur det skriver kod och kommentarer matchar din egen smak. Det är en undervärderad dimension.

När bytet är rätt

  • Modellgapet har stängts. När två verktyg löser samma uppgifter ungefär lika bra blir andra faktorer avgörande. Då är det rationellt att titta på resten.
  • Du märker stress kring gränser. Om du börjar undvika att ställa en fråga för att du är rädd att slå i taket, så är taket fel. Verktyget ska få dig att tänka fritt, inte snålt.
  • Det nya verktyget öppnar ett rörelsemönster du saknade. Som att kunna styra från telefonen. När en funktion förändrar hur du rör dig i ditt arbete är det inte en småsak.

Nyckelinsikt

Välj det verktyg som låter dig glömma att det är ett verktyg. Det är när du slutar tänka på det som du börjar tänka väl med det.

Och om verktyget igen ändrar sig om sex månader, då byter du igen. Det är inget personligt. Det är hantverk.

Quiz

Snabb koll på det viktigaste.

Tre frågor. Inget poäng som spelar någon roll. Bara en chans att se om de centrala bitarna sitter.

Fråga 01

Vad är hela poängen med funktionen "Control Another Device" i Codex?

Telefonen är fjärrkontrollen. En kompetentare maskin gör jobbet, du styr den från fickan.

Fråga 02

Vad är hjärnan i en alltid-på vibe coding-setup?

Den maskin du bär ska inte vara samma som den maskin som jobbar. När det är samma, ramlar hela kortleken.

Fråga 03

Varför är GitHub kärnan i flödet, inte filsynk?

Versionshantering är ett samtal mellan ändringar, inte en kopia av en mapp. Det är därför filsynk alltid fallerar i det här flödet.

0 av 3 Du har svarat på frågorna. Bra jobbat. Skrolla vidare till sista sektionen.

Klar

Bra jobbat. Du tog dig igenom hela mini-kursen.

Nu har du en bild av flödet. Sätter du upp det en eftermiddag, så hänger det med dig i åratal. Det är värt en eftermiddag.