The August round ended with the stack leaving the house — your branch, your server, your browser, your registry. Nineteen days later the tally is seventy-seven releases across ten repositories, and the direction changed again.

August was about showing up in more places. This round is about not making you wait. Background work that reaches the agent while it is still thinking. A shell command that stops blocking the tool call. A completion check that knows there's still a job running. An agent that draws a button instead of writing "reply 1 for staging, 2 for production." And underneath all of it, an LLM layer that learned to produce images, video and speech instead of only reading them.

Here's everything, in the order it will matter to you.


The count

Repo Range Releases
octolib 0.33.0 → 0.36.1 18
octofs 0.10.2 → 0.15.3 14
octomind 0.45.0 → 0.50.2 12
octohub 0.7.4 → 0.7.13 10
octobrain 0.11.1 → 0.13.1 6
octocode 0.22.0 → 0.25.0 5
octoweb 0.11.0 → 0.14.0 4
vext 1.4.0 → 1.5.1 3
timex 1.3.0 → 1.4.1 3
synx 0.1.3 → 0.1.4 2

August 19 through September 6. Everything below is shipped, tagged, and installable today.


Octomind 0.45 → 0.50.2 — the agent runtime, in detail

github.com/muvon/octomind · twelve releases · full notes on octomind.run

The runtime got the most releases with the most user-visible surface, so it gets the most room here. Each of these started as somebody's complaint.

"I typed octomind run ten thousand times." Bare octomind now starts an interactive session with your default agent, and git diff | octomind works the same way. run still exists with every flag it had. The tool's name is now also its most common invocation.

"Changing my default model meant find-and-replace across my own config." 0.48.0 collapsed eight scattered model settings into a single inherited [model] profile. Every role, tap, workflow step and internal profile now inherits what it doesn't override. It's a breaking change — config version 12 — and it deleted a net 9,789 lines of production code in five days while adding 82,624 lines of tests.

"It asks me to reply 1, 2 or 3 like it's 1985." As of September 5, an Octomind session can draw the interface instead of describing it: a card with chips, a text field and real buttons, rendered in the Octomind web app and in Octoweb's sidebar, built on the open A2UI protocol rather than model-authored HTML or a house JSON format nobody else speaks. The reasoning behind that choice — including why untrusted markup in a logged-in session is a vulnerability with a roadmap — is its own post.

"I couldn't show it the screenshot." 0.47 added message attachments across both the WebSocket and MCP surfaces, plus media capability validation — a text-only model now tells you it can't see your image instead of silently dropping it. Images and voice in every session got a post of its own.

"The background job finished but the agent didn't notice until the turn ended." In 0.50, completed background jobs, monitor updates and tap replies enter the running turn before the next model request. A code review can now incorporate the check it started. The completion gate learned the matching manners: when async work is still pending, "done" waits, and the pending state survives into the turn that resumes the session.

"It said done, and it wasn't." The verify gate that 0.44 introduced got recovery tracking for flaky verifiers, explicit mutation-readiness contracts, and — 0.46.1 — a second-opinion refutation pass that tries to refute a rejection before it stands. A gate that cries wolf trains you to ignore it. In 0.50 the supervisor also started hashing changed file contents against the session's working directory, so it can tell an actual edit from a rewrite of identical bytes or a merely staged file.

"Compression ate the thing I was working on." 0.45.1 stopped user requests from being lost mid-fold; 0.47 moved folding into the background with amortized decisions, so a long session pays gradually instead of freezing at the worst moment; 0.50.2 trims oversized tool results before deciding whether to pay for a summarization call, and skips the call entirely if trimming was enough. Recalled context now survives compression for a bounded window, and large spilled outputs live with session data instead of a temp directory that may have been cleared.

"My agent forgot everything between sessions — or remembered too much." 0.48 rebuilt learning on file-backed storage with a hot/cold retention lifecycle and evidence-gated evolution: a lesson has to earn its place before it sticks. Session stats now report which learning packs were actually used.

"My team's tooling lives in our own repo." 0.49 resolves capabilities across every connected tap, including organization-qualified references — myorg/project-read alongside octomind/memory-read — with dependencies installed by the scripts of the tap that owns them. octomind tap also scaffolds a new local tap in one command. If custom MCPs belong in your repo, so do custom capabilities.

