Heads up This site is currently under heavy development.
Subscribe Get it delivered — the daily firehose, filtered to the tools you run, plus the documentation changes vendors never announce. Compare plans →

The AI Toolchain — issue -149, March 23, 2026

THE AI TOOLCHAIN NO. -149
Tail
THE DAILY RELEASE FIREHOSE
PUBLISHED MARCH 23, 2026 · EVERY WEEKDAY
EDITIONS tail grep head diff uniq

The daily firehose — everything the toolchain shipped today, already filtered.

// HOW THIS ISSUE IS MADE

We read every release from the 174 tools on our watchlist at the source — GitHub and GitLab release notes, vendor release pages and changelogs, project blogs and feeds, vendor press releases, and the source code behind the tag. Bug-fix-only releases and non-product newsroom noise are dropped; what's left is summarized down to the new capability, how to try it, and any screenshots or videos the release itself published. Every entry links to the sources it was built from.

VIEW
ISSUE VIEW full issue
Do you prefer this view?
$ tct list   # 11 tools matched
AI & LLM Tooling
◆  AI Agent Frameworks

CrewAI

Sources Release notes → 1.11.1 NOTES

Framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks.

CrewAI 1.11.1 adds flow_structure() serializer for programmatic Flow class introspection.

└──▷ GET THIS VERSION
$ git clone --branch 1.11.1 https://github.com/crewAIInc/crewAI.git
# already have the repo? check out this version:
$ git checkout 1.11.1
└──▷ USE IT
Inspect the structure of a defined Flow programmatically — useful for debugging or generating visual representations of agent pipelines.
python
flow = MyFlow()
structure = flow.flow_structure()
print(structure)
  • Adds flow_structure() serializer method to the Flow class for structured introspection of flow topology.
Was this useful?

OpenAI Agents SDK

Sources Release notes → v0.13.0 NOTES

OpenAI Agents SDK v0.13.0 adds MCP resource methods, streamable HTTP session resumption, and opt-in reasoning-content replay for Chat Completions.

└──▷ GET THIS VERSION
$ git clone --branch v0.13.0 https://github.com/openai/openai-agents-python.git
# already have the repo? check out this version:
$ git checkout v0.13.0
└──▷ USE IT
Resume a stateless or reconnected MCP streamable HTTP session by capturing and reusing its session ID.
python
session_id = mcp_server.session_id
Enable reasoning-content replay for a LiteLLM or DeepSeek Chat Completions adapter so tool-call continuity is preserved across turns.
python
model = LiteLLMModel(..., should_replay_reasoning_content=True)
Fetch available resources and read one from an MCP server — useful when building agents that browse or act on server-side resources.
python
resources = await mcp_server.list_resources()
content = await mcp_server.read_resource(resources[0].uri)
  • Adds list_resources(), list_resource_templates(), and read_resource() methods to MCPServer, exposing MCP resource access directly from the SDK.
  • Adds session_id property to MCPServerStreamableHttp, enabling streamable HTTP sessions to be resumed across reconnects or stateless workers.
  • Adds should_replay_reasoning_content opt-in flag to Chat Completions integrations, improving reasoning/tool-call continuity for adapters such as LiteLLM and DeepSeek.
  • Changes the default Realtime WebSocket model to gpt-realtime-1.5, so new Realtime agent setups use the newer model without extra configuration.
Was this useful?

OpenClaw

Sources Release notes → v2026.3.23 2 RELEASES · 2026-03-23 NOTES STABLE

Your own personal AI assistant. Any OS.

OpenClaw v2026.3.23 adds pay-as-you-go Qwen endpoints, Knot theme overhaul, SHA-256 CSP hashing, and cron timezone-aware scheduling.

