Skip to content

Changelog

Released 2026-10-15.

At-a-glance summaries in chat, a chat panel beside every package page, skills your agents actually use, and the server side of the new Snippbot Desktop app.

Features

  • chat — At a glance: agents open substantial replies with a short summary card, with the full Details below it. A Details: Shown/Hidden switch in the chat toolbar sets it per chat, and a status chip shows whether the agent is done, needs your answer or is still working
  • chat — Skills in chat: agents now see a list of your installed skills and load a skill’s guide with the new skill_load tool when it fits the task. They mention when they’re using one, and suggest skills or tools that would improve what you’re building
  • packages — Chat beside package pages: every package page at /apps/<name> has a docked Snippbot chat. Pick one of your agents and it works with that page’s knowledge and tools. Cinema Creator now uses it
  • agents — The new agent_avatar tool gives an agent a profile picture, generated or from an image file, and create_agent can make one when it creates an agent. Paid image generators are used only after you approve the cost
  • chat — Default turn limit: set how many turns a multi-agent room may take per message under Settings → Chat (default 30). The room’s Cap menu shows the default’s value
  • desktop — The daemon supports the new Snippbot Desktop app: it accepts the app’s sign-in, offers Keep me signed in (90 days by default), reuses the same device when you sign in again, and adds Pair Desktop App on the Devices page. Revoking a device now also closes its open connection

Fixes

  • security — WebSocket connections require a token (see above)
  • chat — An agent’s hand-off to another agent is never dropped silently: when the turn limit or the back-and-forth limit stops it, the chat shows why. A review-and-fix loop that keeps changing files or committing can continue, and @!handle hands off on purpose
  • chat — Edit and Discard work on an “Interjecting” message until the agent actually reads it
  • chat — A queued message sends after you switch tabs, and the queue stays in step across two windows on the same chat; a note typed during a turn no longer makes an open question form disappear after a reload
  • chat — Chat Settings load again, and the split-pane tab bar follows the divider when you resize

Upgrade notes

  • Multi-agent rooms now default to 30 turns per message instead of 3, so agents can keep working through longer hand-offs. Lower it under Settings → Chat if you want shorter rounds.

Released 2026-10-13.

A fix release: the daemon comes back after a reboot, and queued chat messages are no longer lost.

Fixes

  • daemon — After a reboot, the daemon starts again instead of reporting “already running” for a process that isn’t Snippbot. A leftover daemon.pid whose number now belongs to another process is cleared, and snippbot stop, upgrade, uninstall and the Windows service never signal that other process
  • chat — Messages you queue while an agent is replying survive a page reload and a chat refreshing in the background
  • chat — A message sent just as a reply starts goes into that reply once it’s ready, instead of dropping to the queue; Edit and Discard work on it before it’s sent
  • providers — When an agent is running on its backup provider, a small badge on its avatar says so, and changing backup thresholds in Settings takes effect at once, returning an agent to its main provider when it’s below the new limit

Released 2026-10-12.

PageForge, a page editor you and your agents share; a Jobs panel in every chat; Claude sub-agents you can watch; and packages that bring their own pages.

PageForge. Build and edit web pages together with your agents. Install the @snippbot/pageforge package from the marketplace to add it to the menu.

  • Edit in place: click text to change it, select elements to style or delete them, and use Undo, which steps back through anyone’s changes, yours or an agent’s. An element inspector, a selection toolbar and automatic classes help with the details
  • Pages and files: a list or grid of pages with search and thumbnails, page files and .zip import, and a chat drawer that can pop out, keeps past chats and accepts pasted screenshots
  • Import from a URL: copy a live page, optionally signed in with a saved login or the Browser page’s session, as a snapshot copy or an AI rebuild. Each screen is compared with the original, and up to three fix rounds aim for a 98% match. Local-network addresses are refused
  • Download and export: HTML, .zip, Markdown, Word (.docx and .doc) and PDF
  • Pages open in a sandboxed frame with their own content security policy

More features

  • chat — Jobs panel: each chat lists the background jobs and Snippbot sub-agents it started, with live progress, a Kill button that really stops them, and a wake-up for the agent when one finishes
  • chat — Claude sub-agents, live: when a Claude agent hands work to sub-agents, Tools Activity groups each sub-agent’s tool calls under it with its own stats, and claude-native agents now split broad research into parallel sub-agents
  • packages — Packages bring their own pages: a package can add menu links, an Open button and its own page at /apps/<name>, with an optional background server that Snippbot keeps running inside the package sandbox. The install review shows what a package adds
  • channels — Google Chat, every message: a Space binding can hear every message, not only @mentions, after you sign in under Google Chat → Setup
  • cli — snippbot warns when another Snippbot install is earlier on your PATH, and tells you how to remove it

Fixes

  • security — A paired device’s token can now act only on its own device. Before, it could delete, revoke or redirect push for other devices. Disconnecting a phone now revokes its tokens
  • mobile — Approve and Deny buttons appear on approval notifications, which now expire on time
  • chat — Video and audio files in chat play in a player, streamed from signed links; Edit and Discard work on “Interjecting” messages; uploads from channels are attached to the agent’s turn
  • memory — memory_note never calls a model inside the tool call, and a full topic note spills into an archive topic instead of refusing new notes
  • swarm — E2E testers keep their work when they hit a budget cut-off and no longer pay for every earlier turn again; E2E evidence no longer stops fixes from landing
  • daemon — The daemon reports the port it’s actually running on, so a second daemon never hands phones or tunnels the first one’s port
  • service — On macOS, snippbot service stop waits until launchd has stopped the daemon, so stop then start works
  • marketplace — Workflows keep their resource limits when installed from a package

Released 2026-10-07.

Snipp can now act on the Dashboard for you, packages need your permission for shared keys, and chat tabs show what they’re waiting for.

