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_diffremoved — the diff-based editing tool is no longer in the server- Edit tool improved — replacement editing capability with a different interface
tools_ioabstraction added — new interface for handling tool input/outputtools_io_basicadded — 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:
| Platform | Variants |
|---|---|
| macOS | arm64, x64, iOS XCFramework |
| Linux (Ubuntu) | CPU (x64, arm64, s390x), Vulkan, ROCm 7.2, OpenVINO, SYCL FP32/FP16 |
| Windows | CPU (x64, arm64), CUDA 12/13, Vulkan, OpenVINO, SYCL, HIP |
| Android | arm64 (CPU) |
| openEuler | 310p, 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.