Smaller, still nice: @file mentions with filesystem path completion, MCP tool-call progress notifications routed to the spinner, OCTOMIND_DATA_DIR, role-based config merging, one unified /status view replacing /agents and /monitor, timing metrics per session, and usage reporting that stops billing you for always-free models.

Two more Octomind stories got full posts this round: scheduled routines that run on cron and report back, and durable artifacts — deliverables that outlive the machine that produced them. If you're wiring an agent into a pipeline rather than a terminal, non-interactive runs with JSON Lines and JSON Schema output is the practical guide.

curl -fsSL https://raw.githubusercontent.com/muvon/octomind/master/install.sh | bash
# or, with a Rust toolchain:
cargo install octomind --version 0.50.2

Octoweb 0.11 → 0.14 — workspaces, and a browser the agent can draw in

github.com/muvon/octoweb · four releases · September 5

The keyboard-first AI browser spent August getting stable. September gave it structure.

Workspaces (0.12.0) are the headline. Tabs, quick slots, MRU navigation and sessions are all scoped per workspace now, with index shortcuts to switch between them and lazy session restore so opening the browser doesn't wake fifty pages at once. MCP routing is workspace-scoped too — a token identifies which workspace an agent is driving, so your research context and your work context stop leaking into each other. The same release added searchable paged chat history, guided approvals and harvests, agent and capability configuration in the UI, and specialist run reports.

MCP got teeth (0.11.0). The browser control surface — 29 tools on localhost:3434/mcp — gained overlay dismissal, action expectations with scoped snapshots, trusted native input with effect tracking, and download tracking and reporting. Together those turn "the agent clicked something" into "the agent clicked something and can prove what changed."

Live media tabs (0.13.0) surface what's actually playing across the workspace, and notifications now open the session that triggered them rather than whatever was last focused.

A2UI (0.14.0) — declarative UI surfaces landed in the browser the same day the agent learned to draw them. A render_ui tool lets any connected agent draw an A2UI v1.0 surface directly into the sidebar and get back what the human actually clicked. Also in 0.14.0: tag autocomplete and a reworked browser and sidebar.

Octoweb also moved out of the Octomind product menu and onto octoweb.xyzthat post covers the move, the four releases in full, and the question the move kept raising: no, the browser is not locked to our cloud. Its own site carries the launch story and the MCP guide.


Octofs 0.10.2 → 0.15.3 — waiting stopped being a tool call

github.com/muvon/octofs · fourteen releases · September 5

The big one already got its own post: every shell command starts in the foreground, auto-promotes to a background job at ten seconds without losing a byte, and notifies the client when it exits. No more sixty-second client timeouts killing a four-minute test suite. No more models inventing sleep 240 as a polling strategy.

Four releases have landed since that post, all sharpening the edges:

  • Delta file views and edit line-shift reporting (0.15.0). After an edit, the tool tells the model how the line numbers moved, so the next edit targets reality. On top of the N:hh content-verified line IDs from 0.9.0, an agent now has to work at being wrong.
  • SSH aliases and home-relative paths (0.15.0). Remote targets resolve through your ~/.ssh/config, so octofs speaks the same host names your terminal does — and ~/project means the remote home, not yours.
  • Remote search that behaves (0.15.1). Tree search over SSH returns correct results, and remote listing depth is bounded by default instead of walking a build server's entire disk.
  • Edits that refuse to be ambiguous (0.15.0–0.15.3). Insertions inside a replacement or delete range are rejected outright, and empty views and out-of-range requests say so explicitly instead of returning a blank string the model reads as "the file is empty."
cargo install octofs --version 0.15.3
# or:
npm install -g @muvon/octofs

Octolib 0.33 → 0.36.1 — the LLM layer learned to generate media

github.com/muvon/octolib · eighteen releases · September 6

The engine under everything had its busiest stretch yet, and it changed shape.

Media generation is now a first-class stack. Typed APIs for image, video, speech and transcription across five providers — fal, ElevenLabs and Runway joined OpenRouter and Replicate this round — behind the same provider:model addressing you already use for chat. Video generation is asynchronous by nature, so jobs are durable: persist the credential-free JobHandle, restart your process, resume the job. A local wait timeout returns the handle instead of cancelling the remote work.