Packages need your permission for keys Snippbot uses elsewhere. A package used to receive every stored key it declared — including provider keys, GitHub/Slack tokens and secrets from the daemon’s own environment — even with its Environment permission off. Now nothing is passed while Environment is off, Snippbot-internal secrets are never passed, and shared keys (provider/voice keys, custom providers’ keys, env-only secrets) need an Allow per package in Settings → Package Credentials or in the install dialog, which now names every key a package asks for. Packages that already used shared keys keep them (listed as kept, revocable); packages whose Environment permission was off stop receiving keys until it’s turned on. Package tools can no longer install packages or change permissions through the daemon’s internal token.

Package keys: closing the remaining gaps. With Isolation Off, package code now runs inside the operating system’s sandbox (macOS sandbox-exec, Linux bwrap/firejail), so it can no longer read Snippbot’s saved keys, the keychain or its permission settings directly — the per-package key permissions now hold even without containers (Settings warns where no OS sandbox exists; SNIPPBOT_PACKAGE_OS_SANDBOX=off opts out). Packages installed without the key list (bundles, the CLI, Snipp, updates) now show up under Waiting for your answer in Settings → Package Credentials with a sidebar count and a pop-up after the install. Approving an agent’s in-chat install request now reviews the package’s permissions and keys first — before, the package was installed with no permissions and its tools refused to run. HTTP tools no longer send a request without a held-back key; they explain which key and how to allow it, and they now use keys saved in Package Credentials. Package keys saved before custom credentials existed are re-filed so they appear under “Left by removed packages” after an uninstall.

Features

  • snipp — Snipp operates the Dashboard. Pick how much Snipp may do from the dock’s mode menu: Read-only, Ask for Approval, Auto (the default) or Bypass User. Snipp can manage favorites, chats, reviews and the Board, Project Developer runs, jobs, workflows, projects, packages and assets. Risky actions ask for your confirmation first, and spend caps and the kill switch apply in every mode
  • snipp — A weekday morning brief in the Snipp Help chat, and build_tool, which builds a tool for you and installs it after a review. Tools Snipp builds stay Snipp-only until you share them
  • credentials — Custom credentials. Save your own key under a name such as FAL_KEY in Settings → Package Credentials. It reaches only packages that declare that name, never agents’ shell commands, and is stored encrypted
  • chat — Status badges on chat tabs: an amber ”?” when a tab needs your answer or approval, a spinning ring while it’s working, and a green dot for an unread reply, even for tabs that aren’t on screen. The window title counts the tabs that need you
  • swarm — The Plan step shows Timeline and Canvas next to the plan document, and Define takes deadlines and milestones that the PM plans around. The PM chat opens as a drawer on narrow windows

Fixes

  • marketplace — Packages that declare network.hosts get their network permission at install, so their tools run. Before, they were installed with no grants and every tool refused to run
  • memory — memory_note is faster and safer: notebooks are tidied in the background instead of during the agent’s turn, topic notes no longer fill up and refuse new notes, near-duplicate and overlong notes are refused, and remove won’t delete every matching entry at once
  • swarm — A run no longer gets stuck on a stale lease after a reboot; E2E resumes instead of re-testing; answering an escalation resumes the run; GitHub PR runs use your gh login when no token is set; and a canvas stage gets its own budget instead of stopping at the per-agent cap
  • plan-mode — Read-only Snippbot tools work in claude-native Plan Mode
  • chat — Opening a chat tab lands on the latest messages again, and History dropdown picks open in a new tab

Upgrade notes

  • Snipp starts in Auto mode, so it carries out routine Dashboard actions you ask for without asking first. Switch it to Read-only or Ask for Approval from the mode menu in the Snipp dock.
  • Packages whose Environment permission is off stop receiving keys, and packages asking for keys Snippbot uses elsewhere wait for your Allow in Settings → Package Credentials (see above).
  • Within a minute of starting, and hourly after that, Snippbot tidies any agent notebook (NOTES.md) that’s over its limit; the original is kept in _archive_notes/. Set SNIPPBOT_OVERCAP_CONSOLIDATE=0 to turn this off.

Released 2026-10-06.

Meet Snipp, a help agent built into every install; plus Project Canvas, Swarm plans you can shape before sign-off, and a Dashboard Snipp can read for you.

Project Canvas. A project’s agent now generates a design Canvas from the plan, and the Timeline comes to standard projects too.

  • Timeline everywhere: standard projects get the Timeline in their Project Plan card, next to the plan. Once a canvas exists, the Timeline groups rows by its workstreams and uses its estimates for unstarted work
  • Canvas: the project’s agent generates a pan-and-zoom board from the plan: the timeline, a map of the app’s screens (or an architecture map for a project without a UI), and each screen now next to a mockup of what’s next. Mockups are drawn in a sandbox with no scripts or network
  • Edit, version and export: move, resize, rename, add sticky notes, hide and lock boards; your edits survive a regenerate. Restore any earlier version, and export PNG or PDF
  • Stays current: when the plan changes, the canvas says what changed and regenerates only the affected sections
  • Swarm PMs plan around your deadlines: confirmed deadlines go into the PM’s planning and revision prompts, and the Console warns when the forecast slips past one
  • Guide: Project Timeline & Canvas

Swarm plans you can read and shape before sign-off. The Plan step is now a document, not raw JSON, and you can change the plan and the team before the build starts.

  • Phased plans: the PM organizes work into ordered phases with real dependencies. The plan reads phase by phase, numbered in the order work runs, with review checkpoints where the run pauses

  • Edit before you approve: rename, reassign, re-phase, add or drop tasks, or drag a task to another phase. Regenerate from the brainstorm with a note

  • Talk to the PM: ask for changes to tasks or the team. The PM proposes, you apply. Add or remove members and the PM reassigns their work

  • Existing GitHub repos: a project folder on GitHub can run as PRs on that repo. The brainstorm room keeps to the team

  • Calmer Execution Console: one-row header, run settings in a drawer, five tabs, a task tree laid out like the plan, and more breathing room throughout

  • Sturdier planniSnipp, the built-in help agent.** Every install now has Snipp, who knows the app and answers questions about it.

  • Ask Snipp anywhere: an “Ask Snipp” button next to Report Issue opens a floating chat you can drag, resize, expand or open in Chat. It doesn’t take over the page behind it, and on a phone it opens full screen

  • Knows the app: Snipp ships with curated notes on every part of Snippbot, and links you straight to the right page

  • Drafts bug reports: Snipp drafts a report for you to review; nothing is sent until you press Submit

  • Runs the Dashboard: Snipp can read your Dashboard, favorites, reviews and Project Developer runs, and an “Ask Snipp about this” button on Dashboard cards and Board items starts the question for you

