Skip to content

llama.cpp b9957: server tool system reworked, apply_diff removed

llama.cpp build b9957 reworks the server tool system: apply_diff removed, tools_io abstraction added, edit tool improved. Prebuilt binaries across 30+ platforms.

llama.cpp’s server gets a tool system overhaul in build b9957 — apply_diff is removed and a new tools_io abstraction takes its place.

The changes to the server’s tool layer:

  • apply_diff removed — the diff-based editing tool is no longer in the server
  • Edit tool improved — replacement editing capability with a different interface
  • tools_io abstraction added — new interface for handling tool input/output
  • tools_io_basic added — basic implementation of the new abstraction
  • Utils moved to class members — internal refactor, server code reorganized

For anyone running local LLMs with tool use through llama.cpp’s server, this changes how editing operations work. The apply_diff tool handled diff-based code edits — any workflow or agent loop depending on it will break on upgrade.

Build b9957 ships prebuilt binaries across a wide platform matrix:

PlatformVariants
macOSarm64, x64, iOS XCFramework
Linux (Ubuntu)CPU (x64, arm64, s390x), Vulkan, ROCm 7.2, OpenVINO, SYCL FP32/FP16
WindowsCPU (x64, arm64), CUDA 12/13, Vulkan, OpenVINO, SYCL, HIP
Androidarm64 (CPU)
openEuler310p, 910b (ACL Graph)

WARNING

The apply_diff removal is a breaking change for server tool workflows. If your agent or application calls apply_diff through the llama.cpp server, update your tool definitions before upgrading to b9957.

macOS KleidiAI and openEuler default builds are disabled in this release. Upgrade if you need the improved edit tool or tools_io abstraction — hold off if your workflow depends on apply_diff.