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 -223, January 6, 2026

THE AI TOOLCHAIN NO. -223
Tail
THE DAILY RELEASE FIREHOSE
PUBLISHED JANUARY 6, 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   # 13 tools matched
AI & LLM Tooling
◆  AI Agent Frameworks

Agno (formerly Phidata)

Sources Release notes → v2.3.22 NOTES

Agno v2.3.22 adds the Skills class, dynamic MCP headers, A2A remote agent support, and JWT audience validation.

└──▷ GET THIS VERSION
$ git clone --branch v2.3.22 https://github.com/agno-agi/agno.git
# already have the repo? check out this version:
$ git checkout v2.3.22
└──▷ USE IT
Inject a per-request authorization token into every MCP tool call without hardcoding credentials.
python
from agno.tools.mcp import MCPTools

def my_header_provider():
    token = fetch_current_auth_token()  # your token-refresh logic
    return {"Authorization": f"Bearer {token}"}

tools = MCPTools(url="https://my-mcp-server.example.com", header_provider=my_header_provider)
Validate JWT tokens against a specific audience claim in an AgentOS deployment.
python
from agno.middleware.jwt import JWTMiddleware

middleware = JWTMiddleware(
    secret="<your-secret>",
    audience="https://api.myapp.example.com"
)
  • Introduces the Skills class, enabling agents to be extended with capabilities defined by Anthropic's Agent Skill specification.
  • Adds header_provider function parameter to MCPTools instances, allowing dynamic header generation (e.g. rotating auth tokens or per-user IDs) on each MCP tool call.
  • Adds audience parameter to the JWTMiddleware constructor to set the expected audience when validating JWT tokens.
  • MCPTools now defaults to StreamableHttp as the transport when a URL is present for connecting to external MCP servers.
  • Adds A2AClient and support for the a2a protocol when using remote agents, enabling Google ADK agents to run as remote agents via AgentOS (beta).
+1 moreshow less
  • Extends native reasoning support to OpenAI GPT-5.1 and 5.2, new Gemini 3, 3.5, and deepthink models, and new DeepSeek r1 and reasoner models.
Was this useful?

Stanford NLP DSPy

Sources Release notes → 3.1.0 NOTES

DSPy 3.1.0 adds dspy.Reasoning, a File type, disable-fallback for ChatAdapter, and PKL-load guards.

└──▷ GET THIS VERSION
$ git clone --branch 3.1.0 https://github.com/stanfordnlp/dspy.git
# already have the repo? check out this version:
$ git checkout 3.1.0
└──▷ USE IT
Capture native reasoning traces from a reasoning model (e.g. o3) alongside the final answer.
python
import dspy

lm = dspy.LM('openai/o3')
dspy.configure(lm=lm)

class QA(dspy.Signature):
    question: str = dspy.InputField()
    reasoning: dspy.Reasoning = dspy.OutputField()
    answer: str = dspy.OutputField()

predict = dspy.Predict(QA)
result = predict(question='What is the capital of France?')
print(result.reasoning)
print(result.answer)
  • Adds dspy.Reasoning type to capture native chain-of-thought reasoning output directly from reasoning models.
  • Adds File type (dspy.File) for passing file data through DSPy signatures and pipelines.
  • Adds a disable-fallback option in ChatAdapter to prevent silent adapter fallback during inference.
  • Adds guards against loading .pkl files by default, and a parameter to load_memory_cache to block PKL files unless explicitly opted in.
  • Adds a method to extract the system message based on a given adapter and signature.
+2 moreshow less
  • Extends the stream listener to work on any output type, not only strings.
  • Adds official support for Python 3.14.
Was this useful?

OpenAI Agents SDK

Sources Release notes → v0.6.5 NOTES

v0.6.5 adds per-run tracing API keys, tool guardrails, AgentHookContext, and Gemini 3 Pro support

└──▷ GET THIS VERSION
$ git clone --branch v0.6.5 https://github.com/openai/openai-agents-python.git
# already have the repo? check out this version:
$ git checkout v0.6.5
└──▷ USE IT
Attach guardrails directly to a function tool at decoration time, avoiding separate wiring in the agent definition.
python
@function_tool(guardrails=[my_input_guardrail])
async def lookup_user(user_id: str) -> str:
    ...