More features

  • dashboard — Honest stats: token counts stay inside the chosen period, with a split by chat, scheduled jobs, Project Developer, loops and projects; conversation counts leave out scheduled and internal chats; there’s a “Loops running” tile. Discard, reject and similar actions ask first, and unstarring can be undone
  • ui — The navbar search works: find pages, agents, recent chats, workflows and projects, or search all conversations. Press ⌘K to focus it
  • cli — New snippbot restart stops the daemon, waits for the port and starts it again; with the OS service installed, it restarts through the service

Fixes

  • security — Agents’ database_query tool can no longer write to Snippbot’s own databases, and doesn’t write at all in Plan Mode. Package tools can’t mint API keys, use the Dashboard’s favorites, review and Project Developer routes, or control the scheduler heartbeat
  • dashboard — Deleting a chat removes it from favorites, reviews and the Board, and stops any Project Developer runs and autopilot on it. Chat analysis runs as one server job, so a chat is never billed twice
  • chat — A message you interject and then Stop comes back as “Not sent” with Send and Discard, instead of being stuck on “Interjecting”
  • chat — A typed custom answer counts as answered in a question form, and finished one-agent replies stop the thinking dots
  • codex — Codex setup recognizes a ChatGPT login even when OPENAI_API_KEY is set in the daemon’s environment
  • sandbox — Contained commands work on Windows with Docker Desktop
  • cli — snippbot upgrade finishes on Windows
  • packages — Local packages uninstall without a marketplace sign-in, and uninstall actually removes their skills
  • email — A Gmail sign-in failure explains the App Password fix instead of “Connection unexpectedly closed”
  • ui — The Report an Issue window scrolls as one page with its buttons always visible; the event socket uses wss on HTTPS

Upgrade notes

  • Snipp is created on first start after upgrading, even if you already have agents. An agent you already named snipp is kept as it is.

lly unregister

  • packages — Uninstall local packages without a marketplace sign-in
  • cli — Finish snippbot upgrade from a detached helper on Windows

Released 2026-10-02.

Interject in a running reply, a Stop button that actually stops, agents that can create agents, and a Timeline for Swarm projects.

Features

  • chat — Interject. While an agent is replying, press Enter to send your message into the running reply; the agent picks it up at its next tool call, inside the same turn. Press Tab to queue it for after the reply instead. On by default for claude-native and the built-in API providers; switch it off under Settings → Chat. Codex agents still queue your message for after the reply
  • agents — Agents can create new persistent agents with the built-in create_agent tool. It takes a name, role and description, plus optional expertise, archetypes, model and tool focus, and builds the agent the same way the Awakening flow does. The tool asks you to confirm first, and it never adds the new agent to a room on its own. You no longer need the @snippbot/create-agent package
  • swarm — Project Timeline. A swarm project’s Project tab has a Timeline view that draws the plan on a calendar, by day, week or month, grouped by milestone, phase or seat. Add deadlines, milestones and your own steps; drag a task to set its dates; a task that slips past a confirmed deadline turns red
  • chat — Stop quiets background work. After Stop, jobs the agents started don’t wake them for 10 minutes: a finished job posts a one-line notice instead, and your next message lifts the mute. A banner shows “N background jobs still running · Stop them”, and Stop cancels the agent’s in-flight tool calls

Fixes

  • chat — Stop now stops the reply: the speaking agent in a room, Stop from the phone, and Stop pressed while a message is still being prepared. A message sent right after a Stop can be stopped too
  • chat — Stop ends everything the agent was running inline, such as a build, a dev server or sleep. Durable background jobs are spared. Set SNIPPBOT_STOP_KILL_TREE=off to stop only the CLI process
  • chat — Answers to a paused round go to the agent who asked, not to the next agent in the queue
  • chat — An open question form stays pinned at the bottom of the chat, and job reports, check-ins and follow-ups wait until you answer it. An agent that asks several times gets one form with one Submit
  • chat — “Stop them” marks the job as stopped, so the agent isn’t woken later with a “job died” message
  • chat — Editing a queued message uses the full width of the chat, keeps the cursor where you’re typing, and can be resized
  • chat — Numbered lists keep counting across blank lines instead of showing 1., 1., 1.
  • marketplace — Package cards show their hero images again in the daemon-served UI

Released 2026-10-01.

Linux installs work again. In 0.5.0, pip install snippbot and pipx install snippbot aborted on most Linux machines and VPSes with InvalidVersion: Invalid version: '6.8.0-45-generic'. This happened with any kernel release string that isn’t a valid version. The rules that pick dependencies for local voice, semantic memory, the browser tool and the memory map no longer compare it as one, and the release pipeline now checks this before publishing. macOS and Windows installs are unchanged.

This release also adds backup providers, chat check-ins, plan revisions for Swarm projects, and an agent that can run Swarm projects for you.

Features

  • providers — Backup providers. Give each provider a backup on the Providers page, for example Claude → Codex. Work moves to the backup near a usage limit (80% of the 5-hour window or 90% of the 7-day window, both adjustable) and moves back after the reset. If both are out, swarms and loops pause until the earliest reset instead of failing
  • chat — Check-ins. An agent that says it will look again later now does. The new schedule_check_in tool sets a durable timer that survives restarts, and the agent gets a turn when it’s due. Open check-ins show as a chip in web chat, where you can cancel them; Stop cancels them all
  • chat — Agents keep working through authorized work within a turn, with short progress updates, instead of stopping after each step. State: waiting hands the room to other agents while a background job runs, and the job’s completion wakes the agent
  • swarm — An agent can run Swarm projects for you from its chat with the new swarm_status and swarm_manage tools, and brings you only the decisions that need you: team, plan sign-off, spending and scope. Only your answer to its question card counts as approval
  • swarm — Plan revisions. Revise the plan of a running or finished project incrementally: Snippbot compares the revision with the work already done, you approve it, and it’s applied in one step without redoing finished work
  • swarm — Budget tokens. Token caps count cached input at 0.1×, so re-reading context no longer exhausts a cap. Hover any budget figure for its breakdown. The console has a tab per phase (Assembly, Planning, Build, QA, E2E, Plan revision), and the HUD suggests per-agent caps from past runs
  • swarm — Leaner team proposals: one owner per workstream, required contract seats for unowned build work, and a charter that recommends drops. More than 5 seats shows a warning

