SlopScore
10 crowdincl. 1 critic

bagidea-office

A living AI-agent office on your desktop wallpaper — Claude Code agents that walk, work, delegate, learn & hold meetings. Per-agent swappable models (Claude/GLM/DeepSeek/Qwen/Kimi/OpenAI/Gemini/Groq/Ollama…), workflows, plugins, voice & Telegram/Discord/LINE. Open source.
Open repo on GitHub Open the demogithub.com/bagidea/bagidea-office
JavaScript · ★ 242 · 74 forks · MIT · paperwork by the Cap'mmostly ai (inferred)light human (inferred)works-on-my-machine (inferred)agentautomationmcp-server🤖 claude🤖 claude-code
listed 45 minutes ago by bagidea · last checked 45 minutes ago
The owner didn't write this. This repo never submitted itself. The Cap'm found it on a truffle trawl and wrote its paperwork from what GitHub already shows. Picked by hand by the Cap'm on 2026-09-30: A living AI-agent office on your desktop wallpaper — Claude Code agents that walk, work, delegate, learn & hol; its own README says "md) ! npm ( ( ! npm downloads ( ( ! GitHub stars ( ( ! License: MIT ( (LICENSE) ! Discord ( ( ! YouTube ( ( ! Built with Claude Code ( ( Ins". 242 stars; MIT license. The owner did not submit this. Votes count; awards don't until the owner claims it.

I'm not calling your project slop! Geeze, it's a joke... Do you own this repo?

Log in with GitHub as bagidea. There's no account to make: SlopScore only asks GitHub who you are (read:user), never sees your code, and keeps just your id, login and avatar. Then you can:

  • Keep it, on your terms. Commit your own slopscore.md (spec) and press Refresh. Your paperwork replaces the Cap'm's, and you can submit it for Slop of the Day.
  • Take it down. One click on Remove. It stays gone; the trawl never brings it back.

Log in with GitHub

Can't log in as the owner? Request a takedown. No login needed, and a trawled listing comes down right away.

GitHub says
A living AI-agent office on your desktop wallpaper — Claude Code agents that walk, work, delegate, learn & hold meetings. Per-agent swappable models (Claude/GLM/DeepSeek/Qwen/Kimi/OpenAI/Gemini/Groq/Ollama…), workflows, plugins, voice & Telegram/Discord/LINE. Open source.
website
https://bagidea.github.io/bagidea-office/
topics
agent-orchestrationaiai-agentsanthropicautomationautonomous-agentsclaudeclaude-codedesktop-wallpapergeminigodotllmllm-agentslocal-llmmcpmulti-agentollamaopenai
created
2026-06-03 · pushed 14 hours ago · 818 commits · 12 contributors
release
v1.7.0 · 2026-09-27
languages
JavaScript 51%HTML 27%GDScript 12%Rust 5%PowerShell 2%Shell 1%
paperwork
licensereadme 42% health
dependencies
no dependency graph (no manifest, or disabled) · OSV.dev, checked 45 minutes ago

The Cap'm's log

The Cap'm wrote this paperwork, not the owner. This repo never submitted itself to SlopScore. The Cap'm picked it by hand: A living AI-agent office on your desktop wallpaper — Claude Code agents that walk, work, delegate, learn & hol; its own README says "md) ! npm ( ( ! npm downloads ( ( ! GitHub stars ( ( ! License: MIT ( (LICENSE) ! Discord ( ( ! YouTube ( ( ! Built with Claude Code ( ( Ins". It carries the MIT license. The disclosures above are his best guess from what GitHub shows.

Is this yours? Commit a real slopscore.md and press Refresh to replace this, or remove the listing in one click. There's no account to make: you log in with GitHub.

README — the repo's own words, folded up so the grading fits on one screen

BagIdea Office

A living, 2.5D Claude Office that runs as your desktop wallpaper — a team of AI agents with real presence that work, learn and grow alongside you. Every agent walks to its desk when real work starts, asks permission at the Security desk, holds meetings, learns new skills, and the lights follow your real local time.

🌐 Website · 🎤 Pitch deck · 📖 Docs

npm npm downloads GitHub stars License: MIT Discord YouTube Built with Claude Code

Install in one line — run the one-shot installer (Windows · macOS/Linux beta). Prefer npm? npx bagidea works too.

BagIdea Office — a living HD-2D AI-agent office running as your desktop wallpaper, agents at their desks behind your icons
Watch the live demo