└──▷ GET THIS VERSION
$ git clone --branch v2026.3.23 https://github.com/openclaw/openclaw.git
# already have the repo? check out this version:
$ git checkout v2026.3.23
└──▷ TRY IT
Schedule a one-shot cron task at a specific local time in a DST-observing timezone without UTC math.
$ openclaw cron add --at '2026-11-01T09:00' --tz America/New_York 'openclaw run my-morning-task'
  • Adds standard pay-as-you-go DashScope endpoints for China and global Qwen API keys under the relabeled Qwen (Alibaba Cloud Model Studio) provider group.
  • New Knot UI theme with black-and-red palette meeting WCAG 2.1 AA contrast, discrete roundness stops, config icons for Diagnostics/CLI/Secrets/ACP/MCP sections, and improved aria-labels.
  • Adds SHA-256 hash computation for inline <script> blocks in index.html, included in the script-src CSP directive to allow only explicitly hashed bootstrap code.
  • Adds --tz <iana> support to openclaw cron add|edit --at for correct local wall-clock scheduling of one-shot datetimes, including DST boundaries.
  • Adds asDocument as a user-facing alias for forceDocument on Telegram image and GIF sends.
1 more release in this issue · 2026-03-23
v2026.3.22 NOTES STABLE

OpenClaw v2026.3.22 adds ClawHub skill flows, SSH/OpenShell sandbox backends, Exa/Tavily/Firecrawl web-search plugins, Android call-log and SMS search, and Telegram topic-label automation.

└──▷ GET THIS VERSION
$ git clone --branch v2026.3.22 https://github.com/openclaw/openclaw.git
# already have the repo? check out this version:
$ git checkout v2026.3.22
└──▷ TRY IT
Install a ClawHub-backed skill by name, bypassing npm resolution, to get tracked update metadata.
$ openclaw plugins install clawhub:exa
Configure the Exa bundled web-search plugin with content extraction enabled for deeper research tasks.
yaml
plugins:
  entries:
    exa:
      config:
        webSearch:
          extractContent: true
          searchMode: neural
Point the built-in image generation tool at Gemini after removing the old nano-banana-pro skill wrapper.
yaml
agents:
  defaults:
    imageGenerationModel:
      primary: "google/gemini-3-pro-image-preview"
  • Adds openclaw skills search|install|update and openclaw plugins install clawhub:<package> flows with tracked update metadata for ClawHub-backed skill installs.
  • Adds commands.plugins config gating and owner-gated /plugins and /plugin chat commands for plugin list, show, enable, and disable flows.
  • Adds browser.profiles.<name>.userDataDir support so the existing-session browser backend can attach to Brave, Edge, and other Chromium-based browsers via their own user data directories.
  • Adds plugins.entries.exa.config.webSearch.* config namespace and Exa as a bundled web-search plugin with native date filters, search-mode selection, and optional content extraction.
  • Adds plugins.entries.tavily.config.webSearch.* config namespace and dedicated tavily_search and tavily_extract tools via a bundled Tavily web-search plugin.