Fixes

  • security — A web page could run a tool through the daemon’s same-machine shortcut by posting to 127.0.0.1. The shortcut now refuses browsers and DNS-rebinding pages, and requires a live turn’s token (see above)
  • auth — A full disk can no longer lock every request out of the API, and old claude-native prompt logs are deleted after 3 days (SNIPPBOT_PROMPT_LOG_RETENTION_DAYS)
  • swarm — Many reliability fixes: completed work survives retries and restarts, budgets are enforced across phases with your approval needed to raise a cap, interrupted tasks resume without re-spending their budget, integration conflicts no longer trigger a mass redo, and tasks follow the plan’s detailed specs
  • swarm-ui — The plan diagram retries a failed render, reopened brainstorms keep their questions, an Agents tab shows who’s seated and why, console tabs stay reachable, and the run’s stage is shown
  • chat — Replies that end with State: continuing now continue, the web shows turns the daemon starts without a reload, every question card in a message is shown, and captioned images and chat-file videos preview
  • codex — The Codex chat budget uses the larger context window the model actually supports, and a fatal error partway through a turn is reported instead of dropped
  • marketplace — Install from File asks for permissions and stores them; before, every Python tool from a locally installed package was refused
  • tools — Large tool results come back intact, and a package’s dependency counts as installed when its distribution is
  • mcp — Testing an MCP server uses the settings in the editor, even unsaved, and reports an authentication rejection clearly
  • data-dir — Feature runtime files follow a custom data directory

Upgrade notes

  • On first start, Swarm budgets recorded before this release are converted to budget tokens once.
  • See the caution above if you have scripts or apps that call the daemon without an API key.

Released 2026-09-26.

Snippbot now installs with everything included, and agents get a notebook of topic notes that loads what’s relevant before each reply.

Features

  • install — The base install is full-featured. Semantic memory runs on ONNX Runtime instead of PyTorch, so Linux skips the ~2 GB CUDA download, and existing embeddings stay valid
  • install — Feature packs install optional pieces from inside the app, without a restart: Memory visualization from the Memory Nebula, and Chromium from Settings → Browser. Each one shows exactly what it will download before it starts
  • install — Settings → Features shows every feature and whether it’s installed. It installs the packs, and gives the exact command for each optional extra and for repairing a missing piece. See Optional features
  • install — snippbot doctor has a Features check. Every “install X” hint now gives a command that works for how you installed Snippbot and never deletes your environment, including doctor’s own advice, which used to suggest pipx install --force
  • memory — Agents keep topic notes: notes/<topic>.md files of detail such as exact values, decisions and runbooks. Before each reply, the topics that clearly match your message are loaded. Manage them under Memory → Notebook → Topic notes, and set auto-load under Settings → Memory
  • memory — When NOTES.md fills up, its detail moves into topic notes instead of being summarized away. A notebook already over its limit is consolidated in the background on the agent’s next turn; the original is kept in _archive_notes/

Fixes

  • memory — The Memory Nebula works again. Memories had not been embedded, so the map stayed empty; Generate from Chats now embeds them, no longer duplicates episodes, and runs in the background with live progress. When the map is empty it says why
  • search — The DuckDuckGo fallback works again (without a Brave key, web search returned almost nothing)
  • group-chat — Each agent resumes its own current session, so an agent no longer reloads its full pre-compaction session after a peer speaks. Codex agents in a group get their own threads, and /compact and /context work per agent
  • codex — After a compaction, the summary stays in the Codex thread instead of re-sending the agent’s whole instruction file on the next turn
  • memory — Notebook limits in the UI match the real ones (12,000 / 6,000 characters), and automatic NOTES.md consolidation in live chats now actually runs
  • marketplace — Agent installs honour a custom agents directory (SNIPPBOT_AGENTS_DIR or [agents] dir)
  • agents — Deleting a marketplace-installed agent actually deletes it (it used to report success and leave it in place), and deleting an agent that doesn’t exist returns 404

Upgrade notes

  • After upgrading, click Generate from Chats on the Memory page once to embed older memories.
  • The vector and crawl extras were removed (they installed nothing Snippbot used). Other extras still work, and voice, browser, gmail, search, devices, sandbox and tunnel are now part of the base install.

Released 2026-09-25.

A fix release for context tracking, Codex usage accounting and compaction.

Fixes

  • codex — The context ring no longer reads Codex’s cumulative thread counter as the prompt size, which inflated resumed threads (one room showed 9M tokens against a 200K window)
  • codex — Usage now records what each Codex turn billed, not the thread’s running total. Rows stored before this release stay inflated; repairing them is a separate migration
  • context — The ring follows the model a speaker actually runs on, including right after you switch an agent’s model, and measures claude-native by its last call instead of the sum of every call in the turn
  • compaction — Each speaker is weighed on its own measured prompt, never a peer’s or another provider’s; single-agent chat, group chat and the scheduler share the ring’s signal; a compacted Codex speaker starts a fresh thread so the summary actually takes effect; and each compaction pays for one summary instead of two
  • devices — The daemon no longer drops a device while a command runs longer than 30 seconds

Released 2026-09-24.

Our biggest release yet. It adds the Project Developer — a review board that tracks what each chat still owes you and can work the mechanical items itself — a Dashboard built on favorites, Social Desk for drafting and approving Mastodon and Bluesky posts, and a Codex-native provider that runs on a ChatGPT subscription. Turns are now durable across restarts and reconnects.