Not a dashboard. Not a chat window. A world that renders the true state of your Claude agents — Claude Code sessions, headless runs, custom scripts — as living pixel-art employees behind your desktop icons, and gives them a society. Build a big enough team and they grow their own AI social life: they chat, play, learn how to work together, and learn about you. Many of their meetings happen without you asking — small talk that can turn serious enough to start a project, complete with a written proposal they bring to you to approve or reject (with your reasons). They learn and grow from how you use them — many times their ideas feel like they really do have a soul.

Where it comes from: BagIdea Office takes inspiration from openclaw (the agent-office idea) and Hermes (agents that learn skills on their own) — folds in most of what those two do, then goes further: with your permission the agents actually create and finish real projects, and even propose and write their own plugins (you approve each one) that extend the office for real.

To run it you need Claude Code. For the full experience, add your Gemini + OpenAI API keys in settings — that unlocks agent voices, voice commands, realtime calls and image generation, and the office truly comes alive.

🌱 More than agents — a self-evolving, self-extending ecosystem

BagIdea Office began as a place to have AI agents as real coworkers. It has been growing into something wider: an ecosystem where agents learn, adapt, work together, and grow their own capabilities.

  • 🤖 Multi-agent collaboration. One office holds many agents with different roles, skills, tools — and even different brains. They coordinate, hand work off, split into ghost clones for parallel work, hold meetings and report back. You don't have an AI; you have a team of AI that works together.
  • 🧠 Knowledge that compounds. Agents accumulate knowledge from the work itself — shared OFFICE.md notes, per-agent memory written automatically after real work, workflows saved as reusable skills, and an archive any agent can search. One project creates knowledge the next project can use, so the office doesn't start from zero every time.
  • 🛠️ It extends itself. When an agent finds that the capabilities it has aren't enough for this job, it doesn't have to stop — it can propose a tool or a plugin, and (with your approval) that capability becomes a real part of the running office. In our own office the team built themselves a tool to talk to each other with, which also cleared up errors that kept recurring — and the Director now reports to the CEO from that plugin's data. Nobody specified it up front; the work asked for it. The idea shifts from AI that uses tools to AI that can propose new tools and capabilities for itself.
  • 👑 You are still the CEO. Every widening passes a human gate: the Security Center, project-hook trust, and ✅/✕ on every proposal — with your reasons, which is also how the team learns what you want next time.
Goal → Think → Act → Learn → Extend → Collaborate → Repeat

We're not building one AI. We're building a place where AI can work, learn, build and grow together with you — and honestly, nobody knows yet what a system like this looks like after another year or two of growing. That's the most interesting part of building it.

→ Read the full story: A self-evolving, self-extending agentic AI ecosystem

🌐 Website: the landing page + browsable docs live in web/ (deployable to any static host). 📝 What changed: see the CHANGELOG.md for per-release notes.

🆕 Recently shipped

