L'agente IA personale open-source che gira in locale, parla sui canali che già usi (WhatsApp, Telegram, iMessage, Slack & co.) e si scrive le proprie skill da solo. È venuto da una sera di insonnia di Peter Steinberger, ha fatto 100.000 stelle su GitHub in due giorni, e l'autore poi è finito a OpenAI.
"Ho 12 tab di ChatGPT, 3 di Claude, una di Perplexity, e mi sono già dimenticato cosa stavo chiedendo." — il sysadmin nel 2026 prima di scoprire OpenClaw.
Un assistente IA personale che gira sulla tua macchina e parla sui canali che già usi.
OpenClaw è un agente IA open-source (licenza MIT) che gira come daemon locale sul tuo Mac, Linux o Windows, e con cui parli attraverso i canali che già usi: WhatsApp, Telegram, Signal, iMessage, Discord, Slack, IRC e altri 15+. Memoria persistente, esecuzione autonoma di task in background, accesso a filesystem/shell/browser, e una libreria di "skill" (plugin) installabili da una registry pubblica.
Lo ha creato Peter Steinberger (@steipete) — storico fondatore di PSPDFKit. Il progetto è nato all'inizio del 2026 ed è entrato nella storia di GitHub come il repository più veloce a raggiungere 100K stelle (due giorni).
Se ChatGPT desktop è un'app di chat in cui chiedi cose e ti rispondono, OpenClaw è un coinquilino digitale: vive nel tuo computer, sa quali sono i tuoi canali, ha le sue chiavi del frigo (filesystem, shell), fa cose mentre tu dormi, e ti scrive su Telegram quando ha finito. Non è un "modello": è un programma che usa modelli, dove i modelli sono intercambiabili (OpenAI, Anthropic, locale via Ollama).
Tre principi che decidono tutte le scelte di design.
Il daemon gira sulla tua macchina. I tuoi dati restano sulla tua macchina. L'unica cosa che esce sono le chiamate al provider LLM che hai scelto tu.
È il tuo agente, non un servizio multitenant. Niente account, niente piano, niente onboarding di team. Una persona, una macchina, una aragosta.
Non un'app in più da aprire. Parla con te dove già chatti: WhatsApp, Signal, iMessage, Slack, Telegram, ... La tua "interfaccia" sono i messenger che hai aperto da anni.
~/.openclaw/, è un tuo fileDa un'idea di gennaio 2026 a OpenAI in tre mesi. Un caso di studio.
Sviluppatore austriaco, fondatore di PSPDFKit (SDK PDF per iOS/Android usato da migliaia di aziende, exit nel 2024 dopo 14 anni di bootstrapping). Personaggio molto noto nel mondo iOS, prolifico su X/Twitter. Dopo l'uscita da PSPDFKit, periodo di burnout dichiarato pubblicamente. Poi: si chiude in casa, sperimenta con agenti IA, e a fine gennaio 2026 pubblica OpenClaw.
Tre ragioni: (1) Steinberger ha un seguito enorme su X/iOS Twitter e sa lanciare un progetto; (2) il timing era perfetto — nel gennaio 2026 il mondo era saturo di SaaS-agent che ti chiedevano $20/mese, OpenClaw è arrivato gratis, locale, open; (3) il nome, l'emoji aragosta, e il copy "the lobster way" sono diventati meme. Marketing organico perfetto.
Daemon, gateway, agent, skills. Quattro pezzi e si parla.
OpenClaw non è un processo monolitico ma una manciata di componenti che cooperano:
Processo di lungo corso (openclaw onboard --install-daemon lo installa come servizio). Tiene la memoria, schedula task, riavvia se cade.
Layer di comunicazione: connette ai 23+ canali (WhatsApp, Telegram, Signal, ...). openclaw gateway status mostra cosa è up.
Il "cervello": prende messaggi dal gateway, fa loop con LLM, esegue skill, scrive risposte. openclaw agent --message ... lo invoca direttamente.
Plugin descritti da un SKILL.md. Sono il modo in cui l'agente "sa" come fare una cosa specifica (mandare mail, leggere calendario, deployare).
~/.openclaw/workspace/: skill installate, memoria persistente, sessioni in corso, log, credenziali cifrate.
App nativa macOS/iOS/Android (menubar su Mac 15+). UI di controllo, notifiche, "Canvas" per render visuale.
~/.openclaw/
├── workspace/
│ ├── skills/ # skill installate, una cartella per skill
│ │ └── <skill>/SKILL.md # il manifest della skill
│ ├── memory/ # memoria persistente long-term
│ ├── sessions/ # conversazioni in corso
│ ├── credentials/ # token OAuth, API keys (cifrati)
│ └── logs/ # cosa ha fatto l'agente
├── config.toml # provider LLM, canali abilitati
└── daemon.sock # socket IPC verso il daemon
tar -czf openclaw-backup.tgz ~/.openclaw/. Migrazione tra macchine = rsync. Filosofia coerente con la roba che già copre questa guida (vedi arx/nomina/missus).
Per chi vuole hackare il sorgente, il repo github.com/openclaw/openclaw è un monorepo pnpm workspaces con:
src/ — core dell'agentepackages/ — package interni (gateway, agent runtime, ...)extensions/ — plugin "ufficiali" bundledui/ — Control UI webapps/ — companion apps native (macOS/iOS/Android)skills/ — skill di esempio.agents/ — configurazioni di agenti predefinitidocs/, scripts/, test/ — il restoPraticamente ogni messenger esistente. Le richieste di altri sono il primo issue su GitHub ogni mattina.
OpenClaw si connette nativamente a:
Ogni canale ha una procedura di "pairing" che lo collega al tuo account su quella piattaforma. Esempio per Telegram (concettuale):
# 1. Avvii il pairing di un canale
$ openclaw gateway add telegram
# 2. OpenClaw apre un dialogo (CLI o app)
# e ti chiede di confermare con un codice
# 3. Tu confermi
$ openclaw pairing approve telegram 123456
# 4. Da quel momento l'agente è raggiungibile sul tuo Telegram
$ openclaw gateway status
telegram ok connected as @YourBot
~/.openclaw/workspace/credentials/ (cifrati). Niente passa da un server di OpenClaw — per la semplice ragione che non esiste un server di OpenClaw. Tutto end-to-end tra il tuo daemon e il canale.
Su macOS, iOS, Android la companion app supporta speech-to-text + text-to-speech. Quindi puoi davvero "parlarle". Su Linux/Windows oggi resta solo testo (o vocale via canale: nota vocale Telegram → trascrizione → risposta vocale → ritrasmessa).
Quando un task non si esprime bene in chat (grafici, tabelle, anteprime, mappe, calendario settimanale...) l'agente apre un Canvas live nella companion app: una superficie 2D che l'agente disegna e tu puoi manipolare. Pensa a una whiteboard interattiva che esiste solo finché serve.
Tu scegli. OpenClaw è provider-agnostic by design.
OpenClaw non viene fornito "con" un LLM. Devi avere una API key di un provider, o un endpoint locale (Ollama, llama.cpp, LM Studio). Il provider lo scegli al momento dell'onboard e lo puoi cambiare in qualsiasi momento nel config.toml.
Provider primario citato nel README. GPT/o-series, supporto a tool use, Codex per il coding.
Claude (Opus, Sonnet, Haiku). Supportato come backend equivalente, tool use nativo.
Ollama, llama.cpp, LM Studio. Per chi vuole davvero zero dati fuori dalla macchina.
# Esempio concettuale — la sintassi esatta cambia con le release
[llm]
provider = "openai" # oppure: "anthropic", "ollama"
model = "gpt-5-flagship"
api_key = "$OPENAI_API_KEY" # oppure inline (sconsigliato)
[llm.anthropic]
api_key = "$ANTHROPIC_API_KEY"
model = "claude-opus-4-7"
[llm.local]
base_url = "http://127.0.0.1:11434" # Ollama default
model = "llama3.3:70b"
budget per evitare sorprese.
Markdown + qualche script. 5.400+ skill nel registry pubblico.
Una skill è il modo in cui OpenClaw "sa" come fare una cosa specifica: mandare una mail, leggere il calendario Google, fare deploy di un'app, controllare lo stato di una PR. Tecnicamente: una cartella con un file SKILL.md che descrive cosa fa la skill, quando attivarla, e quali tool/script invoca.
# Esempio concettuale di una skill
---
name: email-triage
description: Trier inbox by importance and propose replies
triggers:
- "controlla la posta"
- "check email"
- "how's my inbox"
requires:
- gmail-oauth
---
## Cosa fa
1. Legge gli ultimi 50 messaggi non letti
2. Classifica: urgent / wait / ignore / spam
3. Per gli "urgent" propone una bozza di risposta
4. Aspetta conferma prima di inviare
## Tools
- `gmail.list_unread(limit=50)`
- `gmail.get_message(id)`
- `gmail.draft_reply(thread_id, body)`
~/.openclaw/workspace/skills/).
ClawHub (clawhub.ai) è la registry pubblica di skills, equivalente di npm/PyPI per OpenClaw. Al momento 5.400+ skill indicizzate. Esempi di categorie: email/calendar, dev tools, home automation, content creation, finance, system administration, music/media.
# Cerca
$ openclaw skills search gmail
gmail-triage Triage Gmail inbox by importance
gmail-search Powerful search over Gmail
gmail-auto-archive Auto-archive newsletters older than N days
...
# Installa
$ openclaw skills install gmail-triage
# Lista skill attive
$ openclaw skills list
# Rimuovi
$ openclaw skills uninstall gmail-triage
Una delle feature più commentate al lancio: l'agente sa scrivere nuove skill. Gli dici "tutte le mattine alle 9 mandami su Telegram un riassunto delle PR aperte nei miei repo Gitea", e lui:
gitea-pr-summary con il template SKILL.md giusto~/.openclaw/workspace/skills/awesome-openclaw-skills (e altre liste filtrate) con le skill più usate, ordinate per categoria. Se vuoi capire cosa la gente automatizza davvero, partire da lì risparmia ore di scrolling.
Una riga di npm e openclaw onboard. Cinque minuti, non di più.
# Con npm
$ npm install -g openclaw@latest
# Oppure pnpm (raccomandato)
$ pnpm add -g openclaw@latest
# Oppure bun
$ bun add -g openclaw@latest
# Setup interattivo + installa il daemon di sistema
$ openclaw onboard --install-daemon
onboard è conversazionale. Ti chiede: provider LLM preferito, API key (incollabile o presa da env var), canali da paircare (puoi anche saltare e farlo dopo), nome dell'assistente, preferenze base. Tutto via dialog, niente file da editare a mano la prima volta.
# Stato del daemon
$ openclaw doctor
✓ daemon: running (pid 12345)
✓ gateway: 3/3 channels connected
✓ llm: openai (gpt-flagship), reachable
✓ workspace: ~/.openclaw/workspace (245 MB)
✓ skills: 12 installed
# Test rapido: parla con l'agente da CLI
$ openclaw agent --message "Sei attivo?"
🦞 Sì, sono qui. Daemon running, 3 canali connessi, pronto.
Se vuoi modificare il codice (la cosa più "open" che possa esistere):
$ git clone https://github.com/openclaw/openclaw
$ cd openclaw
$ pnpm install
$ pnpm build # tsdown
$ pnpm test # vitest
# Esegui la tua build locale
$ node dist/cli.js onboard
# Oppure: pnpm link --global per puntare a questa working copy
# Channel stable (default)
$ openclaw update --channel stable
# Channel beta (release candidate)
$ openclaw update --channel beta
# Channel dev (bleeding edge, può rompere)
$ openclaw update --channel dev
vYYYY.M.D (calver), es. v2026.5.1. I dist-tag npm corrispondono: latest (stable), beta, dev.
I comandi che userai davvero. Tutto sotto openclaw.
| Comando | Descrizione |
|---|---|
openclaw onboard | Setup interattivo iniziale (provider, canali, identità) |
openclaw onboard --install-daemon | Setup + installa il daemon come servizio di sistema |
openclaw doctor | Diagnostica: daemon, gateway, LLM, workspace |
openclaw gateway status | Stato connessione di ogni canale (connected/error/disabled) |
openclaw gateway add <channel> | Avvia pairing di un nuovo canale |
openclaw pairing approve <channel> <code> | Conferma codice di pairing |
openclaw message send --target ... --message ... | Invia un messaggio diretto via gateway |
openclaw agent --message "..." | Invoca l'agente da CLI (one-shot) |
openclaw agent --message "..." --thinking high | Modalità "high reasoning" (più lenta, più profonda) |
openclaw skills list | Lista skill installate |
openclaw skills search <query> | Cerca skill su ClawHub |
openclaw skills install <name> | Installa skill da ClawHub |
openclaw update --channel stable|beta|dev | Aggiorna la versione installata |
# 1. Una task one-shot da CLI
$ openclaw agent --message "Riassumi le ultime 10 issue del repo X"
# 2. Manda un messaggio via canale
$ openclaw message send \
--target "+393331234567" \
--channel signal \
--message "Promemoria: backup serale completato"
# 3. Setup di un nuovo canale
$ openclaw gateway add discord
# → segui il dialogo (server ID, token bot, ...)
$ openclaw pairing approve discord ABC123
# 4. Vedi cosa sta facendo
$ openclaw doctor
$ openclaw gateway status
# 5. Task "high reasoning" per problemi tosti
$ openclaw agent \
--message "Trova il leak in ./pkg/auth/, esamina i log degli ultimi 7gg" \
--thinking high
Cosa la gente automatizza davvero, non i finti casi delle landing page.
Ogni mattina alle 8 legge l'inbox, scarta newsletter, ti propone 3 risposte. Tu apri Telegram, leggi e approvi.
"Trova mezz'ora libera per Marco questa settimana, mandagli un'opzione su iMessage". Lui fa tutto, conferma, e crea l'evento.
Ascolta le PR aperte, runa i test locali, posta risultati sul Discord del team, pinga te se qualcosa è rosso.
Integra HomeAssistant via skill: "se piove e ho lasciato le finestre aperte, mandami un alert".
Legge le mail di banca/PSP, categorizza spese, ti manda un report settimanale su Signal.
Ti aiuta a scrivere post, mantiene un changelog del tuo progetto open source, redige note di release.
"Controlla che arx sia up su tutti i miei VPS, riportami su Telegram se qualcosa scoppia." Con la skill SSH installata, lo fa.
"Leggi questo PDF da 80 pagine, estraimi i numeri chiave su Slack." Skill browser+pdf, l'output finisce dove dici.
Più istanze su più macchine che si parlano via canale condiviso (es. Matrix room privato). Coordinazione organica.
Hai 5 VPS con arx/nomina/missus sopra. Configuri una skill SSH multi-host. La sera dici a OpenClaw su iMessage: "controlla che tutti i certbot abbiano rinnovato i certificati questo mese". Lui SSH-a in giro, parsa journalctl -u certbot, ti risponde "tutti ok tranne vps-3: rate limit Let's Encrypt, rinnovo schedulato tra 6h". Tu ringrazi e torni a guardare la partita.
Un agente che ha shell+filesystem è potente. Devi sapere cosa hai consegnato.
OpenClaw, per come è pensato, ha permessi forti sulla tua macchina: può leggere/scrivere file, eseguire comandi shell, fare richieste HTTP, navigare nel browser, parlare con i tuoi messenger. Sono questi permessi a renderlo utile. Sono anche questi permessi a renderlo una superficie d'attacco interessante se non li configuri bene.
~/.openclaw/workspace/credentials/ contiene token sensibili~/.openclaw/workspace/logs/ almeno una volta a settimana~/.openclaw/ in un posto sicuro (memoria + credenziali)Concettualmente, ogni "tool" disponibile all'agente ha una policy:
Esempio sensato: fs.read → auto, fs.write → ask, shell.exec → ask, email.send → ask, credentials.read → deny (mai). Adattabile per canale: su iMessage personale auto-approve di più, su un canale di lavoro Slack sempre ask.
I comandi che ti servono davvero, in una pagina sola.
$ npm install -g openclaw@latest # o: pnpm add -g / bun add -g
$ openclaw onboard --install-daemon
$ openclaw doctor # sanity check
$ openclaw gateway status # stato connessioni
$ openclaw gateway add telegram # aggiungi canale
$ openclaw pairing approve telegram 123456 # conferma pairing
$ openclaw message send --target USER --message "ciao"
$ openclaw agent --message "Stato dei miei VPS?"
$ openclaw agent --message "Debugga il bug X" --thinking high
$ openclaw agent --message "Riassumi questa PR" --target "https://..."
$ openclaw skills list # installate
$ openclaw skills search gmail # cerca su ClawHub
$ openclaw skills install gmail-triage # installa
$ openclaw skills uninstall <name> # rimuovi
# Skill custom: cartella + SKILL.md
$ mkdir -p ~/.openclaw/workspace/skills/my-skill
$ vim ~/.openclaw/workspace/skills/my-skill/SKILL.md
$ openclaw update --channel stable # default
$ openclaw update --channel beta
$ openclaw update --channel dev # bleeding edge
# Tutto vive in ~/.openclaw/ — backup è un tar
$ tar -czf openclaw-$(date +%F).tgz ~/.openclaw/
# Migrazione macchina: rsync + reinstall daemon
$ rsync -av ~/.openclaw/ newmac:~/.openclaw/
$ ssh newmac
newmac$ npm install -g openclaw@latest
newmac$ openclaw onboard --install-daemon
# Lo stato persistente è già in ~/.openclaw, l'onboard lo rispetta
$ openclaw doctor # overview
$ openclaw gateway status # canali
$ tail -f ~/.openclaw/workspace/logs/agent.log
$ tail -f ~/.openclaw/workspace/logs/daemon.log
# macOS: il daemon è un LaunchAgent
$ launchctl list | grep openclaw
# Linux: systemd user unit
$ systemctl --user status openclaw
$ journalctl --user -u openclaw -f
openclaw --help e openclaw <cmd> --help.