Highlights

  • Project Developer & Chat Review — a completion score and three-column report per chat, the Board of outstanding items keyed by content, options briefs for decisions, proposal runs where an agent works mechanical items in an isolated worktree, a per-chat heartbeat autopilot with a kill switch, and a surface check that runs the tests a diff touched
  • Dashboard — a new landing page built on stars across every surface, with media previews, job run times, and chat cards that show priority, completion, staleness and quick actions
  • Social Desk — digests, Mastodon and Bluesky publishing with an approval dashboard, an onboarding wizard, platform management, composed-length validation and a credential setup guide
  • Codex-native provider — run agents on the OpenAI Codex CLI with a ChatGPT subscription, including image generation and vision input
  • Durable turns — a file-backed turn journal recovers turns across daemon restarts, the web UI reattaches to a turn that is still running, and a generating turn is never truncated or dropped

New & improved

  • chat — Configurable workspace folder for @-mention search and agent tools; folders match in @-mentions, with path queries and drilling
  • chat — Context-usage ring in the composer, and attachments rendered in chat bubbles
  • chat — Per-speaker image delivery: each speaker receives images in the format its provider reads
  • chat — Solo view for a review hand-off
  • chat — When the speaker cap cuts a multi-agent round short, the room now says so and names who didn’t get to speak
  • files — Video, audio and archive uploads (zip and tar, with contents listed in the prompt) and higher size caps; .7z support via the optional extra: pipx install 'snippbot[archives]'
  • providers — The model catalog is the single source of truth; vision support is enforced and auto-probed for custom providers, so image turns never go to a model that can’t see them
  • image — Pluggable image backends: gpt-image via Codex alongside Gemini
  • search — Content search in the history menu and the Chat review modal
  • swarm — Team charter at the TEAM gate (roles, responsibilities, reasoning) feeds the planner; paste screenshots and attach files in Brainstorm; Stop now / Continue / Restart controls and a Run hub; run worktrees now live beside the project repo instead of the data directory
  • google-workspace — Multi-account and multi-calendar support, with OAuth and settings in the package drawer
  • push — Mobile push notifications through an Expo adapter
  • marketplace — delete-agent ships as a built-in skill package
  • pricing — The licensed marketplace discount is now 5% (was 10%), for first-party packages only

Fixes

  • chat — chat.db lock contention no longer 500s the message stream; retired model ids no longer break old conversations; hand-offs trigger on addressing an agent, not on every @mention; streaming coalesces deltas per frame instead of re-rendering every bubble per token; a mentioned agent no longer vanishes when the asker pauses the round; messages are no longer hijacked as “who’s in the room?” (use /who)
  • context — The context ring reports the real prompt size, and the compaction trigger fires again
  • swarm — One guarded start path; the final land never merges into or resets your checkout; Continue rebuilds deleted worktrees and says so when something fails; startup cleanup never deletes a run that still exists; symlinked node_modules/.venv stay out of agent commits
  • providers — Corrected vision flags that were stripping real users’ images; the custom-provider store survives concurrent opens and no longer 500s the model picker
  • daemon & service — One owner for the daemon (snippbot service start|stop|restart), the gateway respawns and wins the restart race, SNIPPBOT_DATA_DIR is honored for the pid file, user auth and marketplace data, and snippbot upgrade works on Windows
  • events — Store events are now actually published
  • security — The startup permission walk skips tool-generated trees
  • remote-access — cloudflared is found under launchd’s bare PATH
  • ui — Workspace/Files panel footer pinned with a drag-to-resize grip; the offline banner no longer latches; the Packages flyout escapes the nav rail
  • wallet — The Solana SDK is declared as the wallet extra

Released 2026-08-27.

An agent long-term memory overhaul: recall is now scoped to the speaking agent, agents can query their own episodic memory directly, and NOTES.md becomes an index with room to grow — plus a workspace file-viewer upgrade and tunnel reliability fixes.

New & improved

  • memory — Recall is scoped to the speaking agent. recall_scope gains an agent value and becomes functional: project and session had never filtered anything, and now narrow within the agent’s own episodes
  • memory — New memory_search and memory_fetch tools let an agent query its own episodic memory. Scope is bound by the executor and is not model-controllable; memory_fetch re-checks ownership per episode
  • memory — Reflection now runs for every agent that spoke in a conversation, not just the lead
  • memory — NOTES.md cap raised 4,000 → 12,000 and USER.md 3,000 → 6,000, with an automatic consolidation pass at 80% that rewrites notes into a compact index
  • workspace — A single agent-directory resolver shared by the daemon and gateway, plus snippbot agents conflicts and snippbot agents reconcile to merge duplicate workspaces
  • chat — PDF previews and working downloads in the workspace file viewer, with a maximize toggle

Fixes

  • memory — Cross-agent context bleed: every agent recalled against one undifferentiated episode pool
  • workspace — Split-brain workspaces: the daemon scanned vps/agents first while the gateway scanned ~/.snippbot/agents first, so an agent’s notes were written to one file and displayed from another. Which file was written also depended on which checkout launched the daemon
  • memory — memory_note silently failed for months once a file reached its cap; reflection collapsed cap_exceeded into a generic failure counter and surfaced nothing
  • memory — An over-cap notes file could never be trimmed: the cap check rejected removals too, so the agent could neither add nor remove
  • tools — memory_note and user_note were dropped by any allowlist tool profile, even with core tools included, so agents with a custom Tool Access profile could not write notes at all
  • memory — /api/memory/search parsed an agent_id parameter and never used it
  • workspace — Manual edits in the agent editor bypassed the character cap the agent’s own tools obey
  • remote-access — Pin cloudflared to HTTP/2 so a blocked QUIC path can’t stall the tunnel
  • chat — Scope the continuation cap to multi-agent rooms; alphabetize the gateway roster
  • chat — Don’t let an un-renderable ask_questions form lock the composer
  • chat — Alphabetize the agent roster list
  • swarm — Restore brainstorm send-memoization + mid-stream avatar attribution

Released 2026-08-19.