The cost accounting stayed honest, which is the part we care about. provider_reported_cost is used only when the upstream returns actual dollars; anything else is an estimated_cost from a caller-supplied rate or the new media::reference_pricing table, and the rate is frozen into the job handle at submit time so a resumed job prices identically. Generated artifacts are never downloaded automatically — download_artifact takes an explicit byte limit, accepts HTTPS only, rejects embedded credentials and private addresses, validates MIME type, and does not follow redirects.

The model roster kept pace: Claude 5.1 (Anthropic), GPT-6 (OpenAI), Gemini 3.8 Flash, a new Meta Model API provider, GLM-5.3-Flash via Zai, DeepSeek vision, voyage-code-4 embeddings, plus pricing for Qwen3.8 Flash and Together AI serverless.

Structured output stopped guessing. Response schemas are enforced across providers, failed validations log the offending output, usage is aggregated across schema retry attempts, and structured output now fails closed — a malformed result is an error, not a shrug. Alibaba got a structured-output fallback for models that can't do it natively.

And the meter kept getting more accurate: reasoning tokens are counted in cost, billable output-token logic is centralized in one place, DeepSeek's peak/off-peak window is documented, and app attribution headers now travel to OctoHub so your proxy dashboard knows which of your tools spent the money.


OctoHub 0.7.4 → 0.7.13 — attribution all the way through

github.com/muvon/octohub · ten releases · September 4

The self-hosted LLM proxy spent this round on the last mile of the observability story: 0.7.12 forwards attribution headers end to end, with sane OpenRouter defaults when a client sends none. Combined with Octolib's side of the change, the row in your database now knows not just what a request cost, but which application made it. That's a breaking change if you depended on the old header handling.

0.7.7 improved modality handling and content parsing — necessary once every tool in the stack started sending images and audio through the proxy — and 0.7.9 reworked the setup and API guide, which was overdue. The rest is the steady drumbeat of octolib bumps that keeps the proxy's model coverage identical to everything else we ship.


Octocode 0.22 → 0.25 — Elixir, Svelte internals, and a graph that resolves at runtime

github.com/muvon/octocode · five releases · September 5

  • Elixir joined the indexer (0.23.0), with metavariable matching and impl target resolution — the same treatment every other supported language gets, not a regex approximation.
  • Svelte nested code regions are indexed (0.24.0). A .svelte file's script, markup and style blocks are separate code regions; the indexer now treats them that way instead of chunking one blob, so searching a Svelte codebase returns the block you meant.
  • GraphRAG resolves edges at runtime (0.24.0), with correct local call and import resolution — building on the markdown knowledge graph from 0.20.0. Metadata writes are batched and the parser handles comments and code fences more accurately.
  • Reasoning is configurable (0.25.0) — typed reasoning-effort settings and a thinking budget you can tune for the ranking pass, so you decide how much thinking a search is worth.
  • Windows and symlinks stopped being a rumor (0.25.0) — cross-platform path normalization, symlinked root handling, and test coverage past 80%.
  • MCP mode is automatic (0.23.0) — the built-in server picks single- or multi-project mode by itself.
cargo install octocode --version 0.25.0
# or:
npm install -g @muvon/octocode

Octobrain 0.11.1 → 0.13.1 — memory you can maintain

github.com/muvon/octobrain · six releases · September 4

The memory layer went quiet and practical. 0.13.0 added octobrain memory maintenance — a blocking compaction of the memory tables and index refresh that you run yourself when searches have slowed down. The honest reason it exists: an MCP session is too short-lived to finish compacting a badly fragmented table, so the work needed a place to live outside one. The same release throttled access writes and made maintenance retry instead of giving up.

0.12.0 added MCP tool annotations and clearer query parsing; 0.12.1 patched sixteen vulnerable dependencies; 0.11.1 clarified the knowledge tool's URL restrictions so an agent stops trying to fetch what it isn't allowed to.

cargo install octobrain --version 0.13.1
# or:
npm install -g @muvon/octobrain

Synx 0.1.4 — the sync tool learned what .git is

github.com/muvon/synx · two releases · September 5

