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.
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.
Modul 01
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:
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
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:
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.
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.
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
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:
Det fragmenterade flödet
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
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
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.
Du sitter vid skrivbordet, sätter igång en längre tråd, går igenom första iterationen.
Du lämnar maskinen påslagen. Sessionen lever vidare. Du tar med dig telefonen.
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
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:
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.
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.
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.
~/code som klonar repon i sig. Lätt att backupa, lätt att tänka kring.
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.
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
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.
Mobilen, laptopen och din alltid-på-maskin ska vara inloggade mot samma Codex-konto. Det är så de upptäcker varandra.
Den ligger i Codex-inställningarna under enheter. När den är på syns dina andra maskiner som möjliga mål.
När du startar en session från telefonen ska den landa hemma, inte i molnet. Det är poängen.
git pull. Det är där sanningen bor.
| Behov | Lös via | Inte via |
|---|---|---|
| Synka kod mellan maskiner | Git push och pull | iCloud-mapp eller Dropbox |
| Granska ändring snabbt på mobilen | Draft PR på GitHub | Skärmdump av terminalen |
| Bevara aktiv tråd över enheter | Samma Codex-konto + Control Another Device | Kopiera-klistra prompts |
| Skydda hemma-maskinen utåt | Tailscale eller motsvarande | Öppna SSH-port mot 0.0.0.0 |
| Förhindra "var var jag?" | Pusha WIP innan du går | Lita 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
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.
Du startar dagen vid din riktiga maskin. En timme djupt arbete: planering, refaktorer, det som kräver att du tänker brett.
Du tar laptopen. Pullar branchen. Fortsätter på ett mindre tydligt avgränsat spår. Pushar igen innan kaffet är slut.
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.
Du sätter dig en kort stund vid skrivbordet, ser vad som hänt under dagen, gör en pull, granskar och mergar.
Bra på
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å
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
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.
| Dimension | Vad du ska titta på |
|---|---|
| Modellkvalitet | Hur 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ägbarhet | Hur 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. |
| Integration | Hur väl det jacka in i ditt befintliga flöde. Mobil-app, IDE, terminal, allt det här. |
| Tonalitet | Hur det skriver kod och kommentarer matchar din egen smak. Det är en undervärderad dimension. |
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
Tre frågor. Inget poäng som spelar någon roll. Bara en chans att se om de centrala bitarna sitter.
Telefonen är fjärrkontrollen. En kompetentare maskin gör jobbet, du styr den från fickan.
Den maskin du bär ska inte vara samma som den maskin som jobbar. När det är samma, ramlar hela kortleken.
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.
Klar
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.