A reliability release focused on chat delivery: agent work now survives the end of a turn, mid-response cutoffs are closed, and reconnects no longer drop messages. Adds opt-in semantic memory search and dynamic room-roster tools.

New & improved

  • chat — Self-requeue continuations: a durable job-runner + job-done hook lets an agent’s work survive turn-end, with a /continue endpoint that delivers the continuation live to web and mobile
  • chat — Capture finish_reason and resume truncated turns in place (turn-lifecycle matrix)
  • chat — Dynamic room-roster tools for a PM/lead agent (add/remove agents), gated through ask_questions with a native confirm dialog for removals
  • memory — Ship the memory-indexer as an entry point with opt-in semantic search; promote high-signal insights into episodic memory; make the file-memory layer coherent (writable + scheduled)
  • ui — Composer no longer re-renders the whole app on every keystroke

Fixes

  • chat — Close every mid-response cutoff path across mobile and backend
  • chat — Catch up on reconnect so standby drops no longer lose delivered messages
  • chat — Never deliver empty message shells; sweep orphaned placeholders surgically (age-gated, never touching in-flight turns)
  • chat — Swallow the [[defer]] sentinel universally and never stream it
  • chat — Deliver continuation turns live to connected web + mobile clients; give continuation turns an ephemeral prompt so claude-native actually generates
  • chat — Agent-to-agent @!handle hand-offs were silently dropped in turn-capped rooms — now delivered; roster lead-gate fixes
  • chat — Per-speaker question forms + honest manual-answer; don’t let queued messages or dead-end question forms eat the user’s answers
  • chat — Stop duplicate React keys when a tool result is reported twice
  • security — CSRF-exempt the self-requeue /api/chat/continue callback
  • ui — Raise the model dropdown above the agent hover popover

Released 2026-08-08.

Adaptive Swarm graduates: it’s now on by default, gains a Collaborative Mode (agents work as a group chat), and a rebuilt execution console. This release also adds Remote Access (daemon tunneling + mobile QR pairing) and the first Insights delivery controls.

Highlights

  • Adaptive Swarm is on by default — SNIPPBOT_SWARM_ENABLED now defaults on (the git-handoff sub-flag stays off). Set SNIPPBOT_SWARM_ENABLED=0 to opt out.
  • Swarm Collaborative Mode — agents converse as a group chat: on-demand reactive turns, self-election, a peer-DM side-channel, room auto-compaction, and PM synthesis of the room into the plan.
  • Remote Access — connect the mobile app to your daemon over a tunnel with QR pairing, configured from a guided Settings walkthrough.

New & improved

  • swarm — Collaborative Mode: group-chat backbone with on-demand turns, self-elect + low-signal muting, a bounded/sanitized peer-DM side-channel, room auto-compaction, search_room_history recall, an always-in-context Project TOC, and split collaboration budget caps
  • swarm — Rebuilt execution console: one unified Console + Steering + Activity surface, live agent-stream tab, Output (workspace) browser, named-agent org-chart, durable swarm_events activity log, and Project/Agents tab consolidation
  • swarm — Kickoff: Mermaid plan graph with zoom/drag-pan, mid-run plan control (add/edit/delete tasks while steering), file attachments when steering, and clearer gate-approval cards
  • swarm — Milestone-approval gate: pause BUILD to review a milestone before continuing
  • swarm — Slot-freeing suspend/resume for TEAM & PLAN gates; frozen compute-duration rail during gate waits
  • remote-access — Daemon tunneling + mobile QR pairing, with a numbered Settings walkthrough and tunnel address learned from the pairing request
  • insights — Phase 1 delivery controls: master switch, per-channel toggles (email + in-app tray), and a 1–4 frequency slider
  • chat — Pause per-agent questions with resume and no pile-on in multi-agent turns
  • history — Search message content, not just conversation titles
  • ui — Live version chip with an update-available notice sourced from PyPI

Fixes

  • security — The loopback auth bypass now requires a direct connection
  • chat — Durable multi-agent streaming that survives client disconnect (mobile backgrounding); preserve partial streamed text when a turn is interrupted; reap orphaned “sending” ghosts + surface OpenRouter reasoning
  • thinking — Idle thinking is now opt-in and gated on chat presence, with queue removal + retention (the toggle can no longer lie)
  • tools — Keep custom_python calls off the event loop + reap the process tree; core tools read the Package-Credentials vault + repaired generate_image
  • providers — claude-native self-updates from the Anthropic catalog
  • ui — Portal Dropdown menus correctly; stop the settings request storm that trips the rate limiter; anchor the idle-thinking toggle for every agent
  • devices / push — Distinguish pairing state from WebSocket presence; give the push store its own DB file (no more devices.db collision)
  • insights — Honor the off switch (normalize user_id at the settings choke point); stop silent settings-save failures

Released 2026-07-31.

Our biggest release yet. It introduces Adaptive Swarm — a new autonomous execution mode — alongside built-in chat slash commands with reversible compaction, and a broad security & marketplace-integrity pass.

Highlights

  • Adaptive Swarm (new, opt-in) — a PM → parallel workers → QA → end-to-end execution mode for Projects, driven by a kickoff wizard (Define · Team · Brainstorm · Plan · Launch), PM-minted contract agents, and notify-with-veto. Ships behind SNIPPBOT_SWARM_ENABLED (default off).
  • Chat slash commands + reversible, searchable compaction — built-in /context, /compact, /export, /clear.
  • Security & integrity hardening — SSRF guard on by default, MCP env encrypted at rest, and the fake-success package generator removed.

New & improved

  • swarm (opt-in) — the Adaptive Swarm engine end-to-end (P0–P7): PM-led planning, parallel workers, integration smoke-gate, QA and E2E, with plan validation, graceful partial delivery, resume/edit, github_pr handoff, and a contract-agent pool. Gated by SNIPPBOT_SWARM_ENABLED (default off).
  • chat — Built-in slash commands with reversible, searchable compaction
  • chat — Server-side source filter for the conversations feed
  • chat — Multi-agent turns: deliver the user’s message to every speaker, label the human’s turns, and halt on ask_questions so each agent’s questions stay answerable
  • chat — Surface a Stop control in every mode, plus per-agent stop
  • channel-echo — Mirror app/web turns into the bound channel thread
  • monitoring — Real system health on the Monitor page (was a hardcoded stub)
  • settings — New Insights section in the Settings nav
  • thinking — Internal-model gate honors the selected Default Internal Model instead of forcing the paid API
  • files — Robust upload MIME detection: sniff magic bytes + infer from extension

