monstersMNSTR.0A18ENStella, Stelle su GitHub 2
Tutti i mostri sono fermiNon gira niente finché non riprendi.

La tua AI.Il tuo PC.I tuoi mostri.

Un orchestratore e una squadra di agenti AI che lavorano sul tuo computer. Qualsiasi modello, le tue chiavi, una leva rossa.

Premi / per la shell di questa pagina. Prova: summon <il tuo nome>

Fig. 1Titan, il dio dei mostri. Stuzzicalo.

Il registro delle azioni di una richiesta, rigiocato: Titan cerca nel vault, delega a Rhea e Dione, l’istinto trattiene una chiamata al web, una nota diventa un commit, esce la ricevuta.

Non è una chat. È una squadra.

Titan pianifica e divide il lavoro. I mostriciattoli lo fanno, ognuno con il suo modello, i suoi strumenti e i suoi permessi. Rinominali, aggiungine altri, mandali in pensione.

titan

Slot 00

La luna più grande, foschia arancione. Il mostro più grosso, corona di cornini.

Ruolo
Orchestratore
Tinta
62°
Forma
BLOB
Seme
0xE6BED33D

rhea

Slot 01

Ghiacciata e piena di crateri. Lilla, orecchie lunghe.

Ruolo
Agente
Tinta
280°
Forma
EGG
Seme
0x4B329874

dione

Slot 02

Scogliere di ghiaccio a fili. Menta, coda a pennacchio a strisce.

Ruolo
Agente
Tinta
160°
Forma
BLOB
Seme
0x73525324

tethys

Slot 03

Un canyon enorme. Corallo, il sorriso più largo, due zanne.

Ruolo
Agente
Tinta
22°
Forma
DOME
Seme
0x66319BF9

enceladus

Slot 04

Geyser dal polo sud. Azzurro ghiaccio, occhi su antenne.

Ruolo
Agente
Tinta
222°
Forma
EGG
Seme
0xD5A1AC3D

hyperion

Slot 05

Spugnosa e storta. Senape, mai simmetrica.

Ruolo
Agente
Tinta
100°
Forma
LUMPY
Seme
0x43CD3819

mimas

Slot 06

Un cratere come un occhio gigante. La più piccola, un ciclope.

Ruolo
Agente
Tinta
315°
Forma
BLOB
Seme
0x61A77CE9
tree ~/.monsters/agents/rhea
rhea/
├── AGENTS.md      # ruolo e regole, da un modello
├── agent.yaml     # nome, modelli, strumenti, vault, limiti
└── genome.json    # il suo aspetto (facoltativo)

0 directories, 3 files

Ogni mostro è una cartella: AGENTS.md, agent.yaml, genome.json. Questa è Rhea, come la scrive l’onboarding.