Access the current turn's input inside an agent hook to log or gate behaviour per turn.
python
async def on_agent_start(ctx: AgentHookContext, agent: Agent) -> None:
    print(f'Turn input: {ctx.turn_input}')
  • Adds per-run tracing API key support, allowing a different API key to be specified for tracing on individual runs rather than globally.
  • Adds AgentHookContext with a turn_input field for agent hooks, giving hook callbacks access to the current turn's input.
  • Adds tool guardrails as arguments to the @function_tool decorator, enabling inline guardrail configuration directly on tool definitions.
  • Adds realtime audio mapping support and SIP session payload handling for realtime agents.
  • Adds Gemini 3 Pro support with cross-model conversation compatibility.
+1 moreshow less
  • Preserves non-text tool outputs in LiteLLM and chatcmpl converters, improving fidelity when routing through alternate model backends.
Was this useful?

holmesgpt

Sources Release notes → 0.18.2 NOTES

SRE Agent - CNCF Sandbox Project

HolmesGPT 0.18.2 adds TCP connectivity checks, GCP & AKS MCP integrations, and an improved Elasticsearch/OpenSearch toolset.

└──▷ GET THIS VERSION
$ git clone --branch 0.18.2 https://github.com/HolmesGPT/holmesgpt.git
# already have the repo? check out this version:
$ git checkout 0.18.2
  • Adds a connectivity check toolset supporting TCP checks for network reachability diagnostics.
  • Adds GCP MCP integration for Google Cloud Platform context in investigations.
  • Adds Azure (AKS) MCP integration for Azure Kubernetes Service context.
  • Updates the Prometheus toolset configuration.
└──▷ BREAKING ON UPGRADE
  • !The Elasticsearch/OpenSearch toolset has breaking configuration changes — consult the updated docs at https://holmesgpt.dev/data-sources/builtin-toolsets/elasticsearch/#elasticsearch-opensearch before upgrading.
Was this useful?
◆  AI Coding Agents

Cline

Sources Release notes → v3.47.0 NOTES

Autonomous coding agent as an SDK, IDE extension, or CLI assistant.

Cline v3.47.0 adds background file editing, Azure identity auth, and upgrades the free model to MiniMax M2.1.

└──▷ GET THIS VERSION
$ git clone --branch v3.47.0 https://github.com/cline/cline.git
# already have the repo? check out this version:
$ git checkout v3.47.0
  • Adds experimental Background Edits mode — edit files without opening the diff view.
  • Supports Azure-based identity authentication for the OpenAI Compatible provider and Azure OpenAI.
  • Upgrades the free model from MiniMax M2 to MiniMax M2.1.
  • Adds supportsReasoning property to Baseten model configurations.
Was this useful?

Block Goose

Sources Release notes → v1.19.0 NOTES

an open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM

Goose v1.19.0 adds shell completions, OpenAI Codex CLI provider, JSONL streaming, and MCP server support from editors like Zed.

└──▷ GET THIS VERSION
$ git clone --branch v1.19.0 https://github.com/block/goose.git
# already have the repo? check out this version:
$ git checkout v1.19.0
└──▷ TRY IT
Set up persistent shell completions for zsh so Goose subcommands and flags tab-complete in your terminal.
$ goose completion zsh > ~/.zfunc/_goose
  • Adds completion subcommand to generate shell completions for bash, zsh, fish, and more.
  • Adds OpenAI Codex CLI as a supported provider.
  • Enables prompt caching for Anthropic models served via Databricks.
  • Honors MCP servers configured in clients like Zed over stdio and HTTP transports.
  • Adds MCP app renderer for richer, interactive UI experiences within MCP sessions.
+2 moreshow less
  • Adds JSONL streaming option for JSON output mode, enabling line-by-line consumption of streamed responses.
  • Uses MCP server names as extension identifiers in code mode for clearer context.
└──▷ BREAKING ON UPGRADE
  • !SSE transport for MCP is removed as part of the upgrade to rmcp 0.12.0 and sacp 10.0.0; configurations relying on SSE transport will break.
Was this useful?

OpenAI Codex CLI