Fixes

  • security — SSRF guard denies internal/loopback by default
  • security — Encrypt MCP env at rest, fix a CVE false-clean, harden validation
  • security — Log the X-Forwarded-For/trust_proxy warning once per process
  • marketplace — Repair MCP install and stop generators emitting fake-success stubs; real implementations for 6 MCP servers
  • evolution — Harden self-improvement: revert integrity, growth caps, rate limits
  • claude-native — Pin the requested model version instead of collapsing it; recover a conversation whose --resume session is gone; paragraph breaks between text blocks
  • chat — Honor the max_tokens cap in the Anthropic provider; let an explicit model pick override the agent’s preferred_model; keep swarm/lifecycle conversations out of history
  • providers — Stop OpenAI-compatible providers leaking internal kwargs
  • workspace — Wire the pending-writes lifecycle + quiet polling access logs
  • builder / skills — Render the AI package-builder plan as Markdown (not raw source); pin the approved plan into context
  • swarm (opt-in) — gate-timeout hang, execution_type reconcile, github_pr resume persistence, and the divergent-history push wedge

Released 2026-07-16.

New & improved

  • dispatch — M7 enforce: route scheduler push through PushExecutor (pilot)
  • dispatch — M7 enforce: route scheduler announce through ChannelExecutor
  • dispatch — M7 enforce: route autonomous followups through ChatExecutor

Fixes

  • channels — Bound channel sessions: Telegram/email threading + compaction cap
  • channels — Make the channel compaction cap model-aware (fraction of the window)
  • channels — Treat a channel thread like a web chat + in-thread compaction heads-up
  • channels — Receive inbound images over Google Chat
  • scheduler — Concurrency, data-integrity & time-math hardening
  • scheduler — Webhook signing secret + delivery correctness
  • scheduler — Dispatch manual triggers + cascade chains via the tick loop
  • scheduler — Eliminate orphaned-producer / dead-consumer defects across pipelines
  • scheduler — Record user-message activity directly into the heatmap
  • dispatch — Route scheduler push to DELIVER_AS_PUSH + wire PushExecutor
  • dispatch — Key push/announce enforce on run_id + treat deduped as success
  • dispatch — Flag agent divergence in shadow mismatch detection
  • dispatch — Resolve remaining fresh-audit follow-ups: idempotency, audit, timestamps
  • ui — Remove the vestigial “Per-Source Shadow Mode” card from dispatcher settings
  • security — Pin the resolved IP for outbound webhooks (closes a DNS-rebind TOCTOU)
  • hooks — Atomic delivery claim + in-flight dedup

Released 2026-07-15.

New & improved

  • channels — Surface per-channel agent picker on adapter Setup tab
  • sandbox — Duplicate “Save Changes” in the page header (above the fold)
  • channels — Thread the streaming placeholder into the inbound thread

Fixes

  • chat — Address the personal user, not the platform account owner
  • channels — Key Google Chat DMs per-thread too (real token-blowup fix)
  • channels — Scope channel conversations per-thread to stop token blowup

Released 2026-07-13.

New & improved

  • sandbox — Overhaul isolation: profiles, a real Safe mode, and a correct file model
  • sandbox — Gate claude-native Bash through the CLI permission tool (Phase 1)
  • sandbox — Contain claude-native Bash + fail-close custom_python (Phase 2)
  • sandbox — Surface claude-native gating in the UI + audit hardening (Phase 3)
  • sandbox — Unify the master switch + contain plan/approval bash
  • sandbox — Containerize installed custom_python tools
  • sandbox — Strict daemon-only loopback for contained custom_python (opt-in)
  • sandbox — Make custom_python containment a UI toggle (config-backed, with backfill)
  • loops — Live execution visibility, browser verification & post-run audit
  • loops — Per-loop Working Dir + open-folder button + audit restart-robustness

Fixes

  • sandbox — Revive pooled containers + honest per-path containment docs
  • sandbox — Pooled containers now honor network.enabled + workspace mounts
  • loops — Event-driven active-run seeding (zero idle polling) + WS retry-forever

Released 2026-07-09.

New & improved

  • channels — Single-bubble streaming for the 6 remaining editable adapters
  • channels — Generalize single-bubble streaming into a capability framework (+Slack)
  • channels — Branded logo header for Google Chat + single streaming answer bubble
  • channels — Stream Google Chat replies into the placeholder in bursts

Fixes

  • chat — Make queued-message dispatch atomic to kill re-enqueue loop
  • usage-limits — Classify Claude CLI “session limit” wording + surface reset time
  • chat — Queue multiple messages during streaming without loss or loops
  • settings — Cover all sections in export/import/reset + Account & Access UI
  • channels — Return inline “Thinking…” in the Google Chat webhook body
  • channels — Auto-reload the channel adapter when it’s running stale code
  • channels — Google Chat “not responding” — instant ack + live thinking indicator
  • dev — Strip editable-install shadow + ship google-auth for Google Chat

Released 2026-07-05.

New & improved

  • usage-limits — Universal LLM usage-limit / balance-low warnings
  • tasks — Durable background tasks (behind SNIPPBOT_DURABLE_TASKS_ENABLED, default off)

Fixes

  • channels — Ngrok tunnel resilience — stable URL + single-agent election
  • tasks — Bind durable-task sub-agents to the conversation workspace

Released 2026-07-05.

New & improved

  • browser — Save screenshots to host + high-DPI/large-viewport capture

Fixes

  • channels — Stream webhook replies so follow-ups aren’t truncated

Released 2026-07-03.

New & improved

  • scheduler — Literal-output jobs (deliver prompt verbatim, no LLM)
  • channels — Autostart tunnel via ngrok CLI when pyngrok is absent
  • ui — Compact agent cards + grid/list view toggle on AgentsPage