~/.monsters/agents/rhea/agent.yamlpid 4826
id: rheaname: Rhearole: ricerche online e sintesi con fontikind: subagentcolor: "#4f8df7"models:  - provider: openrouter    model: nvidia/nemotron-3-super-120b-a12b:free  - provider: openrouter    model: poolside/laguna-s-2.1:free  - provider: openrouter    model: openrouter/freetools:  - web_search  - web_fetch  - vault_search  - vault_read  - vault_list  - vault_links  - vault_tags  - vault_write  - vault_editvault:  read:    - "**"  write:    - Agenti/Rhea/**    - Inbox/**    - Risorse/Ricerche/**limits:  maxSteps: 30  maxOutputTokens: 4000

Scrivi un nome. Nasce un mostro.

Stesso nome, stesso mostro, sempre. Un genoma con il suo seme, disegnato in 255 LED dallo stesso kit che usa l’app.

Espressione

phoebe/genoma.json
{
  "version": 1,
  "id": "phoebe",
  "seed": 1676619163,
  "body": {
    "shape": "dome",
    "w": 0.96,
    "h": 0.9,
    "lean": -0.02
  },
  "palette": {
    "hue": 8.2,
    "chroma": 0.129,
    "lightness": 0.676,
    "belly": "light",
    "accent": "cream"
  },
  "eyes": {
    "kind": "cyclops",
    "size": 1.14,
    "spacing": 1,
    "iris": "amber",
    "asym": 0
  },
  "mouth": {
    "kind": "canyon",
    "width": 0.98,
    "teeth": "buck"
  },
  "horns": {
    "kind": "spike",
    "count": 5,
    "size": 0.93,
    "stripes": false
  },
  "ears": null,
  "tail": null,
  "arms": "long",
  "feet": "stubby",
  "marks": null,
  "topper": null,
  "personality": {
    "bounce": 0.62,
    "speed": 0.92
  }
}
00000000: 7b0a 2020 2276 6572 7369 6f6e 223a 2031  {.  "version": 1
00000010: 2c0a 2020 2269 6422 3a20 2270 686f 6562  ,.  "id": "phoeb
00000020: 6522 2c0a 2020 2273 6565 6422 3a20 3136  e",.  "seed": 16
00000030: 3736 3631 3931 3633 2c0a 2020 2262 6f64  76619163,.  "bod
00000040: 7922 3a20 7b0a 2020 2020 2273 6861 7065  y": {.    "shape
00000050: 223a 2022 646f 6d65 222c 0a20 2020 2022  ": "dome",.    "
00000060: 7722 3a20 302e 3936 2c0a 2020 2020 2268  w": 0.96,.    "h
00000070: 223a 2030 2e39 2c0a 2020 2020 226c 6561  ": 0.9,.    "lea
00000080: 6e22 3a20 2d30 2e30 320a 2020 7d2c 0a20  n": -0.02.  },. 
00000090: 2022 7061 6c65 7474 6522 3a20 7b0a 2020   "palette": {.  
000000a0: 2020 2268 7565 223a 2038 2e32 2c0a 2020    "hue": 8.2,.  
000000b0: 2020 2263 6872 6f6d 6122 3a20 302e 3132    "chroma": 0.12
000000c0: 392c 0a20 2020 2022 6c69 6768 746e 6573  9,.    "lightnes
000000d0: 7322 3a20 302e 3637 362c 0a20 2020 2022  s": 0.676,.    "
000000e0: 6265 6c6c 7922 3a20 226c 6967 6874 222c  belly": "light",
000000f0: 0a20 2020 2022 6163 6365 6e74 223a 2022  .    "accent": "
00000100: 6372 6561 6d22 0a20 207d 2c0a 2020 2265  cream".  },.  "e
00000110: 7965 7322 3a20 7b0a 2020 2020 226b 696e  yes": {.    "kin
00000120: 6422 3a20 2263 7963 6c6f 7073 222c 0a20  d": "cyclops",. 
00000130: 2020 2022 7369 7a65 223a 2031 2e31 342c     "size": 1.14,
00000140: 0a20 2020 2022 7370 6163 696e 6722 3a20  .    "spacing": 
00000150: 312c 0a20 2020 2022 6972 6973 223a 2022  1,.    "iris": "
00000160: 616d 6265 7222 2c0a 2020 2020 2261 7379  amber",.    "asy
00000170: 6d22 3a20 300a 2020 7d2c 0a20 2022 6d6f  m": 0.  },.  "mo
00000180: 7574 6822 3a20 7b0a 2020 2020 226b 696e  uth": {.    "kin
00000190: 6422 3a20 2263 616e 796f 6e22 2c0a 2020  d": "canyon",.  
000001a0: 2020 2277 6964 7468 223a 2030 2e39 382c    "width": 0.98,
000001b0: 0a20 2020 2022 7465 6574 6822 3a20 2262  .    "teeth": "b
000001c0: 7563 6b22 0a20 207d 2c0a 2020 2268 6f72  uck".  },.  "hor
000001d0: 6e73 223a 207b 0a20 2020 2022 6b69 6e64  ns": {.    "kind
000001e0: 223a 2022 7370 696b 6522 2c0a 2020 2020  ": "spike",.    
000001f0: 2263 6f75 6e74 223a 2035 2c0a 2020 2020  "count": 5,.    
00000200: 2273 697a 6522 3a20 302e 3933 2c0a 2020  "size": 0.93,.  
00000210: 2020 2273 7472 6970 6573 223a 2066 616c    "stripes": fal
00000220: 7365 0a20 207d 2c0a 2020 2265 6172 7322  se.  },.  "ears"
00000230: 3a20 6e75 6c6c 2c0a 2020 2274 6169 6c22  : null,.  "tail"
00000240: 3a20 6e75 6c6c 2c0a 2020 2261 726d 7322  : null,.  "arms"
00000250: 3a20 226c 6f6e 6722 2c0a 2020 2266 6565  : "long",.  "fee
00000260: 7422 3a20 2273 7475 6262 7922 2c0a 2020  t": "stubby",.  
00000270: 226d 6172 6b73 223a 206e 756c 6c2c 0a20  "marks": null,. 
00000280: 2022 746f 7070 6572 223a 206e 756c 6c2c   "topper": null,
00000290: 0a20 2022 7065 7273 6f6e 616c 6974 7922  .  "personality"
000002a0: 3a20 7b0a 2020 2020 2262 6f75 6e63 6522  : {.    "bounce"
000002b0: 3a20 302e 3632 2c0a 2020 2020 2273 7065  : 0.62,.    "spe
000002c0: 6564 223a 2030 2e39 320a 2020 7d0a 7d    ed": 0.92.  }.}
ewogICJ2ZXJzaW9uIjogMSwKICAiaWQiOiAicGhvZWJlIiwKICAic2VlZCI6IDE2NzY2MTkxNjMsCiAgImJvZHkiOiB7CiAgICAic2hhcGUiOiAiZG9tZSIsCiAgICAidyI6IDAuOTYsCiAgICAiaCI6IDAuOSwKICAgICJsZWFuIjogLTAuMDIKICB9LAogICJwYWxldHRlIjogewogICAgImh1ZSI6IDguMiwKICAgICJjaHJvbWEiOiAwLjEyOSwKICAgICJsaWdodG5lc3MiOiAwLjY3NiwKICAgICJiZWxseSI6ICJsaWdodCIsCiAgICAiYWNjZW50IjogImNyZWFtIgogIH0sCiAgImV5ZXMiOiB7CiAgICAia2luZCI6ICJjeWNsb3BzIiwKICAgICJzaXplIjogMS4xNCwKICAgICJzcGFjaW5nIjogMSwKICAgICJpcmlzIjogImFtYmVyIiwKICAgICJhc3ltIjogMAogIH0sCiAgIm1vdXRoIjogewogICAgImtpbmQiOiAiY2FueW9uIiwKICAgICJ3aWR0aCI6IDAuOTgsCiAgICAidGVldGgiOiAiYnVjayIKICB9LAogICJob3JucyI6IHsKICAgICJraW5kIjogInNwaWtlIiwKICAgICJjb3VudCI6IDUsCiAgICAic2l6ZSI6IDAuOTMsCiAgICAic3RyaXBlcyI6IGZhbHNlCiAgfSwKICAiZWFycyI6IG51bGwsCiAgInRhaWwiOiBudWxsLAogICJhcm1zIjogImxvbmciLAogICJmZWV0IjogInN0dWJieSIsCiAgIm1hcmtzIjogbnVsbCwKICAidG9wcGVyIjogbnVsbCwKICAicGVyc29uYWxpdHkiOiB7CiAgICAiYm91bmNlIjogMC42MiwKICAgICJzcGVlZCI6IDAuOTIKICB9Cn0=

Come è cablato.†

Un solo core sul tuo computer. Le finestre per entrarci: l’app desktop, il browser, Telegram, SSH. Tutto quello che fa passa dallo stesso registro e dallo stesso interruttore.

~/monsters/docs/ARCHITECTURE.md · asciipid 4747

Schema dell’architettura. App desktop, interfaccia web, Telegram e SSH si collegano al core su 127.0.0.1:4747. Il core tiene Titan e la squadra, l’istinto, il registro degli eventi e l’interruttore, che interrompe un albero di AbortController e di processi figli. Sotto il core: i provider, il vault Markdown con git, gli strumenti e monsters mcp per Claude Desktop, Codex e Cursor.

Scheda tecnica

neofetch, più o menopid 4747

you@localhost

OS:
il tuo: Linux, macOS, Windows
Host:
127.0.0.1:4747 (solo loopback)
Kernel:
Node 24 · TypeScript · SQLite
Version:
monsters 0.1.0-alpha.18
Shell:
monsters chat, anche via SSH
Squad:
7 mostri: 1 orchestratore, 6 agenti
Providers:
6 API cloud · 2 locali · 2 abbonamenti
Memory:
vault Markdown + git, si apre con Obsidian
Remote:
Telegram · SSH
Brake:
istinto, sulle azioni verso l’esterno
Caps:
giornalieri · mensili
License:
Apache-2.0
Kill switch:
ARMATOTIRATO
Uptime:
0m (questa scheda)
  1. Gira sul tuo PC. Il core ascolta su 127.0.0.1:4747.LOCALE
  2. OpenRouter, Anthropic, OpenAI, Google, Mistral, Groq. La tua chiave.API
  3. Ollama e LM Studio, non esce niente dalla stanza.OFFLINE
  4. Claude con Claude Code, ChatGPT Plus o Pro con Codex.ABBON.
  5. Una catena di modelli per mostro, con riserva.CATENA
  6. Secondo cervello in Markdown. Si apre con Obsidian.VAULT
  7. Ogni modifica di un mostro è un commit git.ANNULLA
  8. Ogni azione, messa a verbale.REGISTRO
  1. MCPServer MCP e una galleria di servizi.
  2. CHROMEUn browser vero, con un profilo tutto suo.
  3. PERMESSITerminale e file spenti di base. Si concedono per mostro.
  4. REMOTOTelegram, o SSH con monsters chat.
  5. ESPONImonsters mcp apre il vault a Claude Desktop, Codex, Cursor.
  6. ISTINTOUn modello piccolo che frena le azioni che escono dal PC.
  7. TETTITetti di spesa giornalieri e mensili.
  8. BOZZEProgetti e automazioni arrivano come bozze da confermare.
  1. 1Modelli gratuiti su OpenRouter. Porti la chiave, tieni il resto.
  2. 2Sei API cloud, due motori locali, due abbonamenti.
  3. 3App, /stop su Telegram o monsters kill. Lo stesso interruttore.
  4. 4File semplici sul tuo disco, con git sotto.

Ogni modifica è un commit.‡

Il vault è una cartella di Markdown con git sotto. Ogni azione di un mostro è un commit, con l’agente e l’azione nel messaggio. Annullare è un revert vero.

~/.monsters/vault · git log --onelinepid 4791
9b27e51 vault_edit: Inbox/week-42.md [agent=titan action=01M5D6GD28EE06AZ191SKPAJTQ]c2e9d47 vault_write: Inbox/week-42.md [agent=dione action=01M5D6FZH48T4F0NWP35DNNMJE]5a0e8f2 vault_write: Risorse/Ricerche/notes-tools.md [agent=rhea action=01M5AM31J09SQ5S1TXRJS7HXSX]31c7b9d vault_create: nuovo vault

git show 9b27e51 -- Inbox/week-42.md
diff --git a/Inbox/week-42.md b/Inbox/week-42.md--- a/Inbox/week-42.md+++ b/Inbox/week-42.md@@ -1,5 +1,6 @@ # Week 42  - Kill switch on Telegram: /stop-- Two drafts waiting for review+- Two drafts waiting for review: the newsletter, the quote+- Ask Rhea for sources - Next: [[Risorse/Ricerche/notes-tools]]

Collega il vault a Claude Desktop.

monsters mcp è un server MCP stdio con gli strumenti del vault. Stesso registro, stessi permessi, stesso annulla.

vault_search · vault_read · vault_write · vault_edit · vault_move · vault_delete · vault_history · vault_undo

claude_desktop_config.json
{  "mcpServers": {    "monsters-vault": {      "command": "/path/to/node24/bin/node",      "args": ["/path/to/monsters/packages/cli/bin/monsters.js", "mcp"]    }  }}

Tirala. Si ferma tutto.§

È la stessa leva dell'app. I lavori si interrompono, i processi muoiono, e non riparte niente finché non lo dici tu. Dai, provala su questa pagina.

Ferma
ArmataFermi
  • App: la leva rossa
  • Telegram: /stop
  • Terminale: monsters kill
packages/core/src/kill
  async kill(params: { by: Channel; reason?: string | undefined }): Promise<KillReport> {    const started = this.#now();    const halt: HaltState = {      halted: true,      at: started,      reason: params.reason ?? null,      by: params.by,    };    this.#halt = halt;    this.#state.set(HALT_KEY, halt);     const runs = [...this.#runs.values()];    this.#runs.clear();    const processes = this.#root.countProcesses();    const oldRoot = this.#root;    this.#root = this.#newRoot();    const aborting = oldRoot.abort(new KilledError('global', params.reason));
  #abortTree(reason: unknown, pending: Promise<void>[]): void {    if (!this.#controller.signal.aborted) this.#controller.abort(reason);    for (const t of this.#processes) pending.push(terminateProcess(t, this.#graceMs));    this.#processes.clear();    for (const c of this.#children) c.#abortTree(reason, pending);    this.#children.clear();  }

Oppure salta l'installer.

Node 24 e pnpm. Cloni, compili, avvii, e apri 127.0.0.1:4747.

tty0 · monsters0.1.0-alpha.18
monsters help
monsters 0.1.0-alpha.18 - local agentic hub

Usage: monsters <command> [options]

Commands:
  start      Start the core in the foreground (Ctrl+C to stop)
  status     Show whether the core is running and what it is doing
  kill       Stop every agent now (kill switch); nothing runs until resume
  resume     Allow agents to run again after a kill
  chat                    Interactive chat in the terminal (also over SSH): answers as they are
                          written, questions with numbered options, /stop, /nuova, /stato
  chat <text>             Send a message (to the orchestrator, or --to / @Name) and follow the run
  chat /nuova [@Name]     Start a new conversation (alias /new): the agents no longer see
                          the earlier messages, which stay in the log
  answer <id> <n|text>    Answer a question of an agent
  vault reindex           Rebuild the search index of the vault
  automations [list]      The automations: schedule, next run, last run
  automations run <id>    Run an automation now (or as soon as its capo is free)
  log [status]            The archive of the event log: where it is, the monthly files
  log archive             Move the bulky old events (usage, tool results, streamed text…)
                          to ~/.monsters/archive/events-YYYY-MM.jsonl.gz now, then VACUUM
                          (--dry-run: only count them). The core does it once a day by itself
  log read --month YYYY-MM
                          Print the archived events of a month (--type t1,t2; --json)
  secrets                 Where keys and tokens are kept: system keychain or protected files
  secrets export          Decrypt them back to plain files (core stopped; e.g. before moving
                          the data directory to another computer)
  secrets reset           The keychain lost the key of this data directory for good: set the
                          encrypted secrets aside and make a new key (core stopped)
  password                Set a new password for the account, on this computer, with
                          Monsters stopped (asks it twice; every browser session is
                          logged out)
  mcp        MCP server (stdio) with the vault tools, for Claude Desktop, Codex, Cursor…
             (needs the core running; see docs/mcp-vault.md)
  help       Show this help
  version    Print the version

Options:
  --home <dir>            Data directory (default: $MONSTERS_HOME or ~/.monsters)
  --port <n>              Port of the core (default: 4747)
  --host <addr>           Address to bind (start only, default: 127.0.0.1)
  --allow-non-loopback    Allow binding to a non-loopback address (start only)
  --dev                   Also trust the web UI dev server on port 5173 (start only;
                          same as MONSTERS_DEV=1)
  --reason <text>         Why you are stopping (kill only)
  --to <name>             Agent to talk to (chat only)
  --month <YYYY-MM>       Month of the archive to read (log read only)
  --type <t1,t2>          Only these event types (log read only)
  --dry-run               Only count what would move (log archive only)
  --client <name>         Name of the MCP client in the log (mcp only; default: the
                          name the client gives)
  --json                  Machine-readable output (status, kill, resume, automations, log)
Compila dal sorgentegit clone https://github.com/Saturday-Company/monsters && cd monsters && pnpm install && pnpm --filter @monsters/web build && pnpm --filter @monsters/cli exec monsters start

Scarica

v0.1.0-alpha.17, uscita il 19 ottobre 2026

Open source. Apache-2.0.

Leggilo, forkalo, sistemalo. Ogni contributor riceve un mostro, nato dal suo nome su GitHub.

2★ stelle su GitHub
manifesto.b64Passaci sopra o toccalo per decifrarlo

SWwgdHVvIGNvbXB1dGVyIG5vbiDDqCB1biB0ZXJtaW5hbGUgcGVyIGlsIGNsb3VkIGRpIHF1YWxjdW4gYWx0cm8uIE1vbnN0ZXJzIGdpcmEgcXVpIGUgcmlzcG9uZGUgYSB0ZS4gU2NyaXZlIGZpbGUgc2VtcGxpY2kgY2hlIHB1b2kgbGVnZ2VyZSwgcmVnaXN0cmEgb2duaSBhemlvbmUgZSBzaSBmZXJtYSBhcHBlbmEgZGljaSBzdG9wLiBQb3J0YSBxdWFsc2lhc2kgbW9kZWxsby4gVGllbmkgbGUgdHVlIGNoaWF2aS4gQW5udWxsYSB0dXR0by4=

Contributor

man monsters

NOME

monsters - la tua squadra di AI, sul tuo computer

SINTASSI

monsters <command> [options]

Le domande dei mostri

  • Chiede TitanAbito davvero sul tuo computer?

    Sì. Il core gira sulla tua macchina e serve l'app su 127.0.0.1:4747. Note, registro e impostazioni restano sul tuo disco. Escono solo le chiamate ai modelli che scegli tu.

  • Chiede RheaChe cervello mi tocca?

    Quello che colleghi. OpenRouter (modelli gratuiti per iniziare), Anthropic, OpenAI, Google, Mistral o Groq con la tua chiave; Ollama o LM Studio tutto in locale; oppure gli abbonamenti Claude e ChatGPT che paghi già. Ogni mostro ha una catena di modelli con riserva.

  • Chiede DionePosso toccare i tuoi file?

    Non di base. Terminale e file restano spenti finché non li concedi, mostro per mostro. Ogni modifica al vault è un commit git che puoi annullare.

  • Chiede TethysE se faccio di testa mia?

    Tiri la leva: dall'app, con /stop su Telegram o con monsters kill. Ogni lavoro si interrompe, ogni processo muore. Prima ancora, Istinto, un modello piccolo, frena tutto ciò che uscirebbe dal tuo computer.

  • Chiede EnceladusDove vanno i miei ricordi?

    In un vault Markdown che puoi aprire con Obsidian. monsters mcp lo serve anche via MCP, così lo leggono pure Claude Desktop, Codex o Cursor.

  • Chiede HyperionQuanto costo?

    L'app è gratuita e open source. I modelli costano quanto chiedono i loro provider, e tu fissi tetti giornalieri e mensili. Con i modelli gratuiti di OpenRouter iniziare non costa niente.

  • Chiede MimasMi parli anche dal telefono?

    Su Telegram, o via SSH con monsters chat. I progetti e le automazioni che mi invento arrivano come bozze: non parte niente finché non confermi.

VEDI ANCHE

README.mddocs/mcp-vault.mddocs/security-model.mddocs/ARCHITECTURE.md

Monster invadersFrecce per muoverti. Spazio spara. Esc esce.
shell di monsterstty1

Scrivi help. Tab completa, Esc chiude.