Sources Release notes → rust-v0.78.0 NOTES

Lightweight coding agent that runs in your terminal

Codex CLI gains external-editor prompt editing, project-aware config layering, MDM support, and richer exec policy justifications.

└──▷ GET THIS VERSION
$ git clone --branch rust-v0.78.0 https://github.com/openai/codex.git
# already have the repo? check out this version:
$ git checkout rust-v0.78.0
└──▷ TRY IT
Edit a long or complex prompt in your preferred editor mid-session instead of typing it inline in the TUI.
$ # While in the Codex TUI, press Ctrl+G to open the current prompt in $VISUAL or $EDITOR, edit, save, and quit — edits are synced back automatically.
  • Adds Ctrl+G to open the current prompt in your configured external editor ($VISUAL/$EDITOR) and sync edits back into the TUI.
  • Supports project-aware config layering: loads repo-local .codex/config.toml, honors configurable project_root_markers, and merges with system config like /etc/codex/config.toml.
  • Supports enterprise-managed configuration requirements on macOS via an MDM-provided TOML payload.
  • Exec policy rules can now include human-readable justifications via a justification arg to prefix_rule() in *.rules files, with policy loading following the unified config-layer stack.
  • Improves tui2 transcript navigation with multi-click selection, a copy shortcut/affordance, and a draggable auto-hiding scrollbar.
+1 moreshow less
  • Starts Windows PowerShell sessions in UTF-8 mode to reduce encoding-related prompt/output issues.
Was this useful?

SST OpenCode

Sources Release notes → v1.1.4 NOTES

The open source coding agent.

OpenCode v1.1.4 adds URL-based instructions, frecency file autocomplete, and AGENTS.md config-dir loading

└──▷ GET THIS VERSION
$ git clone --branch v1.1.4 https://github.com/sst/opencode.git
# already have the repo? check out this version:
$ git checkout v1.1.4
└──▷ TRY IT
Place project-wide agent instructions in your config directory so they are automatically injected into every session's system prompt.
$ # Write your standing instructions once
echo '# Project Rules
Always write tests.' > "$OPENCODE_CONFIG_DIR/AGENTS.md"
# Every subsequent opencode session picks them up automatically
opencode
  • Supports URL-based instructions, letting you point OpenCode at a remote URL instead of an inline prompt.
  • Loads AGENTS.md from OPENCODE_CONFIG_DIR into the system prompt for persistent agent instructions.
  • Adds frecency-based file autocomplete in the TUI CLI for smarter, history-weighted file suggestions.
  • Adds keyboard shortcut 'c' to copy device code during OAuth flows without leaving the TUI.
  • Adds a timeout mechanism to prevent hanging operations.
+5 moreshow less
  • Adds automatic jp. prefix assignment for the Tokyo region (ap-northeast-1) on AWS.
  • Adds a view button in the desktop review sidebar to open files directly.
  • Adds middle-click to close tabs in the desktop review sidebar.
  • Adds single-instance plugin to prevent multiple desktop windows from opening simultaneously.
  • Makes subtasks clickable in the desktop task list.
Was this useful?

Earendil Works Pi

Sources Release notes → v0.37.6 2 RELEASES · 2026-01-06 NOTES STABLE

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

Extension UI dialogs gain AbortSignal support for programmatic timeouts; HTML export improves Codex session visibility.

└──▷ GET THIS VERSION
$ git clone --branch v0.37.6 https://github.com/earendil-works/pi.git
# already have the repo? check out this version:
$ git checkout v0.37.6
└──▷ USE IT
Auto-dismiss a confirmation dialog after a timeout so an unattended extension doesn't hang indefinitely.
typescript
const ac = new AbortController();
setTimeout(() => ac.abort(), 5000);
const confirmed = await ctx.ui.confirm("Proceed?", { signal: ac.signal });
  • Adds optional AbortSignal parameter to ctx.ui.select(), ctx.ui.confirm(), and ctx.ui.input() extension dialogs, enabling programmatic dismissal and timeout patterns.
  • HTML export now includes bridge prompts in model change messages for Codex sessions.
1 more release in this issue · 2026-01-06
v0.37.5 NOTES STABLE