Two-way sync over SSH had exactly the bug class you'd fear from a tool that touches two copies of your source tree, and this round closed it. 0.1.4 preserves .git during git operations and refuses to sync when the two ends are different repositories — a mismatch that used to be discoverable only after it had happened. Excluded manifest subtrees now stay excluded rather than being wiped, renames and file identities survive a round trip, deletes observed by the watcher are forwarded to peers instead of quietly resurrecting, and external ignore rules stop leaking into manifests.

0.1.3 fixed the other half: missed filesystem events are reconciled rather than lost, and inaccessible subtrees are skipped instead of aborting the watch. Memory and I/O overhead came down along the way.


Vext 1.5.1 and Timex 1.4.1 — two Mac apps became MCP servers

This is the quiet surprise of the round. Both apps now run a local MCP server, off by default, bound to 127.0.0.1, with a bearer token you copy from Settings — Vext binds loopback only, Timex lets you change the address if you know why you would.

Vext 1.4.0 exposes 38 tools — start and stop dictation, transcribe a file, paste at the cursor, record and query meetings with speaker labels, browse and delete history. Your agent can now ask your Mac to listen, or read back what you said in this morning's call, without a cloud round trip. It ships ready-made configs for Claude Code, Codex, OpenCode and Octomind, and 1.4.0 also fixed a tools/list rejection under the 2026-07-28 protocol revision. 1.5.0 followed with a unified history library, reworked setup and settings flows, and new icon artwork; 1.5.1 polished onboarding. Beyond MCP: mouse-button hotkeys, quick-tap hands-free toggle, a microphone picker with fallback, per-app dictation styles that paste back into the app you started from, a live transcript pill you can cancel with Escape, and an offer to record when a call starts.

Timex 1.3.0 exposes 16 tools over the same pattern — summaries, activity search, live tracking state, categories and rules, manual entries, CSV export, pause and resume. Ask your agent where the day went and it can actually check. The same release added automatic daily database backups, selective tracking (exclusions, private windows, schedules), opt-in daily limits with an end-of-day digest, keyword and subdomain category rules, and tracking that keeps running through media playback and calls. 1.4.0 added daily activity charts; 1.4.1 fixed a menubar popover loop.

Both apps stay what they were: local SQLite, on-device models, no account, no telemetry. The MCP server doesn't change that — it just means the agent on your machine can talk to the apps on your machine. Which is the whole point of running any of this locally.


One sweep across every MCP server we ship

A pattern worth naming, because it landed in four repos inside two weeks: null variants stripped from tool schemas (octocode 0.22.0, octobrain 0.11.1, octofs 0.10.3) and tool annotations added (octocode 0.23.0, octobrain 0.12.0, octofs 0.12.0, timex, vext).

Neither is glamorous. Both are the difference between "this MCP server works with my client" and "this MCP server works with my client on Tuesdays." Strict clients reject schemas with null union members; annotations tell a client which tools are read-only and which are destructive, so approval prompts can be smart instead of uniform. If you're writing your own MCP server, steal both.


Holding, on purpose

TypeTab holds at 1.1.0. Pulsora shipped no release this round — it spent the window under test coverage while it eats market data in production. Neither silence is neglect; both are what "done for now" looks like.


How the stack fits together today

  • Octolib 0.36.1 — every LLM call, now every generated image, video and voice clip too, each honestly priced
  • OctoHub 0.7.13 — one front door, one log, and now one answer to "which app spent this?"
  • Octobrain 0.13.1 — persistent memory you can maintain on demand
  • Octofs 0.15.3 — safe filesystem and shell access, local or over SSH, that never blocks the agent
  • Octocode 0.25.0 — code search across a live graph, now including Elixir and Svelte
  • Octomind 0.50.2 — the runtime: one model profile, memory with discipline, background results that land mid-turn
  • Octoweb 0.14.0 — the browser, now with workspaces the agent can be scoped to and a sidebar it can draw into
  • Synx 0.1.4 — your source tree on both machines, .git intact
  • Pulsora — the firehose, stored and queryable
  • Vext 1.5.1 and Timex 1.4.1 — your voice and your hours, on-device, now reachable by MCP

Single binaries, Apache-2.0 where they're open source, cargo install or npm install -g @muvon/* for the CLI tools.

August was the month the stack showed up everywhere. This one was the month it stopped making you wait for it. If it still keeps you waiting somewhere, open an issue — that complaint is how most of the list above got written.

— Don