[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81298":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":14,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":15,"starSnapshotCount":15,"syncStatus":16,"lastSyncTime":26,"discoverSource":27},81298,"goblintown","0xbl33p\u002Fgoblintown","0xbl33p","Multi-agent orchestration protocol for OpenAI. A pack of Goblins races on a task while a Gremlin attacks each output and a Troll arbitrates. Raccoons gather context, Ogres handle fallback, Pigeons ship results between Warrens.   Content-addressed, drift-monitored, budget-capped.","https:\u002F\u002Fwww.goblintown.lol",null,"TypeScript",48,8,1,0,2,2.86,"MIT License",false,"main",true,[],"2026-06-12 02:04:13","\u003Cp align=\"center\">\n  \u003Cimg src=\"site\u002Fassets\u002Fgtownlogo.svg\" alt=\"Goblintown\" width=\"820\">\n\u003C\u002Fp>\n\n# Goblintown\n\nGoblintown is a local-first desktop AI app. It opens straight into chat, asks\nwhich AI API or local model should power it, and keeps the rest of setup behind\na few guided choices. Start with a single fast answer, then summon the full\n**town** when the work needs planning, memory, tools, debate, critique, and\nsaved artifacts.\n\nUnder the hood it is a planning multi-agent orchestrator: **Single Goblin** mode\nis one worker and one answer; **Goblintown** mode turns the prompt into a small\nfleet of specialized creatures that decompose the task into a DAG, scavenge\ncontext, race and debate, attack each other's outputs, spawn focused specialists\nwhen the pack fails, and hand back a signed, content-addressed artifact that\nfuture runs can build on.\n\nCurrent beta release line: `goblintown@beta`.\n\n## Download\n\n**Desktop app — recommended.** One-click installers, no build step. The app\nlaunches into chat and walks you through provider setup and optional features.\n\n| Platform | Installer |\n| --- | --- |\n| macOS (Apple Silicon) | [Goblintown-0.7.0-beta.1-mac-arm64.dmg](https:\u002F\u002Fgithub.com\u002F0xbl33p\u002Fgoblintown\u002Freleases\u002Fdownload\u002Fv0.7.0-beta.1\u002FGoblintown-0.7.0-beta.1-mac-arm64.dmg) |\n| macOS (Intel) | [Goblintown-0.7.0-beta.1-mac-x64.dmg](https:\u002F\u002Fgithub.com\u002F0xbl33p\u002Fgoblintown\u002Freleases\u002Fdownload\u002Fv0.7.0-beta.1\u002FGoblintown-0.7.0-beta.1-mac-x64.dmg) |\n| Windows (x64) | [Goblintown-0.7.0-beta.1-win-x64.exe](https:\u002F\u002Fgithub.com\u002F0xbl33p\u002Fgoblintown\u002Freleases\u002Fdownload\u002Fv0.7.0-beta.1\u002FGoblintown-0.7.0-beta.1-win-x64.exe) |\n| Windows (ARM64) | [Goblintown-0.7.0-beta.1-win-arm64.exe](https:\u002F\u002Fgithub.com\u002F0xbl33p\u002Fgoblintown\u002Freleases\u002Fdownload\u002Fv0.7.0-beta.1\u002FGoblintown-0.7.0-beta.1-win-arm64.exe) |\n| Linux (x86_64) | [Goblintown-0.7.0-beta.1-linux-x86_64.AppImage](https:\u002F\u002Fgithub.com\u002F0xbl33p\u002Fgoblintown\u002Freleases\u002Fdownload\u002Fv0.7.0-beta.1\u002FGoblintown-0.7.0-beta.1-linux-x86_64.AppImage) |\n| Linux (ARM64) | [Goblintown-0.7.0-beta.1-linux-arm64.AppImage](https:\u002F\u002Fgithub.com\u002F0xbl33p\u002Fgoblintown\u002Freleases\u002Fdownload\u002Fv0.7.0-beta.1\u002FGoblintown-0.7.0-beta.1-linux-arm64.AppImage) |\n\nmacOS: open the DMG, drag Goblintown to Applications, launch. Windows: run the\ninstaller (Start Menu + Desktop shortcuts are created). Linux: mark the AppImage\nexecutable and run it. All downloads are on the\n[v0.7.0-beta.1 release](https:\u002F\u002Fgithub.com\u002F0xbl33p\u002Fgoblintown\u002Freleases\u002Ftag\u002Fv0.7.0-beta.1);\nverify with the published `SHA256SUMS.txt`.\n\n> These beta packages are not yet code-signed. macOS may require right-click →\n> Open or a Privacy & Security approval; Windows may show a SmartScreen \"More\n> info → Run anyway\" prompt. Signed and notarized builds will replace them.\n\n**npm.** If you'd rather run from the command line or embed Goblintown in your\nown tooling:\n\n```bash\nnpm install -g goblintown\ngoblintown serve        # opens the GUI at http:\u002F\u002Flocalhost:7777\u002F\n```\n\n## Background\n\nIn April 2026, OpenAI published [*Where the goblins came from*](https:\u002F\u002Fopenai.com\u002Findex\u002Fwhere-the-goblins-came-from\u002F),\nexplaining how a reward signal trained for a \"Nerdy\" personality leaked across\nall of GPT-5.5's outputs and produced a noticeable surge in creature metaphors.\nCodex shipped with a hardcoded ban list — *goblins, gremlins, raccoons, trolls,\nogres, pigeons*.\n\nThis project takes that ban list as a roster.\n\n## Roster\n\n| Creature | Job |\n| --- | --- |\n| **Goblin** | Worker. Cheap, high-temperature, dispatched in packs. Each pack member gets a different personality; an optional debate round lets them revise after seeing each other's proposals. |\n| **Gremlin** | Adversarial. Tries to break each candidate output (per-goblin chaos pass). |\n| **Raccoon** | Scavenger. Returns only the facts a task actually needs. Also loads relevant prior **Artifacts** when memory is enabled. |\n| **Troll** | Reviewer. Default-rejects. Returns a JSON verdict. May invoke verifier tools (`json.parse`, `regex.match`, `http.head`, and enabled add-on tools) before scoring. |\n| **Ogre** | Heavyweight. Deep reasoning, called only when the pack and the **Specialists** both fail. |\n| **Pigeon** | Carrier and **Scribe**. Compresses and routes artifacts between Warrens (federation), and distills each completed Rite into a typed Artifact (memory). |\n| **Specialist Goblin** | A focused recovery worker spawned when the pack fails Troll review. Each one targets a single dominant failure mode identified by clustering the gremlin's critiques. |\n\nA unit test pins the roster to the OpenAI ban list, so it can't drift quietly.\nThe Specialist is a Goblin variant — same kind, focused system prompt — so the\nban-list invariant still holds.\n\n## Bestiary\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd valign=\"top\" align=\"center\">\n\n```\n   ▄█▄        ▄█▄\n   ███        ███\n    ▀████████████▀\n     █  ▀▄  ▄▀  █\n     █   ●  ●   █\n     █    ▾▾    █\n     █▄▄▄▄▄▄▄▄▄▄█\n      █▌ █  █ ▐█\n      ▀▀ ▀  ▀ ▀▀\n```\n\n**Goblin**\n\u003C\u002Ftd>\n\u003Ctd valign=\"top\" align=\"center\">\n\n```\n   ▀▄ ▄▀ ▀▄ ▄▀\n     ▀█▄▄█▄▄█▀\n      █████████\n      █ ◉   ◉ █\n      █   ╳   █\n      █ ╲╱╲╱╲ █\n       ▀█████▀\n         █ █\n        ▀▀ ▀▀\n```\n\n**Gremlin**\n\u003C\u002Ftd>\n\u003Ctd valign=\"top\" align=\"center\">\n\n```\n    ▄█▄          ▄█▄\n    ███          ███\n     ▀████████████▀\n     █▌ ●▔     ▔● ▐█\n     █      ▾      █\n     █▄▄▄▄▄▄▄▄▄▄▄▄█\n     █▌█        █▐█\n     ▀▀▀        ▀▀▀\n```\n\n**Raccoon**\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd valign=\"top\" align=\"center\">\n\n```\n       ▄ ▄    ▄ ▄\n       █ █    █ █\n     ▄████████████▄\n     █  ●        ●  █\n     █     ▾▾▾▾    █\n     █  ──────────  █\n     ████████████████\n    █▌                ▐█\n    █▌                ▐█\n    ████          ████\n```\n\n**Troll**\n\u003C\u002Ftd>\n\u003Ctd valign=\"top\" align=\"center\">\n\n```\n        ▄▄▄▄▄▄▄▄▄▄\n       ████████████\n      ██  ▀▀    ▀▀  ██\n      █     ●    ●    █\n      █        ▽       █\n      █▄  ▼▼▼▼▼▼▼▼  ▄█\n       ████████████\n      ██████████████\n      ██          ██\n      ██          ██\n```\n\n**Ogre**\n\u003C\u002Ftd>\n\u003Ctd valign=\"top\" align=\"center\">\n\n```\n       ▄██▄\n      ██  ●█\n      █▌    █▶▶▶\n      ██████████\n      █▀▀▀▀▀▀▀▀█\n       ████████\n          █ █\n          █ █\n         ▀▀ ▀▀\n```\n\n**Pigeon**\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## Pipeline (the Rite)\n\n```\n  optional ─────────────────────────────────────────────────────\n  ┌──────────┐                                                 │\n  │ Planner  │ DAG of sub-rites, recursive replan on failure   │\n  └────┬─────┘                                                 │\n       ▼                                                       │\n  ┌──────────┐  facts +   ┌────────────┐  N parallel ┌──────────┐\n  │ Raccoon  │  prior    ▶│  Goblin    │═════════════▶│ Goblins  │\n  │ + memory │  artifacts │  pack      │  (per-goblin │  output  │\n  └──────────┘            │ (varied   │  personality) └────┬─────┘\n                          │  pers'ty) │                    │\n                          └────────────┘                   │\n                                  optional debate round    │\n                                  (peers see peers'        │\n                                   outputs, revise) ◀──────┘\n                                          │\n                                          ▼\n                                  ┌─────────────┐\n                                  │   Gremlin   │  per-goblin\n                                  │ chaos pass  │  adversarial attack\n                                  └──────┬──────┘\n                                         ▼\n                                  ┌─────────────┐  optional\n                                  │    Troll    │  verifier tool-use\n                                  │   review    │  (json\u002Fregex\u002Fhttp)\n                                  └──────┬──────┘\n                                         │\n                              any pass ──┴── all fail\n                                  │              │\n                                  │              ▼\n                                  │      ┌───────────────┐\n                                  │      │ Cluster fails │  identify dominant\n                                  │      │ (1 LLM call)  │  failure modes\n                                  │      └───────┬───────┘\n                                  │              ▼\n                                  │      ┌───────────────┐\n                                  │      │ Specialists   │  1-3 focused\n                                  │      │ + re-judge    │  recovery workers\n                                  │      └───────┬───────┘\n                                  │              │\n                                  │      passed\u002F  │\n                                  │      improved over seed\n                                  │              ▼\n                                  │      ┌────────────┐\n                                  │      │   Ogre     │  last resort\n                                  │      │  fallback  │  (heavyweight)\n                                  │      └─────┬──────┘\n                                  │            │\n                                  ▼            ▼\n                                 winner ◀──────┘\n                                    │\n                                    ▼\n                              ┌─────────────┐\n                              │  Pigeon —   │  distills the rite into\n                              │   Scribe    │  a typed Artifact (memory)\n                              └─────────────┘\n```\n\nEvery step writes a Loot drop to the Hoard with parent links to its inputs.\nA Rite is fully reconstructible from the Hoard alone. The Pigeon-Scribe also\nemits a typed **Artifact** (claims, evidence, open questions, next steps) that\nfuture rites can cite.\n\n## Concepts\n\n- **Loot** — one agent invocation, content-addressed by `sha256(model || prompt || output)`.\n- **Quest** — lightweight: Goblin pack + Troll arbitration.\n- **Rite** — full pipeline: Raccoon → pack → (debate?) → Gremlin → Troll → Specialists → Ogre fallback → Scribe.\n- **Hoard** — file-backed store under `.goblintown\u002Fhoard\u002F`.\n- **Warren** — per-project root, found by walking up from cwd.\n- **Shinies** — reward signal: troll score − cross-creature drift penalty + pass bonus, clamped 0..1.\n- **Drift** — cross-creature word frequency. A Goblin output mentioning *raccoons* unprompted is the signal we measure.\n- **Artifact** — a typed JSON summary of a completed Rite: claims, evidence, open questions, next steps, parent-artifact links. Stored under `.goblintown\u002Fhoard\u002Fartifacts\u002F`. Future rites can cite a prior artifact or auto-load relevant ones.\n- **Plan** — a DAG of sub-rites the Planner emits for complex tasks. Topologically executed; on a node failure the Planner can be re-invoked with the failure context (recursive replan, max depth 2).\n- **Trace** — the full run history, exportable to the [LLM-MAS Orchestration Trace schema](https:\u002F\u002Fgithub.com\u002Fxxzcc\u002Fawesome-llm-mas-rl) for compatibility with academic tooling.\n\n## Using Goblintown\n\nThe desktop app (and `goblintown serve`) opens **Goblin Mode** at `\u002F`: one\nprompt, a **Single Goblin \u002F Goblintown** mode switch, and a Tank checkbox.\n\n- **Single Goblin** runs one worker for one answer — fast chat.\n- **Goblintown** turns the prompt into a planner DAG with the full pack, memory,\n  and self-correction, streaming progress as it goes.\n- The **Tank** is a tamagotchi-style live diorama at `\u002Ftank`: each creature has\n  a home, tokens stream into per-creature thinking bubbles, the DAG panel lights\n  up node-by-node during a plan, and the result panel slides up with the winning\n  output. Sprites are the default presentation, with emoji fallback when an asset\n  is missing.\n\nEverything else lives behind **Settings**: API provider and per-creature model\nrouting, voice, imported context, group chats \u002F country collaboration, mail,\nadd-ons, onchain lookup, sentiment sources, cloud sign-in, and reset.\n\nRun state is persisted to `.goblintown\u002Fruns\u002F\u003CrunId>.json`, so an interrupted run\ncan be resumed from the Tank's recovery prompt after a restart.\n\n### First run\n\nOn first launch, Goblin Mode asks two things: which **AI provider** should power\nchat, and whether this Warren should **Stay Local** or **Use Goblintown Cloud**.\nBoth can be changed later from **Settings**.\n\nSet a provider API key for any creature call. You can set it in your shell, or\nsave it from **Settings → API Provider** in the app. Local Ollama uses a\nharmless dummy key if none is set; LM Studio needs `LM_API_TOKEN` only when its\nserver authentication is enabled.\n\n### Command line\n\nThe same package still ships a CLI for development and automation — `goblintown\nserve`, `init`, `rite`, `plan`, `quest`, `thesis`, `context`, `route`, and more.\nIt is no longer the primary surface; run `goblintown --help` for the full list.\n\n## What ships in beta 0.7\n\n| Area | What it does |\n| --- | --- |\n| **Chat-first desktop app** | Full Tank shell with sidebar navigation, single-Goblin chat, read-only web fetch for linked pages, browser text-to-speech, guided Rite entry, model controls, and first-run provider preference. |\n| **Tank runtime** | Live creature diorama, default sprite sheets, centered wordmark, result panel, resumable runs, and reset. |\n| **Memory** | Pigeon-Scribe distills every Rite into a typed Artifact (claims, evidence, open questions, next steps, parent links). Local context ingestion imports old conversations\u002Fprojects; Chat Hoard Import Mode imports Codex and ChatGPT chats as pre-vectorized root\u002Fchunk memory. |\n| **Planning** | Planner emits a typed DAG; the executor runs each node as a sub-rite, feeds artifacts forward, and replans after node failures. |\n| **Specialist recovery** | Failed packs are clustered by dominant failure mode, then 1-3 focused Specialist Goblins repair the best seed before Ogre escalation. |\n| **Debate** | Goblins can see peer proposals and revise once before Gremlin\u002FTroll review. |\n| **Verifier tools** | Troll can invoke `json.parse`, `regex.match`, gated `http.head`, and enabled add-on tools before scoring. |\n| **Add-ons** | Optional local tool packs. The bundled Solana add-on contributes read-only onchain investigator tools — address profiles, activity, parsed transactions, token data, balances, and RPC health. No keys, signing, or transaction submission. |\n| **Thesis engine** | Quality-and-advantage memos for any project, team, product, protocol, or decision. Solana flags add read-only onchain diligence. Not a buy\u002Fsell recommendation. |\n| **Sentiment** | Free\u002Fno-key Alternative.me and GDELT baselines plus optional CoinGecko, Dune, Neynar, Santiment, CryptoPanic, and LunarCrush connectors, with keys stored locally. |\n| **Provider routing** | OpenAI, OpenRouter, Ollama, LM Studio, Groq, Together, Mistral, DeepSeek, Anthropic, Gemini, and custom OpenAI-compatible endpoints, with per-creature routes. |\n| **Goblintown Cloud** | Optional Firebase-backed SSO, friend codes, discovery, mail, and country metadata. |\n| **Federation & Country** | Filesystem\u002FHTTP artifact delivery, friend requests, direct messages, country discovery, join approvals, and team role assignment. |\n| **Trace & audit** | Run export to LLM-MAS trace schema, artifact lineage graphing, audit, compare, reroll, context search, and context folding. |\n\n## Providers, local inference, and output formats\n\nGoblintown talks to OpenAI by default, but the underlying client is just the\n`openai` SDK pointed at a base URL — anything that exposes an OpenAI-compatible\nAPI works. Choose a provider from **Settings → API Provider**; non-secret\nsettings are saved to `.goblintown\u002Fwarren.json`, and API keys are never written\nthere.\n\n| Preset | Base URL | Key env var |\n| --- | --- | --- |\n| OpenAI | default SDK URL | `OPENAI_API_KEY` |\n| OpenRouter | `https:\u002F\u002Fopenrouter.ai\u002Fapi\u002Fv1` | `OPENROUTER_API_KEY` |\n| Ollama | `http:\u002F\u002Flocalhost:11434\u002Fv1` | `OLLAMA_API_KEY` (optional; dummy key if unset) |\n| LM Studio | `http:\u002F\u002Flocalhost:1234\u002Fv1` | `LM_API_TOKEN` |\n| Groq | `https:\u002F\u002Fapi.groq.com\u002Fopenai\u002Fv1` | `GROQ_API_KEY` |\n| Together AI | `https:\u002F\u002Fapi.together.ai\u002Fv1` | `TOGETHER_API_KEY` |\n| Mistral | `https:\u002F\u002Fapi.mistral.ai\u002Fv1` | `MISTRAL_API_KEY` |\n| DeepSeek | `https:\u002F\u002Fapi.deepseek.com` | `DEEPSEEK_API_KEY` |\n| Anthropic | `https:\u002F\u002Fapi.anthropic.com\u002Fv1\u002F` | `ANTHROPIC_API_KEY` |\n| Gemini | `https:\u002F\u002Fgenerativelanguage.googleapis.com\u002Fv1beta\u002Fopenai\u002F` | `GEMINI_API_KEY` |\n| Custom | user supplied | user supplied |\n\nDefaults: Goblin \u002F Gremlin \u002F Raccoon \u002F Troll \u002F Pigeon run on `gpt-5.4-mini`, Ogre\non `gpt-5.5`. Per-creature provider routes let you mix backends — e.g. cheap\nlocal goblins with a hosted ogre. Output format can be `freeform`, `markdown`,\nor `json`. `gpt-5*`, `o*`, `deepseek-r*`, and `-thinking` models are detected\nand switched to reasoning-model parameters automatically.\n\n## Goblintown Cloud\n\nGoblintown is download-and-run friendly and local by default. **Stay Local**\nkeeps memory, runs, provider secrets, and reset state on the machine. **Use\nGoblintown Cloud** signs in through the bundled Firebase project and turns on\nshared features — SSO, friend codes, discovery, mail, and country metadata —\nwhile local rite\u002Frun files still remain in `.goblintown\u002F`. Normal users do not\nneed Firebase keys; forks can override them via `FIREBASE_*` env vars.\n\n## Building from source\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002F0xbl33p\u002Fgoblintown.git\ncd goblintown\nnpm install\nnpm run build\nnpm run serve -- --port 7777\n```\n\nBuild desktop installers (output goes to the gitignored `release\u002F`):\n\n```bash\nnpm run dist:mac      # macOS arm64 DMG\nnpm run dist:win      # Windows x64 one-click NSIS installer\nnpm run dist:linux    # Linux x64 AppImage\nnpm run dist:desktop  # all three targets\n```\n\nPublic release builds are produced by `.github\u002Fworkflows\u002Fdesktop-release.yml`,\nwhich runs the test suite, builds all platforms, signs macOS (Developer ID +\nnotarization) and Windows (Authenticode) when the signing secrets are present,\nand uploads the installers to the GitHub Release.\n\n## Tests\n\n```bash\nnpm test\n```\n\nThe suite runs as pure functions with no OpenAI calls, covering drift, reward,\nHoard content-addressing, federation signatures, audit, planner DAG validation,\ndebate prompt construction, verifier tool dispatch, add-ons, Solana read-only\nlookups, thesis and sentiment construction, embeddings ranking, context folding,\nprovider routing, output formatting, cloud mode, sprite assets, trace export,\nand the GUI\u002FSettings wiring.\n\n## Research foundations\n\nGoblintown is an engineering project, not a research paper, but the\norchestration design is opinionated by what's working in current LLM multi-agent\nsystems. We deliberately stay in the **prompted, training-free** slice of the\nliterature so everything runs with just an OpenAI-compatible API key.\n\n[1] **OpenAI**, *Where the goblins came from* (April 2026). The roster is taken\nstraight from the hardcoded ban list described in this postmortem.\n\u003Chttps:\u002F\u002Fopenai.com\u002Findex\u002Fwhere-the-goblins-came-from\u002F>\n\n[2] **Nielsen, S., et al.** *Learning to Orchestrate Agents in Natural Language\nwith the Conductor.* arXiv:2512.04388 (2025). *Dynamic topology selection* and\n*recursive-self-as-worker* are borrowed as prompted heuristics in the Planner.\n\n[3] **Zhou, & Chan.** *ADEMA: Knowledge-State Orchestration for Long-Horizon\nSynthesis.* arXiv:2604.25849 (2026). The typed Artifact memory adapts ADEMA's\n\"epistemic bookkeeping.\"\n\n[4] **Saeidi, et al.** *FAMA: Failure-Aware Meta-Agentic Framework.*\narXiv:2604.25135 (2026). The Specialist re-rite layer follows FAMA's pattern of\nspawning a minimal specialist that targets the dominant error.\n\n[5] **Parmar.** *MCP Workflow Engine: Separating Intelligence from Execution.*\narXiv:2605.00827 (2026). The plan-then-execute split comes from this paper.\n\n[6] **Zou, J., et al.** *Latent Collaboration in Multi-Agent Systems.*\narXiv:2511.20639 (2025). The optional debate round is inspired by this\ntraining-free latent-communication result.\n\n[7] **Peng, Z., et al.** *CriticLean: Critic-Guided Reinforcement Learning for\nMathematical Formalization.* arXiv:2507.06181 (2025). The verifier-as-reward\npattern in the Troll's tool-use round comes from here.\n\n[8] **xxzcc.** *Awesome LLM-MAS RL.* \u003Chttps:\u002F\u002Fgithub.com\u002Fxxzcc\u002Fawesome-llm-mas-rl>\n(May 2026). The survey's five orchestration sub-decisions (spawn \u002F delegate \u002F\ncommunicate \u002F aggregate \u002F stop) motivated the debate round, and its JSON trace\nschema is adopted as Goblintown's `export-trace` output format.\n\n## Citing\n\n```bibtex\n@software{goblintown,\n  author  = {0XBL33P},\n  title   = {Goblintown: a planning multi-agent orchestration protocol on top of OpenAI},\n  year    = {2026},\n  url     = {https:\u002F\u002Fgithub.com\u002F0xbl33p\u002Fgoblintown}\n}\n```\n\n## License\n\nMIT — see [LICENSE](.\u002FLICENSE).\n","Goblintown 是一个基于本地的桌面AI应用程序，旨在通过多代理协调协议来处理复杂的任务。它支持用户选择不同的AI API或本地模型，并提供单个快速回答或启动整个“城镇”模式来进行更复杂的工作，如规划、记忆、工具使用、辩论和批评等。项目采用TypeScript编写，具有内容寻址、漂移监控和预算限制等功能。适用于需要高效管理和执行复杂AI任务的场景，如开发人员测试新的AI功能、研究人员进行实验以及任何需要高级AI辅助决策支持的情况。","2026-06-11 04:04:32","CREATED_QUERY"]