Hermes Agent e OpenCode non sono due build della stessa cosa: Hermes è un agente personale sempre attivo che risponde attraverso i canali di messaggistica e conserva la memoria tra le sessioni, mentre OpenCode è un agente di coding interattivo che controlli da un terminale, un'app desktop o un editor. Entrambi hanno licenza MIT, entrambi hanno ricevuto commit il giorno in cui questa pagina è stata verificata ed entrambi accettano un endpoint di terze parti senza che un piano a pagamento lo impedisca. La decisione quindi non riguarda il punteggio delle funzionalità — riguarda dove viene eseguito l'agente, chi è autorizzato a comunicare con esso e cosa continua a generare costi quando nessuno sta digitando.
Prima due ambiguità nei nomi, perché entrambi compaiono attivamente nei risultati di ricerca per questo confronto. L'OpenCode qui considerato è anomalyco/opencode: non archiviato, con licenza MIT, branch predefinito dev, 209.062 stelle, ultima release v1.18.31 pubblicata il 14 settembre 2026. GitHub continua a risolvere sst/opencode verso di esso: quel percorso restituisce il record proprio di questo repository, quindi si tratta di un trasferimento tra proprietari e non di un secondo progetto attivo. Il motivo del trasferimento non è determinabile dall'API, quindi questa pagina non lo specifica. Un repository diverso, opencode-ai/opencode, è archiviato e in sola lettura da settembre 2025, e il suo README afferma che il progetto "è proseguito con il nome Crush" — consulta Crush e OpenCode a confronto per questo confine. Inoltre, "Hermes" indica anche la famiglia di modelli open-weight di Nous Research, un motore JavaScript e un corriere; questa pagina si riferisce esclusivamente a NousResearch/hermes-agent (non archiviato, con licenza MIT, 247.674 stelle, ultima release v2026.9.14, denominata "Hermes Agent v0.21.3", pubblicata il 14 settembre 2026). Tutti e quattro gli stati dei repository sono stati letti dall'API REST di GitHub il 21 settembre 2026.
Quale dovresti scegliere?
Scegli Hermes Agent quando il lavoro arriva mentre sei lontano dalla tastiera. La sua documentazione descrive "più di 20 piattaforme da un unico gateway" — CLI, Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Mattermost, Email, SMS e altro — oltre a sette backend terminale e attività pianificate. Questa raggiungibilità comporta un asse di autorizzazione che OpenCode semplicemente non ha: il gateway decide chi può rivolgersi all'agente e per impostazione predefinita nega l'accesso — "Se non sono configurate allowlist e GATEWAY_ALLOW_ALL_USERS non è impostato, tutti gli utenti vengono negati." Il percorso dei costi è quello su cui riflettere più attentamente, perché un agente sempre attivo genera costi quando non lo stai osservando, e il blocco alla migrazione è specifico: l'installer macOS è solo per Apple Silicon, mentre macOS Intel è indicato come piattaforma non supportata (documentazione di installazione, 21 settembre 2026).
Scegli OpenCode quando il lavoro riguarda un repository e lo stai supervisionando. Offre strumenti specifici per il codice che Hermes non documenta: integrazione con il Language Server Protocol che usa la diagnostica come feedback per l'agente, un agente plan integrato che imposta le modifiche ai file e bash su ask, e subagenti explore e scout in sola lettura. Il suo modello di autorizzazioni è l'esatto inverso di quello di Hermes: "La maggior parte delle autorizzazioni ha come impostazione predefinita "allow"", mentre doom_loop e external_directory hanno come impostazione predefinita ask e i file .env sono negati. OpenCode quindi parte aperto e sei tu a chiuderlo; Hermes parte chiuso e sei tu ad aprirlo. Il percorso dei costi è più semplice — nulla viene eseguito quando non sei in una sessione — e il costo di migrazione è l'opposto di quello di Hermes: OpenCode non documenta alcuna memoria dell'utente tra le sessioni, quindi la sua persistenza consiste nei file AGENTS.md che scrivi e sottoponi a commit.
Scegli entrambi quando la risposta corretta è la delega. Nous distribuisce una skill Hermes inclusa che affida il lavoro di coding alla CLI di OpenCode come processo esterno — un opencode run una tantum per un'attività circoscritta oppure una sessione interattiva eseguita in background tramite lo strumento terminale di Hermes. Si tratta di documentazione di prima parte, non di un workaround, ed è per questo che il confronto non è soltanto una questione di sostituzione: i due agenti non condividono una sessione né una finestra di contesto, quindi OpenCode utilizza credenziali proprie e un proprio consumo. I dettagli sulle credenziali e sulla misurazione dei costi appartengono a Hermes Agent con Codex e OpenCode, che copre le quattro superfici delle credenziali in quel flusso di lavoro.
Hermes Agent e OpenCode, dimensione per dimensione
| Dimensione | Hermes Agent | OpenCode |
|---|---|---|
| Che cos'è | Agente gateway persistente; descrizione del repository "L'agente che cresce con te" | Agente di coding; descrizione del repository "L'agente di coding open source." |
| Dove viene eseguito | 7 backend terminale: local, Docker, SSH, Daytona, Singularity, Modal, Vercel Sandbox | Terminale, app desktop o estensione IDE, sulla tua macchina |
| Chi può rivolgersi a esso | Allowlist del gateway e associazione tramite DM; gli utenti sconosciuti vengono negati per impostazione predefinita | Chiunque si trovi al terminale o nell'editor; nessun livello di autorizzazione del mittente |
| Impostazione predefinita delle autorizzazioni degli strumenti | approvals.mode: smart per impostazione predefinita; approvals.cron_mode: deny per impostazione predefinita | La maggior parte delle autorizzazioni ha come impostazione predefinita allow; doom_loop e external_directory richiedono conferma |
| Livello di sicurezza irrinunciabile | Un insieme rigido di operazioni rifiutate indipendentemente da --yolo, approvals.mode: off o dall'approvazione cron headless | Le regole esplicite deny restano applicate con --auto |
| Memoria tra le sessioni | MEMORY.md (2.200 caratteri) e USER.md (1.375 caratteri) in ~/.hermes/memories/, oltre a state.db SQLite con ricerca FTS5 | AGENTS.md locale, poi ~/.config/opencode/AGENTS.md, poi ~/.claude/CLAUDE.md; nessuna memoria dell'utente tra le sessioni documentata |
| Strumenti specifici per il codice | Modifica dei file ed esecuzione nel terminale (terminal, process, read_file, patch); checkpoint prima delle operazioni distruttive sui file, documentati come opt-in e disattivati per impostazione predefinita; nessuna integrazione LSP nelle pagine Hermes verificate qui | Diagnostica LSP restituita all'agente; agenti explore e scout in sola lettura, oltre a un agente plan che imposta le modifiche ai file e bash su ask |
| Superficie dell'editor | La documentazione lo presenta come "non un copilota di coding vincolato a un IDE" | Estensioni per VS Code, Cursor, Windsurf e VSCodium; opencode acp lo avvia come sottoprocesso ACP tramite JSON-RPC |
| Parallelismo | Fino a 10 subagenti simultanei per impostazione predefinita, ciascuno con una conversazione completamente nuova | Subagenti general, explore e scout integrati, invocati nella sessione; la pagina sugli agenti non documenta un limite di concorrenza in nessuna delle due direzioni |
| Protocolli degli endpoint personalizzati | Tre trasporti: chat_completions, anthropic_messages, codex_responses | Due formati wire tramite npm: @ai-sdk/openai-compatible e @ai-sdk/openai |
Righe lette il 21 settembre 2026 dall'indice della documentazione Hermes, dalle pagine su memoria, delega, strumenti, checkpoint e sicurezza, nonché dalle pagine di OpenCode su regole, agenti, ACP, IDE e autorizzazioni. Ogni cella che segnala un'assenza — nessuna memoria dell'utente tra le sessioni, nessun LSP, nessun limite di concorrenza, nessun livello di autorizzazione del mittente — indica un'assenza nelle pagine elencate qui, non una dichiarazione del fornitore secondo cui la funzionalità non esiste.
Entrambi accettano un endpoint di terze parti — a condizioni diverse
Nessuno dei due prodotti vincola un URL di base personalizzato a un piano. OpenCode Zen è il gateway proprietario di Anomaly e la sua documentazione afferma che è "completamente opzionale e non è necessario utilizzarlo per usare OpenCode"; Hermes legge i provider nominati dal proprio file di configurazione, quindi Nous Portal è un'opzione e non un requisito. Ciò che differisce è la copertura dei protocolli. Hermes indica anthropic_messages come valore di trasporto di prima classe insieme a chat_completions e codex_responses in un blocco providers: in ~/.hermes/config.yaml (documentazione dei provider Hermes). OpenCode documenta un override generico baseURL per provider — "utile quando si utilizzano servizi proxy o endpoint personalizzati" — e seleziona il formato wire con npm, ma la sua pagina dei provider non contiene una procedura per endpoint personalizzati con il protocollo Anthropic. Interpretalo come un'assenza nella documentazione, non come un blocco dimostrato.
Vale la pena leggere una proprietà di configurazione specifica di Hermes prima di confrontare i listini. Esiste esattamente un caso di endpoint personalizzato in cui la documentazione dei provider descrive Hermes come capace di attivare autonomamente il caching: un URL di base contenente x.ai, al quale invia un header x-grok-conv-id con ogni richiesta. Per gli altri endpoint personalizzati, la documentazione descrive un rilevamento anziché un'attivazione o disattivazione generalizzata — Hermes abbina una dichiarazione prompt_caching per modello "al percorso esatto del provider e all'ID del modello a runtime", ed è così che un gateway che risolve un alias semplice riceve i marcatori di cache; "quando viene omesso, Hermes mantiene il normale rilevamento delle capacità del provider e del modello"; prompt_caching: false disattiva i marcatori. I marcatori sono solo metà del lavoro svolto dal client: il fatto che un determinato endpoint esegua il caching senza di essi dipende dal comportamento dell'endpoint stesso, quindi verifica la documentazione del tuo provider invece di presumere una delle due risposte. L'entità in gioco è descritta nella documentazione sulla configurazione dei modelli di Hermes, che indica una tariffa cached con uno sconto di circa il 75–90% rispetto al prezzo completo degli input. Due note minori dalle stesse pagine: gli endpoint personalizzati compatibili con OpenAI ricevono da Hermes "nessun limite automatico dell'output delle dimensioni del catalogo", quindi si applica il valore predefinito del server; inoltre, per i server self-hosted, la documentazione dei provider colloca il tool calling dalla parte del server — llama.cpp richiede --jinja, vLLM richiede --enable-auto-tool-choice.
Kunavo offre /v1/chat/completions e /v1/responses su https://api.kunavo.com/v1, e Anthropic Messages su https://api.kunavo.com. Sulla carta ciò significa che Hermes può raggiungerlo con tutti e tre i suoi trasporti (il percorso Messages risponde solo per i modelli Claude) e OpenCode con entrambi i suoi pacchetti npm — ma questa è una revisione della documentazione sorgente, non un'integrazione testata. Nessuno dei due client è stato testato a runtime con l'endpoint Kunavo qui, e la stessa documentazione dell'integrazione OpenCode di Kunavo riporta un proprio precedente contrassegno di verifica. Per Hermes, API personalizzata di Hermes Agent descrive il blocco provider; la documentazione dell'URL di base Anthropic descrive la forma con radice host richiesta dal trasporto Messages.
Kunavo non offre modelli di embedding, text-to-speech o speech-to-text, quindi nessuno di questi passaggi può essere indirizzato qui. Hermes include uno strumento text_to_speech e la sua pagina degli strumenti elenca un gateway ospitato da Nous Portal che copre ricerca web, generazione di immagini, TTS e automazione del browser; questa parte del lavoro resta al provider che hai configurato per essa.
Quanto costano gli stessi token su ciascun percorso
Nessuno dei due client applica costi per sé. Entrambi i repository hanno licenza MIT e le FAQ di Hermes lo affermano chiaramente: "Hermes Agent è gratuito e open source (licenza MIT). Paghi solo l'utilizzo dell'API LLM del provider scelto." Ciò che differisce è la forma del lavoro che ciascuno invia.
Si tratta di un calcolo illustrativo dei token, non del costo misurato di un'attività e non di un limite massimo di fatturazione. Supponiamo una sessione di lavoro con 400.000 token di input non memorizzati nella cache e 25.000 token di output. Per la modalità Hermes, aggiungiamo un batch delegato di tre subagenti con 300.000 token di input e 20.000 token di output ciascuno — un numero scelto a scopo illustrativo, non misurato; il valore predefinito documentato di Hermes consente fino a dieci subagenti. Le tariffe sono i prezzi attivi del catalogo Kunavo per milione di token.
| Struttura | Modello/i | Token ipotizzati | Stima da catalogo |
|---|---|---|---|
| Sessione interattiva in stile OpenCode | Claude Sonnet 5 | 400 mila in ingresso / 25 mila in uscita | $0,73 |
| Orchestratore Hermes più 3 worker delegati | Claude Sonnet 5 per tutta la sessione | 1,3M in / 85k out | $2,42 |
| Stessa esecuzione, con l'orchestratore spostato su uno slot più economico | Orchestratore Claude Haiku 4.5, worker Claude Sonnet 5 | 1,3M in / 85k out | $2,05 |
Due letture. In queste ipotesi, i worker delegati rappresentano $1,68 del totale di $2,42, in linea con quanto afferma qualitativamente la documentazione sulla delega di Hermes — "il costo effettivo risiede nel modello worker". Inoltre, lo slot dell'orchestratore è la leva economica: indicare Claude Haiku 4.5 in quel punto porta la stessa esecuzione a $2,05. Hermes espone delegation.model, delegation.provider, delegation.base_url e delegation.api_key, quindi i worker possono puntare a una destinazione completamente diversa da quella dell'orchestratore. Ricorda il moltiplicatore escluso da questo esempio: "Ogni attività ausiliaria ha come impostazione predefinita auto — ciò significa che Hermes prova a usare anche il tuo modello principale per quell'attività", tra compressione, visione, riepilogo, valutazione delle approvazioni, routing MCP, generazione del titolo e ricerca delle skill.
Se stai valutando Kunavo rispetto al gateway proprietario di OpenCode, il confronto cambia a seconda del modello, quindi indica sempre il modello:
| Modello | OpenCode Zen, prezzo per 1M | Catalogo Kunavo, prezzo per 1M | Per questo modello |
|---|---|---|---|
| Claude Opus 5 | $5,00 in ingresso / $25,00 in uscita | $3,50 in ingresso / $17,50 in uscita | Kunavo più economico |
| Claude Sonnet 5 | $2,00 in ingresso / $10,00 in uscita | $1,40 in ingresso / $7,00 in uscita | Livello |
| Claude Haiku 4.5 | $1,00 in ingresso / $5,00 in uscita | $0,70 in ingresso / $3,50 in uscita | Kunavo più economico |
I dati di Zen sono tratti dalla tabella prezzi di Anomaly del 21 settembre 2026, che specifica che i prezzi sono per 1M di token. Queste sono tre righe di una tabella più ampia, quindi non trarre conclusioni sui modelli non elencati qui. Zen ricarica automaticamente $20 quando il saldo scende sotto $5: è un comportamento di finanziamento da verificare prima di confrontare i saldi anziché le tariffe. OpenCode Go è un prodotto separato da $10 al mese, contabilizzato in richieste anziché in token e utilizzabile "con qualsiasi agente" (verificato il 21 settembre 2026), quindi non è confrontabile con nessuna tariffa per token presente in questa pagina, inclusa quella di Kunavo.
Una voce non ha un equivalente in OpenCode: se ospiti l'agente sempre attivo, Hermes Cloud pubblica $0,56 al giorno quando è in esecuzione e $0,03 al giorno quando è arrestato per un'istanza Medium (10 sessioni simultanee, 2GB di RAM, 4 vCPU), con un minimo di $2 in crediti o un abbonamento attivo richiesto per la distribuzione; specifica inoltre che tali addebiti coprono calcolo e archiviazione, mentre inferenza e uso degli strumenti vengono fatturati separatamente (verificato il 21 settembre 2026). OpenCode viene eseguito sulla tua macchina e non addebita nulla per l'inattività.
L'importo del catalogo di Kunavo è una soglia minima di fatturazione, non un limite massimo: quando il servizio upstream comunica il proprio addebito, il conto è il maggiore tra il costo di catalogo e il costo upstream moltiplicato per il markup applicabile. Gli addebiti per la cache e gli strumenti esterni sono esclusi da questo esempio. La ricarica minima è $10 di credito prepagato, senza piano gratuito: una soglia minima di finanziamento, non il costo di un'attività né un abbonamento. Consulta i dettagli di fatturazione e crea un account quando avrai scelto un percorso.
Cosa non viene trasferito tra i due
Passare da un agente all'altro trasferisce meno di quanto ci si aspetterebbe, e ciascun lato conserva il proprio stato nella propria posizione.
- Lo stato di Hermes risiede in
~/.hermes/:memories/MEMORY.mdememories/USER.md,skills/,config.yamlestate.db. La memoria è "deliberatamente limitata al profilo" e la documentazione avverte: "Non indirizzare due processi agente alla stessa directory home di Hermes." Nella pagina della memoria non è documentato alcun meccanismo di esportazione o importazione, quindi considera i percorsi come dati di fatto e la portabilità come non verificata. - Lo stato di OpenCode risiede in
~/.local/share/opencode/(inclusiauth.jsone i dati di sessione per progetto), con la configurazione in~/.config/opencode/. Il suo asset durevole e portabile sono i fileAGENTS.mdpresenti nel repository, che si spostano insieme al repository anziché insieme all'agente. - Competenze e istruzioni non sono intercambiabili. Hermes scrive le proprie competenze su disco e definisce il formato compatibile con uno standard aperto per le competenze, ma nulla di quanto verificato qui dimostra che OpenCode carichi una competenza Hermes o che Hermes legga un
AGENTS.md. - La configurazione dei canali non ha un equivalente. Le allowlist del gateway, l'associazione dei DM e le pianificazioni cron sono concetti di Hermes; sul lato OpenCode non c'è nulla da importare.
Stai confrontando anche altri prodotti? Hermes vs OpenClaw tratta l'altro assistente sempre attivo, OpenCode vs Claude Code l'altro agente interattivo per la programmazione, mentre Prezzi di OpenCode e Prezzi di Hermes Agent illustrano i termini commerciali propri di ciascun prodotto.
Domande frequenti
Qual è la differenza tra Hermes Agent e OpenCode?
Occupano posizioni diverse nella tua giornata. Hermes Agent è un processo gateway persistente: la sua documentazione descrive più di 20 piattaforme di messaggistica da un unico gateway — CLI, Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Mattermost, Email, SMS e altro — sette backend terminale (locale, Docker, SSH, Daytona, Singularity, Modal, Vercel Sandbox), attività pianificate e file di memoria persistenti tra le sessioni. OpenCode è un agente di coding interattivo, descritto dalla propria documentazione come disponibile tramite interfaccia terminale, app desktop o estensione IDE, con diagnostica del Language Server Protocol restituita all'agente e istruzioni di progetto lette da AGENTS.md. Hermes può modificare file ed eseguire comandi terminale, quindi il confronto corretto riguarda gli strumenti specifici per il codice e la raggiungibilità sempre attiva, non la capacità dell'uno o dell'altro di scrivere un file. Entrambi verificati il 21 settembre 2026.
Hermes Agent è migliore di OpenCode?
Nessuno dei due progetti ha pubblicato una risposta a questa domanda e questa pagina non inventa un punteggio. Non esiste un benchmark condiviso, né una suite di attività comparabile né dati misurati sul completamento per la coppia, quindi qualsiasi classifica tu legga riflette l'esperienza di qualcuno, non una prova. Decidi invece su quattro assi verificabili: dove deve essere eseguito l'agente, chi è autorizzato a comunicare con esso, quali protocolli raggiunge il suo percorso verso endpoint personalizzati e cosa continua a generare costi quando nessuno sta digitando. Su quest'ultimo punto differiscono davvero — Hermes è progettato per funzionare continuamente e delega il lavoro a batch di subagenti, mentre OpenCode viene eseguito quando lo avvii.
Hermes Agent e OpenCode possono lavorare insieme?
Sì, e Nous Research lo documenta come skill Hermes inclusa, non come hack della community. La skill delega un'attività circoscritta con un comando una tantum come opencode run 'Add retry logic to API calls and update tests', dopo aver installato la CLI con npm i -g opencode-ai@latest o brew install anomalyco/tap/opencode e aver effettuato l'autenticazione con opencode auth login o con variabili d'ambiente del provider; una sessione interattiva viene eseguita tramite lo strumento terminale di Hermes con background e pty abilitati. I due agenti non condividono una sessione né una finestra di contesto — OpenCode viene eseguito come processo esterno con credenziali proprie e un proprio consumo. Letto dalla documentazione delle skill di Hermes il 21 settembre 2026.
Una sola chiave API può coprire sia Hermes Agent sia OpenCode?
Una chiave può essere configurata in entrambi, ma si tratta di due configurazioni separate e nessuna eredita dall'altra. Hermes legge i provider nominati da un blocco providers in ~/.hermes/config.yaml, dove transport può essere chat_completions, anthropic_messages o codex_responses. OpenCode legge un blocco provider in opencode.json, dove il campo npm seleziona il formato wire — @ai-sdk/openai-compatible per /v1/chat/completions e @ai-sdk/openai per /v1/responses. Un'attività che Hermes delega alla CLI di OpenCode legge la configurazione propria di OpenCode, quindi utilizza lo stesso saldo solo se lo indirizzi deliberatamente lì. Entrambe le configurazioni qui riportate sono state lette dalla documentazione ufficiale il 21 settembre 2026 e nessuna è stata testata a runtime con Kunavo.
Quale dei due è più economico da eseguire?
Il software client costa lo stesso da entrambe le parti: nulla. Hermes Agent è distribuito con licenza MIT e le sue FAQ affermano che paghi solo l'utilizzo dell'API LLM del provider scelto; anche il repository di OpenCode è distribuito con licenza MIT e non richiede alcun piano per essere eseguito. La differenza sta in ciò che consuma ciascuna forma di lavoro. OpenCode addebita i costi mentre sei in una sessione. Hermes aggiunge tre moltiplicatori documentati alle tue attività: le attività ausiliarie hanno come impostazione predefinita auto, cioè prova a usare il tuo modello principale anche per compressione, visione, riepilogo, valutazione delle approvazioni, routing MCP, generazione del titolo e ricerca delle skill; un batch delegato ha come impostazione predefinita fino a 10 subagenti simultanei; e la documentazione sulla delega di Hermes afferma che il costo effettivo risiede nel modello worker. L'hosting opzionale è una voce separata — Hermes Cloud pubblica $0,56 al giorno durante l'esecuzione e $0,03 al giorno quando è arrestato per un'istanza Medium, specificando che ciò copre calcolo e archiviazione mentre inferenza e utilizzo degli strumenti vengono fatturati a parte; OpenCode invece non ha costi di inattività perché viene eseguito sulla tua macchina. Entrambe le cifre verificate il 21 settembre 2026.
È lo stesso OpenCode archiviato nel 2025?
No. Due repository diversi hanno portato questo nome. Il prodotto attivo è anomalyco/opencode su opencode.ai — non archiviato, con licenza MIT, ultima release v1.18.31 pubblicata il 14 settembre 2026 — e GitHub continua a risolvere il vecchio percorso sst/opencode verso di esso, perché quel percorso restituisce questo stesso repository anziché un secondo progetto attivo. Un repository separato, opencode-ai/opencode, è stato archiviato dal proprietario ed è in sola lettura da settembre 2025; il suo sviluppo è proseguito con il nome Crush. La configurazione, i flag CLI e i prezzi tratti dal repository archiviato descrivono quell'altra linea evolutiva, non questa. Stati dei repository letti dall'API GitHub il 21 settembre 2026.
Verificato il 21 settembre 2026: l'API REST di GitHub per entrambi i repository, le loro release più recenti e i due repository con lo stesso nome, oltre alle pagine di documentazione e prezzi collegate in questa pagina su hermes-agent.nousresearch.com, portal.nousresearch.com e opencode.ai. Due argomenti sono stati esclusi perché le fonti non li chiariscono: la pagina dei provider di OpenCode afferma sia che /connect offre un'opzione Claude Pro/Max, sia che Anthropic vieta i plugin che instradano quei modelli; inoltre nessuno dei due progetti misura le prestazioni nelle attività, quindi questa pagina non classifica alcun agente. Non è stato eseguito alcun test di runtime: nessuna sessione Hermes, nessun opencode run e nessuna richiesta da parte dei due client verso l'endpoint di Kunavo. Le tariffe per token di Kunavo provengono dal catalogo attivo; ogni cifra in dollari presente in questa pagina è un calcolo illustrativo sui token.