+22 moreshow less
  • Adds firecrawl_search and firecrawl_scrape tools and a bundled Firecrawl plugin with onboard/configure search-provider support and web_fetch fallback alignment.
  • Adds channels.telegram.silentErrorReplies setting (default off) so Telegram bot error replies can be delivered silently.
  • Adds openclaw update --tag main and installer --version main to allow package-manager installs from GitHub main branch.
  • Adds pluggable sandbox backends: ships an OpenShell backend with mirror and remote workspace modes, making sandbox list/recreate/prune backend-aware instead of Docker-only.
  • Adds a core SSH sandbox backend with secret-backed key, certificate, and known_hosts inputs and shared remote exec/filesystem tooling in core.
  • Adds agents.defaults.imageGenerationModel.primary config key (e.g. google/gemini-3-pro-image-preview) for built-in image generation, replacing the removed nano-banana-pro bundled skill.
  • Adds anthropic-vertex provider for Claude via Google Vertex AI, including GCP auth/discovery and main run-path routing.
  • Adds a bundled Chutes provider plugin with OAuth/API-key auth, dynamic model discovery, and default-on extension wiring.
  • Adds android node tool callLog.search plus shared Call Log permission wiring so Android nodes can search recent call history through the gateway.
  • Adds android node tool sms.search plus shared SMS permission wiring so Android nodes can search device text messages through the gateway.
  • Adds talk.speak gateway route for Talk speech synthesis, keeping Talk secrets server-side and switching Android playback to final-response audio.
  • Adds per-account custom Bot API endpoint (apiRoot) support across Telegram send, probe, setup, doctor repair, and inbound media download paths for proxied or self-hosted deployments.
  • Adds autoTopicLabel per-account and per-DM Telegram override for LLM-generated DM forum topic labels on first message.
  • Adds topic-edit Telegram action for forum-topic renames and icon updates.
  • Adds /btw chat command for quick tool-less side questions about the current session without altering future session context.
  • Switches the default OpenAI setup model to openai/gpt-5.4 and adds forward-compat entries for gpt-5.4-mini and gpt-5.4-nano in the OpenAI provider catalog.
  • Adds per-agent thinking/reasoning/fast defaults with auto-revert for disallowed model overrides.
  • Moves OpenRouter, GitHub Copilot, and OpenAI Codex provider logic into bundled plugins with dynamic model fallback, runtime auth exchange, and cache-TTL policy.
  • Adds compatible Codex, Claude, and Cursor bundle discovery and install support, mapping bundle skills into OpenClaw skills.
  • Adds an expand-to-canvas button on assistant chat bubbles and in-app session navigation from Sessions and Cron views.
  • Adds a Roundness slider to the Appearance settings for adjusting corner radius from sharp to fully rounded, with unified theme border radii across Claw, Knot, and Dash.
  • Adds system-aware dark theme across Android onboarding and post-onboarding screens so the app follows the device theme through setup, chat, and voice flows.