Fixes

  • memory — Notebook dropdown z-index, proposal dedup, sticky agent
  • scheduler — Default literal jobs to raw delivery so text isn’t wrapped
  • channels — Detect running adapter via socket probe, not psutil
  • providers — Don’t wipe the model catalog on a failed refresh
  • chat — Stop claude-native silently downgrading unmapped models to sonnet
  • chat — Resume claude-native sessions from their original cwd
  • chat — Render agent-generated files inline when no project is linked
  • channels — Accept Google Chat App-URL (OIDC) webhook tokens
  • providers — Make model-catalog auto-refresh failure-aware + add 12h cadence
  • chat — Default generated files to the chat session folder
  • agents — Make DELETE /agents idempotent + remove the agents DB row

Hardening

  • channels — Adapter detection via /health (identity check, off the event loop)
  • channels — Tunnel lifecycle: shutdown teardown, own-stdout URL parsing, start lock
  • channels — Bind Google Chat webhook audience to the configured URL + cache certs

Released 2026-06-30.

New & improved

  • loops — Label the Goal inputs in the create drawer + info popovers
  • loops — Template gallery UI — browse, run, and customize built-in loops

Fixes

  • awakening — Create the agents DB row at awakening, not next restart
  • bounties — Add missing bounty_bids.rejection_reason column (migration 073)

Released 2026-06-24.

New & improved

  • model-router — Skip unconfigured/unserveable provider tiers when routing
  • loops — Per-loop model selector + fix create-drawer layout/buttons
  • loops — Autonomous goal-seeking loops, Phases 1–4

Fixes

  • ui — Clarify why Report an Issue submit is blocked

Released 2026-06-22.

Fixes

  • ui — Add missing ‘login’ key to AccountStep brightnessMap
  • awakening+setup — Make the Windows setup awakening work end-to-end
  • marketplace — Default daemon to prod Singularity registry out of the box

Released 2026-06-21.

Fixes

  • Bundle awakening into wheel + 4 install/awakening hardening fixes
  • daemon — Allow issues.snippbot.com in CSP connect-src so bug reports submit
  • issues — Deploy issues.snippbot.com + fix the “Failed to fetch” bug-report error

Reliability fixes for the first-run, service, and upgrade paths — especially on Windows.

  • New snippbot upgrade command — upgrades from PyPI with cache-busting built in (defeats pip’s stale-index problem), so you never need to pass pip flags by hand.
  • snippbot service install on Windows no longer requires Administrator — it installs a per-user Startup-folder launcher that starts the daemon hidden at logon (Task Scheduler needed elevation on many machines).
  • snippbot uninstall now removes the Windows / macOS autostart (previously only systemd was torn down, leaving a dangling autostart).
  • snippbot uninstall --purge and snippbot reset now honor SNIPPBOT_DATA_DIR / a configured data_dir instead of assuming ~/.snippbot.
  • snippbot setup no longer hangs on Windows (daemon output is routed to a log file instead of an undrained pipe) and is more robust to transient errors while waiting for the server.
  • Setup network check is now advisory (a warning, not a hard block) so you can set up offline or with a non-Anthropic provider.
  • snippbot start correctly detects a free port when binding IPv6 (server_host = "::") and shows a clickable loopback URL instead of http://:18781.
  • --purge reports a partial removal honestly instead of falsely claiming success when files are locked.

The first public release of Snippbot. The self-hosted daemon ships as a single PyPI wheel (pipx install snippbot) with the full UI bundled in. Everything below is included.

Core daemon & UI

  • Self-hosted daemon (Starlette + uvicorn) serving the API and bundled React UI on one port
  • React UI with Aurora dark theme
  • Streaming chat over SSE
  • Anthropic, OpenAI, and Gemini provider support
  • API key and session token authentication
  • SQLite storage
  • Browser-based setup wizard, plus snippbot start/stop/status/config/setup/doctor/reset and snippbot service install for OS-level service management

Agents, projects & execution

  • Agent archetypes with distinct personalities and per-agent workspaces
  • Multi-agent chat selection
  • Permission tier system (Sandbox → Unrestricted)
  • Project → Phase → Task hierarchy with DAG execution and dependency resolution
  • Plan approval flow and real-time execution status in the UI
  • Sub-agents (researcher, executor, reviewer, planner, communicator, aggregator, coordinator), nestable up to 3 levels, with result aggregation strategies

Scheduler

  • Cron, interval (every), and one-time (at) job types
  • Natural language schedule parsing
  • Job chains and conditions, with auto-pause after consecutive failures
  • Calendar view and activity heatmap in the UI
  • IMAP email integration as a scheduler trigger
  • Run output modal for viewing job results inline

Memory

  • Episodic memory with FTS5 keyword search
  • Vector embeddings for semantic similarity search
  • Knowledge graph entity extraction
  • Automatic consolidation and clustering
  • 3D nebula visualization in the Memory UI

Workflows

  • Visual DAG editor powered by React Flow
  • 7 step types: HTTP request, script, agent task, condition, loop, wait, webhook
  • Workflow templates and versioning
  • Parallel branch execution

Channels & multi-platform messaging

  • Channel adapter system with support for Slack, Discord, Telegram, WhatsApp, Microsoft Teams, and Google Chat
  • snippbot channel start/stop/status/list CLI commands
  • Channel bindings to route incoming messages to specific agents
  • Webhook signature verification for all platforms

Browser automation

  • CDP browser control with BrowserPage UI (live viewport + chat panel)
  • Session recording and replay
  • Auth manager for persistent browser sessions
  • Auto-snapshot toggle with red/green visual indicator

Devices

  • Device pairing via QR code and TOTP
  • WebSocket-based device communication protocol
  • Device groups for collective execution
  • Per-device health metrics

Payments direction

  • Marketing, docs, and the marketplace use Stripe (USD) as the live payment method. A USDC/x402 payments path is in development; the crypto UI is gated off behind PUBLIC_USDC_PAYMENTS_ENABLED (default off).