{"id":4934,"date":"2026-10-15T10:12:23","date_gmt":"2026-10-15T09:12:23","guid":{"rendered":"https:\/\/www.fullo.net\/blog\/?p=4934"},"modified":"2026-10-15T10:12:25","modified_gmt":"2026-10-15T09:12:25","slug":"la-newsletter-dal-terminale-substack-cli","status":"publish","type":"post","link":"https:\/\/www.fullo.net\/blog\/2026\/10\/15\/la-newsletter-dal-terminale-substack-cli\/","title":{"rendered":"La newsletter dal terminale: substack-cli"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Da qualche mese i numeri di <a href=\"https:\/\/sustainableitc.substack.com\">Sustainable ITC<\/a> arrivano su Substack in modo diverso, e il motivo \u00e8 meno nobile di quanto vorrei: mi ero stufato di fare avanti e indietro tra Claude e l&#8217;editor di Substack. Ma per capire dove sta il problema, conviene raccontare come nasce un numero.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">Si comincia sempre leggendo: articoli, paper, report, tutto quello che, nel corso della settimana, mi ha fatto alzare un sopracciglio. Poi chiedo a un LLM (<em>Claudio<\/em> o <em>Perplesso<\/em>) di cercare altre fonti sullo stesso tema, le leggo, tengo quelle che reggono e scarto le altre. A quel punto il modello intreccia il materiale in uno scheletro di numeri, con una skill di <a href=\"https:\/\/fullo.github.io\/claude-adversarial-thinking\/\">logica avversariale<\/a> che mette alla prova numeri e concetti prima che finiscano nel testo, perch\u00e9 una newsletter sulla sostenibilit\u00e0 che cita dati sbagliati perde in fretta la fiducia di chi la legge.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/10\/image.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"580\" height=\"324\" src=\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/10\/image.png?resize=580%2C324&#038;ssl=1\" alt=\"\" class=\"wp-image-4935\" srcset=\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/10\/image.png?resize=700%2C391&amp;ssl=1 700w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/10\/image.png?resize=300%2C168&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/10\/image.png?resize=768%2C429&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/10\/image.png?w=1024&amp;ssl=1 1024w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Chi segue questo blog potrebbe obiettare: \u00abE la Fase 0? Qui lo scheletro argomentativo lo scrivo io, e Claude non procede finch\u00e9 non c&#8217;\u00e8 (ne ho parlato nel <a href=\"https:\/\/www.fullo.net\/blog\/2026\/03\/18\/il-paradosso-del-cervello-aumentato\/\">paradosso del cervello aumentato<\/a>). Sulla newsletter il lavoro \u00e8 di un altro tipo. Le fonti le scelgo io, sia quelle che porto sia quelle proposte dal modello, che entrano solo dopo che le ho lette e approvate; al modello delego l&#8217;intreccio di un materiale gi\u00e0 selezionato e verificato, e lo scheletro che ne esce lo compilo io, che \u00e8 il momento in cui il numero prende la mia voce.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il problema arrivava dopo, perch\u00e9 lo scheletro viveva in una conversazione con Claude mentre il numero doveva finire nell&#8217;editor di Substack. In mezzo c&#8217;era un corridoio di copia e incolla: copiavo, incollavo, mi accorgevo che un paragrafo andava riscritto, tornavo nella chat, lo riscrivevo e ricominciavo il giro, e alla fine restava ancora la copertina da generare, scaricare e caricare a mano. Erano passaggi banali, che facevo con la testa gi\u00e0 al numero successivo, ed era proprio l\u00ec che si annidavano gli errori.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Come funziona adesso<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Oggi lo scheletro arriva come file Markdown e diventa una bozza su Substack con un solo comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>substack article draft numero.md --cover copertina.png<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Quando apro Substack trovo la bozza con titolo, sottotitolo e copertina, e da quel momento lavoro direttamente nell&#8217;editor web, senza pi\u00f9 riportare il testo nella chat. Sul singolo numero il risparmio \u00e8 contenuto, nell&#8217;ordine dei minuti. Quello che \u00e8 cambiato davvero \u00e8 che posso tenere pi\u00f9 numeri in lavorazione contemporaneamente, ognuno gi\u00e0 al suo posto su Substack, e sbaglio meno nelle fasi di pubblicazione. C&#8217;\u00e8 un&#8217;eccezione: alcuni numeri sono traduzioni di articoli tecnici della Green Software Foundation (GSF) senza un mio commento, e per quelli il tempo si \u00e8 ridotto di diversi ordini di grandezza.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quando il numero \u00e8 uscito, faccio il percorso inverso:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>substack article export 123456789 --out numeri\/123.md\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;articolo torna in Markdown e finisce in un repository locale che uso come fonte di verit\u00e0 e come memoria della newsletter. Quando preparo un numero nuovo, il modello pu\u00f2 vedere cosa ho gi\u00e0 scritto e proporre collegamenti con i numeri precedenti; quali tenere lo decido io, con una regola precisa: un numero vecchio si cita per rafforzare le fonti originali, mai per sostituirle. \u00c8 il mio piccolo &#8220;<em>te l&#8217;avevo (gi\u00e0) detto<\/em>&#8221; alla Puffo Quattrocchi, che per\u00f2 arriva sempre accompagnato dalla fonte da cui \u00e8 nato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C&#8217;\u00e8 poi la coda delle note, i messaggi brevi di Substack. Confesso che finora non le avevo mai gestite, un po&#8217; per pigrizia e un po&#8217; perch\u00e9 le consideravo un&#8217;attivit\u00e0 a basso valore aggiunto che mangia tempo, cio\u00e8 proprio il tipo di lavoro che ha senso delegare a un LLM. Adesso le faccio ricavare direttamente dagli articoli, le metto in coda e le pubblico dal CLI, a mano oppure a orario: in quel caso basta un comando lanciato ogni minuto da cron, da un timer systemd o da un CronJob su k3s (una distribuzione leggera di Kubernetes), che le pubblica all&#8217;orario previsto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le note sono anche il motivo principale per cui il CLI ha un comando <code>generate<\/code>, che chiede a un modello di scrivere un testo a partire da un tema (o da un post appena scritto), passando dall&#8217;API di Anthropic (application programming interface, l&#8217;interfaccia con cui un programma dialoga con un servizio) oppure dal mio server locale come <code>llama.cpp<\/code> (o <code>Ollama<\/code>). Per ora nel mio processo non ha ancora un ruolo stabile, e mi \u00e8 capitato di usarlo anche per riassumere i concetti principali di documenti molto lunghi. In ogni caso, produce solo bozze e note in coda: niente di ci\u00f2 che genera va online da solo e senza il mio esplicito consenso.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Perch\u00e9 tanta cautela<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Substack non offre API pubbliche, quindi substack-cli usa quelle interne del sito e si autentica con il cookie di sessione del vostro account, il che significa che ogni comando lanciato dal programma, per Substack, arriva da voi. Lo stesso programma che crea una bozza potrebbe pubblicare un articolo a met\u00e0 o inviare un&#8217;email a tutti gli iscritti alle tre di notte, solo perch\u00e9 uno script \u00e8 partito all&#8217;ora sbagliata.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per questo, se si prova a pubblicare da uno script senza una conferma esplicita, il programma si ferma prima di fare qualsiasi richiesta di rete:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ substack article publish 123456789\nErrore: Pubblicazione non interattiva: aggiungi\n--yes per confermare esplicitamente\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Da terminale la conferma \u00e8 una parola digitata a mano, da uno script serve il flag <code>--yes<\/code>. Con <code>article publish<\/code> l&#8217;email agli iscritti parte solo se aggiungete <code>--send-email<\/code>. Il cookie non compare mai in output, log o messaggi d&#8217;errore, e viene inviato soltanto a substack.com. La coda delle note \u00e8 protetta da un lock, e una nota di cui non si sa se sia uscita resta ferma finch\u00e9 non decidete voi, cos\u00ec non rischiate di pubblicarla due volte.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Qualcuno potrebbe pensare che, per uno strumento nato per l&#8217;uso personale, sia troppo. Penso che la sicurezza serva anche quando l&#8217;unica persona che puoi danneggiare sei tu, perch\u00e9 la mia lista di iscritti merita la stessa cura di quella di chiunque altro; il fatto che il progetto sia open source, e quindi possa finire sulle newsletter di persone che non conosco, alza soltanto l&#8217;asticella.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La cura si vede anche nei numeri del progetto. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ci sono, ad oggi, 379 test, tra unitari, funzionali e di sicurezza, e un mutation score del 96% su 1.523 mutanti (<em>il mutation testing introduce piccoli errori nel codice e verifica che i test se ne accorgano<\/em>). C&#8217;\u00e8 un report di red team pubblico, cio\u00e8 un resoconto dei tentativi di attaccare il programma come farebbe un avversario. E le dipendenze di runtime sono tre: <code>marked<\/code>, <code>yaml<\/code>, <code>zod<\/code>. Chi ha letto <a href=\"https:\/\/www.fullo.net\/blog\/2026\/08\/29\/espandi-poi-pota-il-poc-usa-e-getta-come-strumento-di-scoperta\/\">Espandi, poi pota<\/a> riconoscere il metodo, e chi ha letto <a href=\"https:\/\/www.fullo.net\/blog\/2026\/04\/07\/adversarial-verification-claude-skill\/\">Adversarial verification come metodo<\/a> riconoscer\u00e0 il red team.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">I limiti, detti chiaramente<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>substack-cli<\/code> \u00e8 uno strumento non ufficiale e in beta.<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le API che usa non sono documentate e possono cambiare domani mattina; quando succede, il programma esce con un codice d&#8217;errore dedicato invece di fare danni in silenzio, ma smette comunque di funzionare finch\u00e9 qualcuno non lo aggiorna. Gli endpoint per il caricamento di immagini e copertine sono ancora contrassegnati come non confermati nella documentazione. Il Markdown supportato copre quanto serve per un articolo (titoli, enfasi, liste, citazioni, codice, link) e rifiuta con un errore esplicito ci\u00f2 che non sa gestire, come le tabelle e l&#8217;HTML grezzo. Prima di usarlo conviene dare un&#8217;occhiata alle condizioni d&#8217;uso di Substack, perch\u00e9 l&#8217;uso \u00e8 a vostro rischio.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">La morale<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Il codice si scrive perch\u00e9 c&#8217;\u00e8 un obiettivo, e il mio era togliermi di mano i passaggi meccanici, quelli in cui sbagliavo di pi\u00f9, per lasciare pi\u00f9 spazio alla lettura e alla scrittura. Le decisioni su cosa pubblicare, quando e con quali fonti restano mie; il CLI porta il testo dove serve, mette una sicura sui comandi che non si possono annullare e tiene in ordine un archivio che il modello pu\u00f2 consultare.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se scrivete una newsletter su Substack, provatelo: trovate tutto su <a href=\"https:\/\/fullo.github.io\/substack-cli\/\">fullo.github.io\/substack-cli<\/a> e il codice su <a href=\"https:\/\/github.com\/fullo\/substack-cli\">GitHub<\/a>. Poi ditemi come lo state usando, cosa vi manca e cosa si rompe. Le issue sono aperte, e mi interessa soprattutto il caso d&#8217;uso a cui non ho pensato.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>TL;DR: meno errori, pi\u00f9 numeri in lavorazione<\/p>\n<p>Ho scritto substack-cli, un programma a riga di comando (CLI, command line interface) che trasforma un file Markdown in una bozza su Substack, copertina compresa, e riporta indietro gli articoli pubblicati come Markdown. Mi serviva per togliere dal processo editoriale di Sustainable ITC l&#8217;avanti e indietro tra l&#8217;assistente AI e l&#8217;editor di Substack. Sul singolo numero risparmio poco, minuti pi\u00f9 che ore; il guadagno sta nel poter lavorare a pi\u00f9 numeri insieme, nello sbagliare meno quando pubblico e nell&#8217;aver finalmente cominciato a usare le note. Pubblicare resta sempre un mio s\u00ec esplicito, anche quando a lanciare i comandi \u00e8 uno script. \u00c8 open source, \u00e8 in beta, e mi interessa sapere come lo usereste voi.<\/p>\n","protected":false},"author":1,"featured_media":4935,"comment_status":"closed","ping_status":"open","sticky":false,"template":"templates\/template-cover.php","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[2461,16,13,5,12],"tags":[183,2476,2477,2475],"class_list":["post-4934","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-artificial-intelligence","category-lifehack","category-open-source","category-tecnologia","category-webdev","tag-cli","tag-mit","tag-newsletter","tag-substack"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>La newsletter dal terminale: substack-cli - Fullo<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.fullo.net\/blog\/2026\/10\/15\/la-newsletter-dal-terminale-substack-cli\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"La newsletter dal terminale: substack-cli - Fullo\" \/>\n<meta property=\"og:description\" content=\"TL;DR: meno errori, pi\u00f9 numeri in lavorazione Ho scritto substack-cli, un programma a riga di comando (CLI, command line interface) che trasforma un file Markdown in una bozza su Substack, copertina compresa, e riporta indietro gli articoli pubblicati come Markdown. Mi serviva per togliere dal processo editoriale di Sustainable ITC l&#039;avanti e indietro tra l&#039;assistente AI e l&#039;editor di Substack. Sul singolo numero risparmio poco, minuti pi\u00f9 che ore; il guadagno sta nel poter lavorare a pi\u00f9 numeri insieme, nello sbagliare meno quando pubblico e nell&#039;aver finalmente cominciato a usare le note. Pubblicare resta sempre un mio s\u00ec esplicito, anche quando a lanciare i comandi \u00e8 uno script. \u00c8 open source, \u00e8 in beta, e mi interessa sapere come lo usereste voi.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.fullo.net\/blog\/2026\/10\/15\/la-newsletter-dal-terminale-substack-cli\/\" \/>\n<meta property=\"og:site_name\" content=\"Fullo\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-15T09:12:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-15T09:12:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/10\/image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"572\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Francesco Fullone\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fullo\" \/>\n<meta name=\"twitter:site\" content=\"@fullo\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Francesco Fullone\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/10\\\/15\\\/la-newsletter-dal-terminale-substack-cli\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/10\\\/15\\\/la-newsletter-dal-terminale-substack-cli\\\/\"},\"author\":{\"name\":\"Francesco Fullone\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#\\\/schema\\\/person\\\/24e91bc6caea6c411a8668df5639428c\"},\"headline\":\"La newsletter dal terminale: substack-cli\",\"datePublished\":\"2026-10-15T09:12:23+00:00\",\"dateModified\":\"2026-10-15T09:12:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/10\\\/15\\\/la-newsletter-dal-terminale-substack-cli\\\/\"},\"wordCount\":1325,\"publisher\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#\\\/schema\\\/person\\\/24e91bc6caea6c411a8668df5639428c\"},\"image\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/10\\\/15\\\/la-newsletter-dal-terminale-substack-cli\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/image.png?fit=1024%2C572&ssl=1\",\"keywords\":[\"cli\",\"mit\",\"newsletter\",\"substack\"],\"articleSection\":[\"artificial intelligence\",\"lifehack\",\"open source\",\"tecnologia\",\"webdev\"],\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/10\\\/15\\\/la-newsletter-dal-terminale-substack-cli\\\/\",\"url\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/10\\\/15\\\/la-newsletter-dal-terminale-substack-cli\\\/\",\"name\":\"La newsletter dal terminale: substack-cli - Fullo\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/10\\\/15\\\/la-newsletter-dal-terminale-substack-cli\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/10\\\/15\\\/la-newsletter-dal-terminale-substack-cli\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/image.png?fit=1024%2C572&ssl=1\",\"datePublished\":\"2026-10-15T09:12:23+00:00\",\"dateModified\":\"2026-10-15T09:12:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/10\\\/15\\\/la-newsletter-dal-terminale-substack-cli\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/10\\\/15\\\/la-newsletter-dal-terminale-substack-cli\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/10\\\/15\\\/la-newsletter-dal-terminale-substack-cli\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/image.png?fit=1024%2C572&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/image.png?fit=1024%2C572&ssl=1\",\"width\":1024,\"height\":572},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/10\\\/15\\\/la-newsletter-dal-terminale-substack-cli\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"La newsletter dal terminale: substack-cli\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/\",\"name\":\"Fullo\",\"description\":\"nulla e&#039; impossibile per chi non lo deve fare!\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#\\\/schema\\\/person\\\/24e91bc6caea6c411a8668df5639428c\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#\\\/schema\\\/person\\\/24e91bc6caea6c411a8668df5639428c\",\"name\":\"Francesco Fullone\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1\",\"width\":622,\"height\":622,\"caption\":\"Francesco Fullone\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1\"},\"sameAs\":[\"http:\\\/\\\/www.fullo.net\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/fullo\",\"https:\\\/\\\/x.com\\\/fullo\"],\"url\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/author\\\/fullo\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"La newsletter dal terminale: substack-cli - Fullo","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.fullo.net\/blog\/2026\/10\/15\/la-newsletter-dal-terminale-substack-cli\/","og_locale":"it_IT","og_type":"article","og_title":"La newsletter dal terminale: substack-cli - Fullo","og_description":"TL;DR: meno errori, pi\u00f9 numeri in lavorazione Ho scritto substack-cli, un programma a riga di comando (CLI, command line interface) che trasforma un file Markdown in una bozza su Substack, copertina compresa, e riporta indietro gli articoli pubblicati come Markdown. Mi serviva per togliere dal processo editoriale di Sustainable ITC l'avanti e indietro tra l'assistente AI e l'editor di Substack. Sul singolo numero risparmio poco, minuti pi\u00f9 che ore; il guadagno sta nel poter lavorare a pi\u00f9 numeri insieme, nello sbagliare meno quando pubblico e nell'aver finalmente cominciato a usare le note. Pubblicare resta sempre un mio s\u00ec esplicito, anche quando a lanciare i comandi \u00e8 uno script. \u00c8 open source, \u00e8 in beta, e mi interessa sapere come lo usereste voi.","og_url":"https:\/\/www.fullo.net\/blog\/2026\/10\/15\/la-newsletter-dal-terminale-substack-cli\/","og_site_name":"Fullo","article_published_time":"2026-10-15T09:12:23+00:00","article_modified_time":"2026-10-15T09:12:25+00:00","og_image":[{"width":1024,"height":572,"url":"https:\/\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/10\/image.png","type":"image\/png"}],"author":"Francesco Fullone","twitter_card":"summary_large_image","twitter_creator":"@fullo","twitter_site":"@fullo","twitter_misc":{"Scritto da":"Francesco Fullone","Tempo di lettura stimato":"8 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.fullo.net\/blog\/2026\/10\/15\/la-newsletter-dal-terminale-substack-cli\/#article","isPartOf":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/10\/15\/la-newsletter-dal-terminale-substack-cli\/"},"author":{"name":"Francesco Fullone","@id":"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c"},"headline":"La newsletter dal terminale: substack-cli","datePublished":"2026-10-15T09:12:23+00:00","dateModified":"2026-10-15T09:12:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/10\/15\/la-newsletter-dal-terminale-substack-cli\/"},"wordCount":1325,"publisher":{"@id":"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c"},"image":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/10\/15\/la-newsletter-dal-terminale-substack-cli\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/10\/image.png?fit=1024%2C572&ssl=1","keywords":["cli","mit","newsletter","substack"],"articleSection":["artificial intelligence","lifehack","open source","tecnologia","webdev"],"inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/www.fullo.net\/blog\/2026\/10\/15\/la-newsletter-dal-terminale-substack-cli\/","url":"https:\/\/www.fullo.net\/blog\/2026\/10\/15\/la-newsletter-dal-terminale-substack-cli\/","name":"La newsletter dal terminale: substack-cli - Fullo","isPartOf":{"@id":"https:\/\/www.fullo.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/10\/15\/la-newsletter-dal-terminale-substack-cli\/#primaryimage"},"image":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/10\/15\/la-newsletter-dal-terminale-substack-cli\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/10\/image.png?fit=1024%2C572&ssl=1","datePublished":"2026-10-15T09:12:23+00:00","dateModified":"2026-10-15T09:12:25+00:00","breadcrumb":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/10\/15\/la-newsletter-dal-terminale-substack-cli\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.fullo.net\/blog\/2026\/10\/15\/la-newsletter-dal-terminale-substack-cli\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.fullo.net\/blog\/2026\/10\/15\/la-newsletter-dal-terminale-substack-cli\/#primaryimage","url":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/10\/image.png?fit=1024%2C572&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/10\/image.png?fit=1024%2C572&ssl=1","width":1024,"height":572},{"@type":"BreadcrumbList","@id":"https:\/\/www.fullo.net\/blog\/2026\/10\/15\/la-newsletter-dal-terminale-substack-cli\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.fullo.net\/blog\/"},{"@type":"ListItem","position":2,"name":"La newsletter dal terminale: substack-cli"}]},{"@type":"WebSite","@id":"https:\/\/www.fullo.net\/blog\/#website","url":"https:\/\/www.fullo.net\/blog\/","name":"Fullo","description":"nulla e&#039; impossibile per chi non lo deve fare!","publisher":{"@id":"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.fullo.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":["Person","Organization"],"@id":"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c","name":"Francesco Fullone","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/10\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1","url":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/10\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/10\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1","width":622,"height":622,"caption":"Francesco Fullone"},"logo":{"@id":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/10\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1"},"sameAs":["http:\/\/www.fullo.net","https:\/\/www.linkedin.com\/in\/fullo","https:\/\/x.com\/fullo"],"url":"https:\/\/www.fullo.net\/blog\/author\/fullo\/"}]}},"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3OSc1-1hA","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":303,"url":"https:\/\/www.fullo.net\/blog\/2003\/06\/25\/crypto-gram\/","url_meta":{"origin":4934,"position":0},"title":"Crypto-Gram","author":"Francesco Fullone","date":"25\/06\/2003","format":false,"excerpt":"\u00e8 uscito il numero di giugno di Crypto-Gram, la nota newsletter di Bruce Schneier sulla sicurezza informatica e la criptografia, si parla di: * I rischi del cyber-terrorismo * DVD che si autodistruggono * Il Canile: BSB Utilities * Attaccare macchine virtuali tramite errori di memoria * Note di sicurezza\u2026","rel":"","context":"In &quot;tecnologia&quot;","block_context":{"text":"tecnologia","link":"https:\/\/www.fullo.net\/blog\/category\/tecnologia\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":661,"url":"https:\/\/www.fullo.net\/blog\/2004\/01\/14\/mozilla-italia\/","url_meta":{"origin":4934,"position":1},"title":"Mozilla Italia","author":"Francesco Fullone","date":"14\/01\/2004","format":false,"excerpt":"Da oggi nasce Mozilla Italia (http:\/\/www.mozillaitalia.org ), il nuovo sito del gruppo di traduzione italiana di Mozilla. Nelle prossime settimane si arricchir di servizi, come la pubblicazione di articoli, di guide e di una newsletter sui prodotti Mozilla. Ringrazio tutti quelli che ne hanno reso possibile la nascita, a partire\u2026","rel":"","context":"In &quot;tecnologia&quot;","block_context":{"text":"tecnologia","link":"https:\/\/www.fullo.net\/blog\/category\/tecnologia\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1211,"url":"https:\/\/www.fullo.net\/blog\/2005\/01\/14\/web-riviste\/","url_meta":{"origin":4934,"position":2},"title":"web riviste","author":"Francesco Fullone","date":"14\/01\/2005","format":false,"excerpt":"da un anno a questa parte stanno fiorendo sempre di pi\u00f9 le web riviste, a met\u00e0 tra newsletter ed articoli impaginati per la stampa, hanno spesso articoli di buona qualit\u00e0, a volte anche meglio delle blasonate cugine cartacee, ed il vantaggio di essere consultabili sempre, stampabili solo se necessario, e\u2026","rel":"","context":"In &quot;tecnologia&quot;","block_context":{"text":"tecnologia","link":"https:\/\/www.fullo.net\/blog\/category\/tecnologia\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1172,"url":"https:\/\/www.fullo.net\/blog\/2004\/12\/26\/si-free-mandela-ma-free-anche-pedavena\/","url_meta":{"origin":4934,"position":3},"title":"si, free mandela.. ma free anche Pedavena!","author":"Francesco Fullone","date":"26\/12\/2004","format":false,"excerpt":"la Heineken ha deciso di chiudere gli stabilimenti di Pedavena, storica fabbrica di birra del bellunese, siccome apprezzo particolarmente quella marca di birra non posso fare altro che appoggiare la loro richiesta di aiuto firmando la petizione, non comprando pi\u00f9 Heineken [anche se ormai sono anni che non la compro\u2026","rel":"","context":"In &quot;di tutto un po'&quot;","block_context":{"text":"di tutto un po'","link":"https:\/\/www.fullo.net\/blog\/category\/di-tutto-un-po\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2661,"url":"https:\/\/www.fullo.net\/blog\/2009\/08\/21\/essere-un-nerd-contare-in-binario\/","url_meta":{"origin":4934,"position":4},"title":"Essere un nerd: contare in binario","author":"Francesco Fullone","date":"21\/08\/2009","format":false,"excerpt":"Leggendo la stupenda guida per Luca Mearelli su come contare in binario mi \u00e8 tornato alla memoria un piccolo esercizio che facevo per contare potenze di 2 con le dita. L'esercizio \u00e8 abbastanza semplice e vi aiuter\u00e0 a sbaragliare qualsiasi chitarrista estivo davanti ad un fal\u00f2 (ma non garantisco). Prendete\u2026","rel":"","context":"In &quot;cazzate&quot;","block_context":{"text":"cazzate","link":"https:\/\/www.fullo.net\/blog\/category\/cazzate\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1681,"url":"https:\/\/www.fullo.net\/blog\/2005\/10\/05\/numeri-non-persone-ehm\/","url_meta":{"origin":4934,"position":5},"title":"Numeri, non persone.. ehm..","author":"Francesco Fullone","date":"05\/10\/2005","format":false,"excerpt":"La news su UnConf si sparge sempre di pi\u00f9 e sempre pi\u00f9 persone stanno partecipando attivamente al wiki. Molti dei possessori dei nomi e dei nick, che stanno aggiungendo contenuti al sito, li ho gi\u00e0 visti in giro per il web: di qualcuno leggo il blog, di altri ricevo commenti,\u2026","rel":"","context":"In &quot;pensieri&quot;","block_context":{"text":"pensieri","link":"https:\/\/www.fullo.net\/blog\/category\/pensieri\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/10\/image.png?fit=1024%2C572&ssl=1","_links":{"self":[{"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts\/4934","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/comments?post=4934"}],"version-history":[{"count":1,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts\/4934\/revisions"}],"predecessor-version":[{"id":4936,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts\/4934\/revisions\/4936"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/media\/4935"}],"wp:attachment":[{"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/media?parent=4934"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/categories?post=4934"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/tags?post=4934"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}