└──▷ BREAKING ON UPGRADE
  • !openclaw plugins install <package> now prefers ClawHub over npm for npm-safe package names and only falls back to npm when ClawHub does not have the package or version.
  • !The legacy Chrome extension relay path, bundled extension assets, driver: "extension" config key, and browser.relayBindHost config key are removed; run openclaw doctor --fix to migrate host-local browser config to existing-session / user.
  • !The bundled nano-banana-pro skill wrapper is removed; use agents.defaults.imageGenerationModel.primary: "google/gemini-3-pro-image-preview" instead.
  • !The plugin SDK entrypoint openclaw/extension-api is removed with no compatibility shim; plugins must import from openclaw/plugin-sdk/* subpaths and use injected runtime (e.g. api.runtime.agent.runEmbeddedPiAgent) for host-side operations.
  • !The legacy ChannelMessageActionAdapter methods listActions, getCapabilities, and getToolSchema are removed; plugin authors must migrate message discovery to ChannelMessageActionAdapter.describeMessageTool(...).
  • !All legacy CLAWDBOT_* and MOLTBOT_* environment variable names are removed; use the matching OPENCLAW_* env names instead.
  • !The legacy .moltbot state directory and moltbot.json auto-detection/migration fallback are removed; move state from ~/.moltbot to ~/.openclaw or set OPENCLAW_STATE_DIR / OPENCLAW_CONFIG_PATH explicitly.
  • !The exec environment sandbox now blocks MAVEN_OPTS, SBT_OPTS, GRADLE_OPTS, ANT_OPTS, GLIBC_TUNABLES, and DOTNET_ADDITIONAL_DEPS from host injection, and restricts GRADLE_USER_HOME to override-only propagation.
  • !Discord native command deployment now defaults to Carbon reconcile, stopping slash commands from being churned through OpenClaw's local deploy path on Discord restarts.
  • !Voice-call/webhook pre-auth body budget is reduced to 64 KB / 5s (from 1 MB / 30s) and requests with missing provider signature headers are now rejected before body reads; concurrent pre-auth requests per source IP are also capped.
  • !The Matrix plugin is rebuilt on matrix-js-sdk; users upgrading from the previous public Matrix plugin must follow the migration guide at https://docs.openclaw.ai/install/migrating-matrix.
Was this useful?

browser-use

Sources Release notes → 0.12.3 NOTES

browser-use 0.12.3 ships CLI 2.0 with direct CDP, ~50ms latency, LiteLLM support, and multi-session browser control for AI coding agents.

└──▷ GET THIS VERSION
$ git clone --branch 0.12.3 https://github.com/browser-use/browser-use.git
# already have the repo? check out this version:
$ git checkout 0.12.3
└──▷ TRY IT
Attach to an already-running Chrome with saved logins to automate a site without re-authenticating.
$ browser-use --profile "Default" open https://github.com
browser-use state
browser-use click 2
browser-use screenshot page.png
Run two isolated browser sessions in parallel — one for work, one personal — without context bleed.
$ browser-use -s work open https://work.example.com
browser-use -s personal open https://gmail.com
browser-use sessions
browser-use close --all
Expose a local app to a cloud browser session for end-to-end testing behind a public URL.
$ browser-use tunnel 3000
# outputs: https://abc.trycloudflare.com
browser-use open https://abc.trycloudflare.com
browser-use state
browser-use screenshot --full result.png
browser-use tunnel stop --all
  • Adds browser-use --connect open <url> to auto-discover and attach to a running Chrome instance via CDP, inheriting existing logins, cookies, and extensions.
  • Adds browser-use --profile <name> open <url> to launch directly into an existing named Chrome profile (e.g. 'Default', 'Profile 1').
  • Adds browser-use --cdp-url <ws-url> open <url> to connect to any browser via an explicit CDP WebSocket URL.
  • Adds browser-use --headed open <url> flag to run a visible browser window for debugging.
  • Adds browser-use -s <session> open <url> for named, parallel browser sessions; browser-use sessions lists all active sessions; browser-use close --all terminates them.
+12 moreshow less
  • Adds browser-use cloud connect subcommand for a stealth cloud browser with proxies, requiring BROWSER_USE_API_KEY.
  • Adds browser-use state command that returns all interactable page elements as indexed tokens (e.g. [0] button 'Submit') — optimized for low-token agent consumption.
  • Adds browser-use click <index>, browser-use input <index> <text>, browser-use select <index> <value>, browser-use hover <index>, and browser-use keys <key> for index-based interaction without CSS selectors.
  • Adds browser-use upload <index> <path> for file upload via element index.
  • Adds browser-use get title, browser-use get html --selector <css>, browser-use get text <index>, and browser-use eval <js> for structured data extraction.
  • Adds browser-use screenshot --full <path> for full-page screenshots.
  • Adds browser-use python <expression> for a persistent Python session with variable state across calls; browser-use python --vars lists currently defined variables.
  • Adds browser-use tunnel <port> to expose a local dev server via Cloudflare tunnel; browser-use tunnel stop --all tears them down.
  • Adds browser-use profile list to enumerate available Chrome profiles.
  • New CLI daemon architecture uses direct CDP instead of Playwright, delivering ~50ms per-command latency with no per-command browser startup cost.
  • Adds LiteLLM as a supported model provider integration.
  • Installs via a skill file at ~/.claude/skills/browser-use/SKILL.md for use with Claude Code, Codex, and other CLI coding agents.
Was this useful?
◆  AI Coding Agents

GitHub Copilot CLI

Sources Release notes → v1.0.11 NOTES

GitHub Copilot CLI v1.0.11 adds monorepo skill discovery, per-session working directories, and merged extension hooks.

└──▷ GET THIS VERSION
$ git clone --branch v1.0.11 https://github.com/github/copilot-cli.git
# already have the repo? check out this version:
$ git checkout v1.0.11
└──▷ TRY IT
Seed a fresh session with an immediate task without typing a follow-up message — useful in CI kick-off or scripted workflows.
$ /new 'Run the full test suite and summarise failures'
Surface a custom status command that expands home-directory and environment-variable paths, e.g. to show a per-project Git status line.
yaml
statusLine.command: ~/.local/bin/my-status ${PROJECT:-default}
  • Adds ~/.agents/skills/ as a personal skill discovery directory, aligning with the VS Code GHCP4A extension default.
  • Supports statusLine.command path expansion for ~ and environment variables such as $HOME and ${VAR:-default}.
  • Custom instructions, MCP servers, skills, and agents are now discovered at every directory level from the working directory up to the git root, enabling full monorepo support.
  • /new and /clear commands now accept an optional prompt to seed the new session with a first message.
  • /clear now abandons the current session entirely, while /new starts a fresh conversation with the old session kept backgrounded.
+7 moreshow less
  • Extension hooks from multiple extensions now merge instead of overwriting each other or hooks from hooks.json.
  • sessionStart hook additionalContext is now injected into the conversation.
  • Shows a warning when MCP servers are blocked by policy (e.g. allowlist enforcement), and enforces the organization policy for third-party MCP servers for all users.
  • MCP OAuth authentication now works with servers that support Dynamic Client Registration but host authorization metadata at a non-standard URL (e.g. the Atlassian Rovo MCP Server).
  • Background agent progress — current intent and tool calls completed — now surfaces in read_agent and task timeout responses.
  • GitHub MCP server user configuration is respected when connecting to remote hosts.
  • Startup 'Environment loaded' message now shows the count of loaded hooks.
Was this useful?

Earendil Works Pi

Sources Release notes → v0.62.0 NOTES

AI agent toolkit: unified LLM API, agent loop, TUI, coding agent CLI

Pi v0.62.0 adds extensible built-in tool rendering, unified sourceInfo provenance, and AWS Bedrock cost allocation tagging.

└──▷ GET THIS VERSION
$ git clone --branch v0.62.0 https://github.com/earendil-works/pi.git
# already have the repo? check out this version:
$ git checkout v0.62.0
  • Enables extension authors to override rendering of built-in read/write/edit/bash/grep/find/ls tools with custom renderCall/renderResult components via extensible ToolDefinitions.
  • Adds unified sourceInfo struct (path, scope, source metadata) to all resources, commands, tools, skills, and prompt templates — visible in autocomplete, RPC discovery, and SDK introspection.
  • New requestMetadata option on BedrockOptions forwards key-value pairs to the Bedrock Converse API for AWS Cost Explorer split cost allocation tagging.
└──▷ BREAKING ON UPGRADE
  • !If renderCall or renderResult is defined on a ToolDefinition, it must now return a Component; fallback rendering only occurs when no renderer is defined for that slot.
  • !RPC get_commands, RpcSlashCommand, and SDK SlashCommandInfo no longer expose location or path — use sourceInfo instead.
  • !The legacy source fields on Skill and PromptTemplate are removed — use sourceInfo.source instead.
  • !ResourceLoader.getPathMetadata() is removed — resource provenance is now attached directly to loaded resources via sourceInfo.
  • !extensionPath is removed from RegisteredCommand and RegisteredTool — use sourceInfo.path instead.
Was this useful?

Alibaba Qwen Code

Sources Release notes → v0.13.0 NOTES

Qwen Code v0.13.0 adds hooks, agent arena, skills directories, /btw and /context commands, and system prompt customization.

└──▷ GET THIS VERSION
$ git clone --branch v0.13.0 https://github.com/QwenLM/qwen-code.git
# already have the repo? check out this version:
$ git checkout v0.13.0
└──▷ TRY IT
Ask a quick side question during a session without polluting the main conversation context.
$ /btw What does the --dry-run flag do in this codebase?
Check how your context window tokens are distributed before hitting limits.
$ /context
Authenticate with Qwen Code from the CLI before starting a session.
$ qwen auth
  • Adds --system-prompt customization options to both the SDK and CLI for overriding the default system prompt.
  • Adds /btw slash command for asking ephemeral side questions without affecting the main conversation context.
  • Adds /context slash command to display a breakdown of context window token usage.
  • Adds auth CLI command for authentication flows.
  • Implements a hooks extension mechanism with 10 core event hooks covering session lifecycle and tool execution events.
+11 moreshow less
  • Adds agent collaboration arena (arena) supporting multi-model competitive execution.
  • Adds a new Explore agent and renames TaskTool to AgentTool in core.
  • Supports skills loaded from the .agents directory and .agents/skills as provider directories.
  • Adds support for configurable runtime output directory in storage.
  • Adds Tab key fill-only behavior for completions in the VS Code IDE companion.
  • Adds image paste support in the VS Code IDE companion.
  • Displays token usage inline in the loading/progress indicator.
  • Executes task tools concurrently for improved performance.
  • Adds metadata and statistics tracking to export.
  • Adds support for a permission system.
  • Renames QWEN.md to AGENTS.md to follow community best practices.
└──▷ BREAKING ON UPGRADE
  • !TaskTool is renamed to AgentTool in core — any code or configuration referencing TaskTool by name will need to be updated.
Was this useful?
◆  Local LLM Runtimes

Jan AI Jan

Sources Release notes → v0.7.9 NOTES

Jan v0.7.9 adds NVIDIA NIM cloud provider, Spanish locale, expanded file attachments, and auto-scaling context length

└──▷ GET THIS VERSION
$ git clone --branch v0.7.9 https://github.com/janhq/jan.git
# already have the repo? check out this version:
$ git checkout v0.7.9
  • Adds setting to auto-increase ctx_len when the context window fills up, preventing truncation without manual tuning.
  • Removes the 32k ctx_len enforcement that was previously applied on API server start, allowing models to use their native context limits.
  • Adds NVIDIA NIM as a predefined cloud provider in the model hub.
  • Adds a configurable default model for the local API server.
  • Adds a default assistant setting, letting users pin a preferred assistant across sessions.
+4 moreshow less
  • Expands supported file types for document attachments in chat.
  • Adds Spanish (Español) locale to the UI.
  • Adds safer directory scoping during factory reset to protect user data outside Jan's managed folders.
  • Enables remote model updates so model metadata can be refreshed without a full app update.
Was this useful?

llama.cpp

Sources Release notes → b8493 2 RELEASES · 2026-03-23 NOTES STABLE

llama.cpp b8493 adds OpenCL q6_K GEMM and GEMV kernels for Adreno GPUs.

└──▷ GET THIS VERSION
$ git clone --branch b8493 https://github.com/ggml-org/llama.cpp.git
# already have the repo? check out this version:
$ git checkout b8493
  • Adds OpenCL q6_K GEMM (gemm_noshuffle_q6_k_f32) and GEMV kernels for Adreno GPUs, enabling quantized 6-bit inference acceleration on mobile/embedded hardware via the OpenCL backend.
1 more release in this issue · 2026-03-23
b8477 NOTES STABLE

llama.cpp b8477 adds dynamic high-resolution image preprocessing support for InternVL models.

└──▷ GET THIS VERSION
$ git clone --branch b8477 https://github.com/ggml-org/llama.cpp.git
# already have the repo? check out this version:
$ git checkout b8477
  • Adds dynamic high-resolution image preprocessing for InternVL models (including Qianfan-OCR), storing min/max dynamic patch counts in GGUF metadata; default values are provided for older models.
Was this useful?
Other / Uncategorized
◆  AI OBSERVABILITY

Arize Phoenix

Sources Release notes → arize-phoenix-v13.17.0 NOTES

Phoenix v13.17.0 adds an experimental GQL simulated bash tool for agents and one-click span ID copying in the UI.

└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v13.17.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:
$ git checkout arize-phoenix-v13.17.0
  • Adds experimental px-gql simulated bash tool for agent workflows.
  • Adds one-click copy of span IDs to clipboard in the trace UI.
Was this useful?
◆  VECTOR DB RAG

Milvus

Sources Release notes → v2.6.13 NOTES

Milvus v2.6.13 adds Google Gemini embedding support and a Go SDK TruncateCollection method.

└──▷ GET THIS VERSION
$ git clone --branch v2.6.13 https://github.com/milvus-io/milvus.git
# already have the repo? check out this version:
$ git checkout v2.6.13
  • Adds TruncateCollection method to the Go SDK client for clearing all data in a collection without dropping it.
  • Adds Google Gemini as a built-in text embedding function, configurable via a Gemini API key, supporting models including Gemini Embedding 2.
  • Adds query metrics for JSON-related filter expressions to improve observability of JSON field query performance.
Was this useful?
my-toolchain — 0 tools
paste an install list to detect your tools

A brew list, a Brewfile, requirements.txt, a Dockerfile — or just the product names, free-form. Nothing leaves your browser.

    browse all tools →