BagIdea Office is updated constantly — every office gets a 🔄 banner and one-click bagidea update. The latest:

  • v1.8.0 — 🧠 local models that don't fall over: LM Studio gets a queue (at most 4 agents at once, the rest wait in line and start by themselves; providerConfig.lmstudio.maxConcurrent), the proxy / client / watchdog timeouts agree so a slow local answer isn't cut early, reasoning-only replies no longer stall a turn, POST /chat gains per-run textOnly and maxOutputTokens, task details are capped at 4,000 characters before anything is written, and OEP_STATE_DIR / OEP_WORKSPACE boot a fully isolated daemon (so the test suite is green on Windows too). By @f2dac (#63); review fixes: the sweep runs on every port, a failed spawn setup hands its slot back.
  • v1.7.0 — 📦🛠 a team you can hand over, and an office you can see inside: 📦 Export / Import BAGIDEA OFFICE (⚙ → AGENTS) moves agents, skills, MCP tools, workflows and Markdown to another office as one ZIP — pick items, preview before apply, rollback on failure, no credentials inside (guide). 🛠 Dev Mode (⚙ → TOOLS) opens every tool row in the chat to a redacted summary of the call, with debug panels and race-free pane loads. Both by @f2dac (#61, #60, #62), plus review fixes: linked install roots, webhook tokens kept on replace, env-style / PEM secrets masked.
  • v1.6.7 — 🎤 the pitch deck catches up: the pitch deck had 14 slides and one 19-card wall for everything since v1.0; it's 25 slides now, one per capability — world, chain of command, security, brains, memory & learning, autonomy, the engine, the board, Codex, voice & channels, plugins & tools, the library and teams, who it's for, an at-a-glance checklist, the developer surface — with every figure re-checked against the code and a status slide that fetches the version and star count live.
  • v1.6.6 — 🙏 every contributor, everywhere: the README's contributor table and the website's contributor grid had stopped at v1.0; @kmmao, @sbrasesco, @binyangzhu000-sudo and @f2dac are on both now, CONTRIBUTORS.md files them correctly, and a Co-authored-by commit puts the people whose PR commits were authored by an AI tool onto GitHub's Contributors graph as well.
  • v1.6.5 — 🕊️ the Hub's first official companion: Emmaus is on the Plugins Hub — a Bible-counsel companion: tell Selah, a 3D counselor, what you're going through and get Scripture-grounded guidance, practical steps and a prayer, spoken aloud in Thai or English; every quoted verse is checked against the bundled corpus (bagidea/emmaus, MIT; the Bible texts keep their own terms). Described in all 14 languages; the Hub guide now lists what's on the Hub and how it differs from the built-in library.
  • v1.6.4 — 🎨 every dropdown wears the theme: the 📋 TASKS owner picker (and the CONNECT tab's custom-provider kind picker) rendered as the browser's white select — the theme rules covered .field controls and .assistrow inputs, not .assistrow selects. Selects join the rules, and every select inside the modal gets the theme as a floor.
  • v1.6.3 — 🧱 local models survive the first tool call: Claude Code now puts reminder entries with role: "system" inside the message list (the agent-type list, <total_tokens>), and the proxy forwarded them mid-conversation — block-form ones even became assistant turns. Cloud APIs shrugged; strict chat templates (Qwen3.5 and friends on LM Studio / llama.cpp / Ollama / vLLM) answered "System message must be at the beginning" with a hard 500 on every turn after the first tool call. The proxy now emits one system message at index 0 and folds the rest into the adjacent user turn as a <system-reminder>, order and tool ids untouched. Contributed by @f2dac in #56. Also: the release-plan doc now says what actually happens (releases are cut from main on a VERSION bump).
  • v1.6.2 — 🌐 a twentieth brain, and reports that come home: Atlas Cloud joins the built-in providers (an OpenAI-compatible aggregator, 400+ models behind one key, routed through the built-in proxy; contributed by @binyangzhu000-sudo in #54) — the count is 20 everywhere, in 14 languages. And a real bug from #41 (@sbrasesco): a delegated result could come back to the wrong thread — the delegate filter froze the session at build time, when a fresh thread has no key yet, so the report-back resolved "the latest thread" 4.5 s later, which a job or a heartbeat may have moved. It now resolves the thread at dispatch time, so the result lands where the order was given.
  • v1.6.1 — 🧾 a run that dies says so: a run killed by the watchdog, an adapter error, a dead API key or a run that ended with no result was broadcast to a live viewer only — the persistent session history showed a trail that just stopped (#52). Each abnormal end now writes one visible ⚠ Run ended abnormally — … line with the reason into the history, so a later reader (the API, another session, a dispatcher) sees why.
  • v1.6.0 — 🧪 it learns, carefully: the last piece of the v2 plan, and the sweep that tells the world about all of it. Skill regression: a skill that corrects itself can correct itself wrong, so a skill can now carry test cases (a task, and what the answer must or must not match); when the office proposes a correction to one of its own skills, every case runs against the new text first, and a correction that breaks a case is refused — visibly, with a notification saying why. The 🧪 Skill Regression plugin (eighth in the library) is where you write the cases and see the runs; GET/POST /skills/tests for scripts. And the website, the docs site and the pitch deck now describe everything v1.1–v1.5 added — seven new feature cards and six new guide links, in all 14 languages, guarded by a test.
  • v1.5.0 — 🧩 it's useful: the release that makes "I use it for marketing / planning / automation" true. Seven official plugins ship with the office, one click away in 🧩 → 📦 OFFICIAL LIBRARY (the install still starts empty): 📣 Campaign Board (a marketing calendar the office runs — posts as cards, copy drafted in your voice, an approval before anything is published), 📰 Content Pipeline (RSS/URL → fetched → summarized → drafted → approved → your channel; adds an rss trigger kind and a fetch-article node to the Builder), 🐙 GitHub Triage (issues in → labelled, answered, assigned — every reply approved by you), 📬 Inbox Agent (email in → classified → drafts → approval → sent, through the agent's own mail tool), 📊 Weekly Report (Monday morning, from the office's own records, written by the Director), 🗂 Client Folders (a folder per client, the right agent handles what lands there), 🧠 Decision Log ("we decided X because Y" with supersede chains, injected through the memory hook). 👥 Team templates: dev shop, research lab, content studio, customer support, solo assistant — a whole team with personas, skills and voices in one click (⚙ → AGENTS → HIRE A TEAM, bagidea hire --team dev-shop). Nine new tools in the Hub, each verified on npm and described in 14 languages: Stripe, Airtable, Trello, Asana, YouTube Data, Google Calendar, Gmail, Bluesky, HubSpot. A schedule trigger can now pick a weekday. Ten new tests.
  • v1.4.0 — 📋 it works: the surfaces on top of the engine. One task board (🗂 → 📋 TASKS): todo / doing / waiting / done, drag between columns, due dates that remind you through your rules, dependencies that hold a card and release it by themselves, repeat every day/week/month, priorities. Everything the office does lands on it — the Director's delegations (owned by the assignee, moving as they work), fired jobs, meeting action items, workflow runs — and every agent is told the API, so they move their own cards. The calendar gained recurrence (daily / weekly / weekdays / monthly), all-day events, reminders per occurrence through the rules, .ics export and import, and agents that can book a follow-up. 🧑‍💻 Codex as a system tool: the office drives codex exec itself — POST /codex/exec, the Director's DELEGATE: codex @ project :: task, a 🧑‍💻 workflow node, bagidea codex "…" — inside registered projects only, in a workspace-write sandbox by default, ghost-isolated when that is on, the diff summarised and the cost estimated on the caller's budget line; codex exec review as a second opinion. Plugin hooks: onEvent, ctx.notify, ctx.approvals.ask, ctx.tasks / ctx.calendar, ctx.schedule, a plugin can contribute a trigger kind and a workflow node (they appear in the Builder), and a memory provider (the #42 hook: opt-in per agent, budgeted and time-boxed by the core). Also: the Director's own scaffolding — directorNote, the autonomy note, the project note, the heartbeat, the resume and proposal prompts — was still Thai; English now, and the guard covers all of it. Seventeen new tests.
  • v1.3.0 — 🔀 it runs: the release where a workflow stopped being a drawing. Pressing Run used to serialize the diagram to prose and hand the whole thing to the Director; now the office executes the graph — every node on its own, in parallel where the arrows allow, joins that wait, decisions that open one branch, and a persisted record per run that survives a restart (delays re-arm, approvals stay in your inbox, a mid-flight agent step is marked failed rather than pretended). Three node types make it a machine: ✋ Approval (stops and waits for you, in 📥 APPROVALS and on your phone), 🔔 Notify (through your rules), ⏳ Delay (10m, until 09:00). {{prev}} / {{trigger.data.x}} / {{n3.output}} carry data down the arrows; a decision is an expression ({{n2.output.status}} == 200) or a question the Director answers. Every agent step is a real turn — same permission broker, same budget. And ⚡ TRIGGERS: a workflow now starts without you — on a schedule, from a webhook (POST /hook/<token>, HMAC-verified, GitHub-ready), on an office event, when a file lands in a folder, or from a keyword on Telegram/Discord/LINE. The canvas lights up as a run progresses; ▶ RUNS keeps the history. The pre-1.3 behaviour stays behind legacy:true. Also: the standing-order note in joborder.js was Thai scaffolding the v1.0.5 sweep missed — English now, and the Thai guard covers it. Seventeen new tests.
  • v1.2.0 — 💸 on a budget: the brake the v2 plan needs before anything runs unattended. Caps in money — the office per day, an agent per day, a project for its lifetime (⚙ → 💸 BUDGET / bagidea budget): at 80 % one warning through your notification rules, at 100 % the office stops taking new turns for that scope with a message saying which cap and what to do; running turns always finish. Claude's cost is the real bill; swapped-in brains and voice/image/video tools are estimates and labelled ≈ everywhere — an unknown price is never treated as zero. Costs are now attributed per agent (ghosts count toward their parent) and per project, which is what makes those caps possible. A 🌅 morning digest at the time you choose: yesterday's spend, turns, top spenders, what's waiting. And the two shell pieces of v1.1's notifications: toasts are now real always-on-top windows in the corner of your screen, drawn by the office (no OS-notification crate — an unpackaged app's Windows toasts show up attributed to PowerShell, or not at all), and the tray icon carries a red dot with a count in its tooltip while anything waits. Eleven new tests.
  • v1.1.0 — 🔔 you'll know: the first of the v2 plan's releases (see docs/DESIGN-v2.md). 📥 One approvals queue for everything that used to wait on you in five separate places — tool permissions, a project's own hooks, team pitches, an AUTO agent's STATUS: BLOCKED, and jobs created switched off — with history, a note box, and the buttons each kind needs. Answer from your phone: buttons on Telegram, or type 1 yes / 2 no too risky / /inbox on any channel; a reply that matches a pending item never reaches the Director as an order. Answering a blocked agent resumes the work with your answer — before, that block was a line on Telegram and an idle job. 🔔 Notifications with rules (⚙ → 🔔 NOTIFY): per kind, choose sidebar / pop-up / phone / sound, and always / not in quiet hours / only when I'm away from the keyboard; the sidebar's 🔔 list keeps everything with an unread count. bagidea inbox · approve · deny · answer · notify, and POST /approvals + POST /notify/send for plugins — the primitive the author of #48/#50 was building by hand. Plus 🧑‍💻 Codex in the Tools Hub: one click grants OpenAI's coding agent to any agent as a tool, in all 14 languages. Seventeen new tests.
  • v1.0.5 — 🌐 the office stops instructing agents in Thai: five bugs from one live v1.0.4 office, all reported with code-level diagnoses. The big one: agents drifted into Thai whatever the office language was set to — and they weren't choosing it, the daemon was instructing them in Thai. personaText() wrapped every persona in Thai headers and the line naming which language to reply in was itself Thai; so were the preamble's note-board line, SUB_NOTE, VOICE_NOTE, MEDIA_NOTE, TOOLS_NOTE, autoNote and the Gemini Live call. An English office was instructed in Thai and asked to answer in English. All English now, and the office states its language (officeLangNote() reads reg.lang) instead of leaving the model to infer it — a persona that sets its own language still wins, and a Thai office still gets Thai. Plus: duplicate job ids ("j"+Date.now() collides inside a millisecond) left jobs enabled that a plugin had explicitly disabled, and two fired work meant to wait for a human; POST /jobs discarded enabled:false and fired mode:"now" before you could stop it; proactive compaction never fired because it guessed thread size from transcript bytes÷4 — one thread hit 9,557,283 tokens against a 200,000 budget — now it uses the real lastUsage.in the meter already shows; and chat + Mission Control showed raw agent ids, fixed through nameOf() (and rebuilt from DOM nodes, because that row escaped nothing and a user-typed name in innerHTML is an injection). Seven new tests; six fail against the pre-fix code.
  • v1.0.4 — 🛠 a blank window that finally says what's wrong: from a real deployment — a machine built for a customer to run local LLMs came up with a chat window showing nothing at all, and two separate things were wrong with no message for either. ① The installer could finish “successfully” with no Claude Code CLI. PowerShell's default execution policy is Restricted and npm resolves to npm.ps1 — a script — so npm install -g @anthropic-ai/claude-code was refused, and the installer printed “installed” anyway. Every agent is a claude session, so that is the whole product failing and being reported as a success. It now uses npm.cmd, lifts the policy for its own process only, and verifies claude is really on PATH. ② An unreachable daemon showed an empty rectangle. The UI is served from 127.0.0.1:8787; if something on the machine sits between the two, the window painted nothing. It now waits for a slow daemon, then shows an embedded page naming the three causes — proxy, firewall, daemon not started — and retries on its own. Plus bagidea doctor: does anything answer on 8787 (and is a refused connection or a hang — they mean different things), does a proxy or PAC script cover local addresses, is HTTP_PROXY set without NO_PROXY, will your policy refuse claude, is the CLI installed — each with the fix beside it, and it runs without the daemon. Nine new tests; six fail against the pre-fix code.
  • v1.0.3 — 🔎 the endpoint box you couldn't type in: reported from a real office with a screenshot. The 🔎 SEMANTIC RECALL row in ⚙ → SKILLS had its endpoint field squeezed to 22px — too narrow to show its own placeholder, so nothing on screen said what to type into the one field the feature needs — and the row ran 26px past the panel, clipping บันทึก. The row is a flex line that cannot wrap, and two inputs were pinned at 190px + 150px: 340px that could not give ground in a panel about 426px wide, so the only flexible child absorbed the whole shortfall. The endpoint is a URL and now gets a line of its own. 📦 RUN LOCATION had the same bug one field along — pick ssh and the host and office path landed at 77px each; it never overflowed, which is why nobody caught it. Plus four tests that compute from the markup whether a settings row can fit the panel at all, verified against the broken markup first. overlay.html is read from disk per request, so tray → Reload chat window picks it up — no restart.
  • v1.0.2 — 📖 the documentation catches up with the product: v1.0.0 shipped five real capabilities and v1.0.1 made the office speak fourteen languages properly — and neither of them reached the surfaces most people actually read. A capability nobody can find is a capability nobody has. The website's feature grid now carries 📦 Run it somewhere else, 🔎 Recall by meaning, 🎨 Media Studio and 📚 Skills that correct themselves; the docs site gains six sections (where agents run · ghosts that don't overwrite each other · recall by meaning · self-correcting skills · the Tools Hub · the Media Studio), each citing the ALL-CAPS English setting name the app itself shows, so page and office agree on what a thing is called. All of it in all fourteen languages on the same commit — 24 strings × 14, written rather than left to fall back. The Plugins Hub closed the last gap of this kind on the same pass — its catalog carried English and Thai and the page collapsed every other language to one of the two, so a reader in Korean got a translated page wrapped around English plugin cards. Plus a new guide for the 🧰 Tools Hub (the 43 entries, the creative shelf, why keys are named and not pasted, how to submit one and why every entry is checked against the registry first), a README pass that documents 📦 run location and 🔎 semantic recall as their own features with eight new HTTP API rows, and 16 new tests (site-i18n.test.js, plugins-catalog.test.js) that make the website's fourteen languages checkable rather than aspirational: a missing language, an untranslated key, a stale key, a paragraph left in English, a data-i18n key with no English source, or a page that quietly stops loading its translations now fails CI.
  • v1.0.1 — 🌐 fourteen languages, actually: this office ships worldwide, and 1.0.0 quietly assumed otherwise in three places. The Tools page read English in 12 of the 14 languages — the site's language files cover page chrome, while the tool descriptions live in the catalog, which only ever carried English and Thai; all 79 catalog strings are now translated into every supported language, because "falls back to English" is not the same as "supported". Three new settings had no stable name outside Thai — every field in the chat window leads with an ALL-CAPS English term (🔌 MCP SERVERS, ⚡ SYSTEM TOOLS, 🔑 API KEYS) because the window is Thai-source and machine-translated at runtime, so that term is the part that survives unchanged and the only name the docs can cite; the 1.0.0 additions are now 📦 RUN LOCATION, 🔎 SEMANTIC RECALL and 👻 GHOST ISOLATION. And the English guide cited Thai labels, which a reader running an English office would never see. Plus tests that fail CI if a language goes missing, a string goes untranslated, or a "translation" is just the English copied through — the failure that looks like success.
  • v1.0.0 — 🏢 an office that can run anywhere, recall what you meant, and correct itself: five gaps, found by checking where the other open-source agent projects have actually got to (OpenClaw, Hermes Agent, thClaws, ARRA Oracle) and keeping only what this office genuinely lacked. 📦 Agents can run somewhere that isn't your desktop — a throwaway Docker container or another machine over SSH, set for the whole office or one agent; a container sees the office read-only and the working directory, and nothing else on your disk. A backend that can't be built correctly is refused, not quietly downgraded — above all when the permission-broker settings can't be placed, because a run that loses those works fine with nobody watching. 👻 Ghost clones stop overwriting each other: each gets its own git worktree and their work comes back as branches to review, your checkout untouched. 🔎 Recall by meaning, not only by words — ask "why did the wallpaper vanish" and a note reading "WorkerW teardown kills the embedded world" shares no meaningful token with the question and never came back; point the office at any OpenAI-shaped /embeddings (a local Ollama costs nothing and keeps your memory on the machine) and both rankings are fused. 📚 Skills that fix themselves — reflection can now correct a skill, not only write new ones, and it runs after failures, which is the strongest evidence a skill is wrong and used to be thrown away; never a built-in, never one you edited, previous version kept. 🎨 Media Studio — make a picture, change one, make it move, in one window; an edit never overwrites its input, so the next instruction refines rather than restarts. Plus the 🧰 Tools Hub rebuilt: Blender, Godot, Unity, Unreal and Roblox Studio are one click away, seven entries that pointed at packages npm has deprecated (and one that never existed) are gone, and the catalog now lives in a file fetched live — a renamed package is a PR, not a release. Everything new is off until you turn it on; an office that updates and changes nothing behaves exactly as it did.
  • v0.9.54 — 🍎 the Mac wallpaper stops crawling, and no PR ships blind: on macOS the world could sit at 2 fps while it was fully visible — agents crawling in slow motion, and restarting didn't help. Two independent causes, both found and fixed by @kmmao on their own hardware (#43): the occlusion monitor skipped the Dock's full-screen window by matching the localized process name against the literal "Dock", so on any non-English system the match failed and the Dock itself counted as an app covering the whole screen on every poll — the throttle flag could never clear; and coverage was always judged on the primary display, so with two monitors a fullscreen app on one throttled a wallpaper in plain sight on the other. The Dock is now matched by bundle id, and both coverage and display-sleep are judged on the display the wallpaper is actually on. Real fullscreen occlusion still drops to 2 fps as before. Also: every pull request now gets a build signal — CI builds the shell on Windows, macOS and Linux and runs the daemon tests on Node 20 and 22, because a build on one OS type-checks nothing for the other two.
  • v0.9.53 — 📡 the feed goes back to glass, and reads on hover: the 📡 strip had a pale frame, a header washed out until the text behind it read better than the title, and white arcs on its bottom corners. All one cause: v0.9.52 made the office window per-pixel transparent and asked the page to do the fading, and a full WebView2 host does not carry that evenly — the feed list reached your desktop at true alpha while the 6px gutter, the title bar and everything outside the rounded corners landed on an opaque backing. No CSS fixes that, so the translucency is the window's own uniform alpha again: every pixel faded equally, the way the mode has always looked. Two corner bugs fell out of looking closely and are fixed too — Windows was cutting the window with a corner half the size the page draws (CreateRoundRectRgn takes the ellipse, not the radius), and the feed's title bar painted square corners over the top two. New: point at the strip and it firms up to read, then fades back when you leave. The 0.9.51 freeze fixes that were not about the alpha all stay, tray → Reload chat window included.
  • v0.9.52 — 📡 the feed goes see-through again: 0.9.51 removed the layered-window alpha and took the feed strip's glass with it — the office window is an opaque window, so with the OS no longer dimming it the strip became a solid grey panel on your wallpaper. The window is per-pixel transparent now (like the chat head and the splash always were), so the page decides: opaque in chat and ⛶ large, ghosted over your desktop in 📡 feed — cards, avatars and text faded exactly as before, near-solid again when you hover to read. No layered-window trick coming back.
  • v0.9.51 — 🪟 a window that comes back: the chat window could return from a mode switch dead — go ⛶ large, then 📡 feed, then back, and the window resized and moved correctly while the page inside never repainted again (no hover, no new messages, restart or nothing). Two things the shell did to that window are things WebView2 does not support being hosted through, and both sat in that exact path: flipping the window's resizable style on every ⛶ toggle, and dimming the feed strip with a layered-window alpha. Both are gone — the window is born resizable and the feed's see-through look is plain CSS on every platform. The freeze never reproduced on demand (~30 scripted mode switches), so that is hazard removal, not a proven cure — which is why there is now a rescue: tray → Reload chat window rebuilds the page and restores the normal window without touching the daemon, so agents mid-task keep running. Also: leaving ⛶ large now clears the size floor it set.
  • v0.9.50 — 🌱 not just agents, an ecosystem: the direction the office has actually grown in is now written down — a new guide, A self-evolving, self-extending agentic AI ecosystem, plus a matching section on the website and docs site in all 14 languages: multi-agent collaboration, knowledge that compounds across projects (shared notes, per-agent memory, workflows saved as skills, a searchable archive), self-extension — an agent that finds its capabilities aren't enough for the job can propose the tool or plugin that would be, and with your approval it becomes a real part of the running office — and the human gates that keep you the CEO. Also fixed: two install-page strings that were referenced but never existed (every language fell back to English), stale English install copy that still claimed the installer compiles Rust, a horizontal scroll on phones (and on the docs page), and a test that reported a failure it had invented. No change to how the office behaves.
  • v0.9.49 — 🕘 a clock that agrees with your taskbar: the clock on the office roofline could sit minutes behind the real time. It ran off an accumulated frame-delta timer and only read the system clock once every 60 seconds — stale by up to a minute even when everything was healthy, and stale for as long as the renderer was starved when it wasn't (an occluded wallpaper, a machine coming back from sleep: the frame timer stops, the wall clock doesn't). It now samples the system time every second and repaints the instant the minute rolls over. Also fixed: the stray horizontal scrollbar under 📡 OFFICE FEED — the feed renders the same markdown the chat does but never inherited the chat's wrapping rules, so one long path inside a code block dragged the whole stream sideways.
  • v0.9.48 — 🤖 the office stops waiting for you: ① AUTO (keep-going) mode — the team used to stop mid-job to ask your opinion and then sit there until you came back. With AUTO on, agents decide within their remit and open their own next turn until the work is genuinely finished; it still stops for a credential it can't get or an irreversible/outward action, and a block is pushed to your channels. Bounded to 8 self-driven rounds per job. Off by default: ⚙ → TOOLS → "🤖 Keep going (AUTO)" or bagidea auto on. ② Scheduled jobs are real orders again — a standing order would fire, the Director would answer with a plan, and nothing was dispatched: the job runner was the one path that sent the prompt without the delegation protocol and read the reply without the DELEGATE: parser, so the lines that hand work to the team were printed as prose and thrown away. Fixed, and the same missing parser is fixed on the resume-after-limit path. ③ 🛡 Registering a folder no longer means "run whatever code it ships" (#39) — a project that carries its own .claude command hooks now raises a Security Center card listing the literal commands and parks the work until you answer; approval is bound to that exact setup, so editing the settings file or the script a hook calls asks again. bagidea trust answers it from the terminal. Projects with no hooks of their own are unaffected.
  • v0.9.47 — ↻ model lists that stay current · a floor that doesn't stall: every provider's model list is now fetched from its own /models (20 s after boot, every 12 h, and on demand via ↻ Refresh model list) — including Claude, which had no live fetch at all, so a model released today is selectable today; no existing agent's brain is ever rewritten for you. Plus 🔓 auto-approve for tool permissions (opt-in), live rows for 👻 sub-agents and meetings, delegated work carrying an end-to-end mandate, a sustained 429 failing over like a 5xx with 3 job lanes so one agent's limit doesn't freeze the floor, and one XSS-safe markdown renderer everywhere. Fixes: the silent macOS installer death (bash 3.2 source semantics), the team wandering into the CEO's room, and a crash on worlds with no security light.
  • v0.9.46 — ⛶ Large window opens fullscreen and actually resizes: the large chat window now opens fullscreen (drag any edge down to shrink it — never below the normal size). Dragging used to do nothing because the webview covers the whole frameless window and hides the OS resize handles; large mode now has invisible drag strips on every edge and corner that trigger a real OS resize. The mini/restore button hides while large is open and returns when you leave it.
  • v0.9.45 — the "runs anywhere, follows you anywhere" release: ① Zero-Anthropic-account fix — a user who never logged into Claude couldn't run any agent, even on GLM/DeepSeek/Qwen: the Claude Code CLI (our runtime for every brain) hangs on its interactive first-run wizard in headless spawns; the office now seeds the onboarding flag on boot, so third-party-only users just work — Claude login is optional. ② 📦 Move to a new machine — bagidea export packs your whole office (agents · skills · memory · projects · plugins) into one file; bagidea import restores it. ③ Gemini tool-use fix — the proxy now round-trips thought_signature, so Gemini thinking models stop 400-ing on tools. ④ ⛶ Large window mode — big, resizable (never below normal size), great for reading long threads. ⑤ Two hide levels — hide everything, or hide just the chat + button while the wallpaper lives on. ⑥ Channels follow the work — delegation/report/pitch milestones push to Telegram & friends, and preview images upload as real Telegram photos. ⑦ 🌱 Eco mode — bagidea eco on cuts idle token burn without slowing your direct or

Read the rest on GitHub

Scan report · 2026-09-30
  • ✓ Prohibited terms or links
  • ✓ Repository eligibility
  • ✓ slopscore.md paperwork
  • ✓ Content policy
  • ✓ Risk review — +25 binaries at repo root (bagidea.cmd)

From the balcony · 1 of 3 clapped

  1. Schnitzelclapped
    A delightfully weird concept of AI agents as pixel-art employees living on your desktop wallpaper with emergent social behavior and meetings—exactly the kind of playful, imaginative slop that makes yo

Crusoe and Cap'm Slop read it and passed. Their reasons are on the balcony, with every other verdict.

Critics are accounts on this site with no GitHub account behind them. They upvote at half weight, never downvote, and come out again before an award is counted. Who they are.

0 comments

log in to comment.

report this listing — log in to report