Fra erfaring til bloggpost – automatisk, med Spiral og Ghost

Del
Fra erfaring til bloggpost – automatisk, med Spiral og Ghost

Det skjer noe rart når man setter opp systemer for andre: erfaringene forsvinner inn i terminalen. Kommandoer som tok tre forsøk å få riktige, feilmeldinger som til slutt ga mening, veivalg som ikke sto i noen dokumentasjon. Gull for en blogg. Men ingen skriver det ned mens fingrene er kalde.

Jeg ville tette det gapet. Slik gikk det.


Problemet med "jeg skriver det siden"

Jeg bruker Ghost som bloggplattform og Spiral som AI-skriveverktøy. Spiral er uvanlig bra på én ting: det lærer seg stemmen din og skriver i den. Ikke generisk AI-prosa. Faktisk litt som du ville skrevet det selv, bare raskere.

Men flyten var manuell. Ferdig utkast i Spiral, kopier, lim inn i Ghost-editoren, husk å sette kategori, husk bilder, publiser. Og for å komme dit: noter fra oppsettsesjoner som aldri ble til bloggposter fordi de bare levde i terminalvinduer og Claude-samtaler.

To problemer:

  • Gode utkast satt fast i Spiral uten å nå bloggen.
  • Gode erfaringer satt fast i terminalen uten å nå Spiral.

Spiral CLI – at det fantes, visste jeg ikke

Det viser seg at Spiral har et CLI-verktøy: @every-env/spiral-cli. Ikke særlig profilert, men det gjør jobben. Med en pairing-kode fra "Agent & API Keys"-siden i Spiral-appen koblet jeg det opp på under ett minutt:

npx @every-env/spiral-cli@latest setup --pairing-code <kode>

Deretter kan du liste sesjoner og hente utkast som JSON. Det åpnet alt.


Retning 1: Spiral-utkast → Ghost som kladd

Jeg (AI,en min) skrev et Python-skript som:

  1. Henter alle Spiral-sesjoner med utkast
  2. Viser en interaktiv meny
  3. Sender valgt utkast til Ghost Admin API som en kladd
  4. Gir deg en direktelenke til editoren i Ghost

Skriptet leser Admin API-nøkkelen fra en .env-fil og trenger ingenting annet. Du velger sesjon, velger utkast, og om fem sekunder sitter det i Ghost – klart til gjennomlesing og publisering.

Første test: utkastet "KIT-gubber #1: Plattformen er valgt – og planen er lagt" dukket opp i Ghost-editoren mens jeg fortsatt satt i terminalen. Det funket.


Retning 2: Erfaringer → Spiral → bloggpost

Den andre retningen er den jeg egentlig ville ha. Oppsettnotater, installasjonslogger, Claude-samtaler – alt det som aldri blir blogg fordi det tar for lang tid å skrive om.

Spiral CLI støtter --file med markdown. Så jeg lagde et bash-skript som tar hvilken som helst fil og sender den til Spiral med en prompt:

./til-spiral.sh ghost-installasjon.md "Skriv bloggpost for norske utviklere, personlig tone"

Spiral leser filen, henter frem stemmen min fra profildata, og skriver et utkast. Jeg tester med installasjonsnotatene fra Ghost-oppsettet på Hetzner. Utkastet kom tilbake med tittelen: "Ghost selvhostet på Hetzner – det de ikke forteller deg i dokumentasjonen".

Bedre tittel enn det jeg hadde skrevet selv.


Den komplette flyten

Erfaringer / installasjonsnotater / Claude-sesjoner
            ↓  til-spiral.sh
    Spiral-utkast (i min stemme og stil)
            ↓  spiral-to-ghost.py
       Ghost-kladd (klar til gjennomlesing)

Selve bloggposten du leser nå kom gjennom den samme flyten. Sesjonsloggen fra oppsettet gikk inn, Spiral skrev et utkast, skriptet sendte det til Ghost. Jeg leser stykket for første gang i Ghost.


Hva som faktisk tok tid

Ikke selve skriptingen. Det tekniske var rett frem (For en AI hjelper) når API-nøklene var på plass.

Det som tok tid var å innse at flyten måtte gå begge veier. Det holder ikke å ha en fin vei fra Spiral til Ghost hvis erfaringene aldri når Spiral. Og det holder ikke å sende notater til Spiral hvis utkastene sitter fast der.

Begge skriptene er nå i ~/spiral-to-ghost/. Neste sesjon med oppsett eller feilsøking går rett inn i flyten – og ender som bloggpost.


Spiral: [writewithspiral.com](https://app.writewithspiral.com) – Ghost: [ghost.org](https://ghost.org)