Pi v0.37.5 adds runtime model/thinking controls, exported truncation utilities, and a full UI component library for extensions.

└──▷ GET THIS VERSION
$ git clone --branch v0.37.5 https://github.com/earendil-works/pi.git
# already have the repo? check out this version:
$ git checkout v0.37.5
└──▷ USE IT
Cap tool output to a safe byte budget before returning it, preventing context blowout on large command output.
typescript
import { truncateTail, DEFAULT_MAX_BYTES } from "pi/tools";

const raw = await runShellCommand(cmd);
return truncateTail(raw, { maxBytes: DEFAULT_MAX_BYTES });
  • Adds setModel(), getThinkingLevel(), and setThinkingLevel() ExtensionAPI methods so extensions can switch model and thinking level at runtime.
  • Exports truncation utilities (truncateHead, truncateTail, truncateLine, formatSize, DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, TruncationOptions, TruncationResult) for use in custom tools.
  • Exports the full suite of built-in UI components (ArminComponent, AssistantMessageComponent, BashExecutionComponent, BorderedLoader, and 20+ more) plus utilities renderDiff and truncateToVisualLines for extension developers.
  • New truncated-tool.ts example demonstrating output truncation with custom rendering for extensions.
  • New preset.ts example demonstrating preset configurations with model, thinking, and tools switching.
+1 moreshow less
  • New Common Patterns and Key Rules sections in docs/tui.md with copy-paste code for SelectList, BorderedLoader, SettingsList, setStatus, setWidget, and setFooter.
Was this useful?

Alibaba Qwen Code

Sources Release notes → v0.6.0-nightly.20260106.b19bb6cb NOTES

Qwen Code v0.6.0-nightly adds German locale support and auto-detects LLM output language from system locale.

└──▷ GET THIS VERSION
$ git clone --branch v0.6.0-nightly.20260106.b19bb6cb https://github.com/QwenLM/qwen-code.git
# already have the repo? check out this version:
$ git checkout v0.6.0-nightly.20260106.b19bb6cb
  • Adds German language support for the CLI interface.
  • Auto-detects LLM output language from the system locale, so responses match the user's OS language without manual configuration.
  • Supports merging ChatCompletionContentPart entries and filters empty messages in API request handling.
Was this useful?
◆  Local LLM Runtimes

llama.cpp

Sources Release notes → b7644 NOTES

llama.cpp server adds thinking/reasoning content blocks to the Anthropic Messages API for reasoning models

└──▷ GET THIS VERSION
$ git clone --branch b7644 https://github.com/ggml-org/llama.cpp.git
# already have the repo? check out this version:
$ git checkout b7644
  • Adds thinking content blocks to the Anthropic Messages API when using --reasoning-format deepseek with the thinking parameter enabled — both non-streaming (thinking block before text in content array) and streaming (thinking_delta events with correct block indices) are supported.
  • Tracks reasoning state across streaming chunks via the anthropic_has_reasoning member variable to correctly handle partial streaming of thinking content.
Was this useful?
Other / Uncategorized
◆  AI OBSERVABILITY

Arize Phoenix

Sources Release notes → arize-phoenix-v12.28.0 NOTES

Phoenix v12.28.0 adds JSONL dataset uploads and a built-in tool selection correctness eval metric.

└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v12.28.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:
$ git checkout arize-phoenix-v12.28.0
  • Adds support for JSONL format in dataset uploads.
  • Adds a built-in tool selection correctness metric to the evals framework.
  • Adds a skeleton loader for paragraphs in the playground UI while content loads.
Was this useful?

Langfuse

Sources Release notes → v3.144.0 NOTES

Langfuse v3.144.0 adds corrections to trace/observation previews, a trace refresh button, and a filter clear-all button.

└──▷ GET THIS VERSION
$ git clone --branch v3.144.0 https://github.com/langfuse/langfuse.git
# already have the repo? check out this version:
$ git checkout v3.144.0
  • Adds a fields API for the scores v2 API endpoint, enabling more targeted score data retrieval.
  • Adds corrections to the trace and observation preview panel in the UI.
  • Adds a refresh button to the traces view, supporting both manual and periodic refresh.
  • Adds a 'clear all' button to the filters UI for faster filter resets.
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 →