llama.cpp build b10271 ships per-conversation working directories for its agent mode — the model can now scope file operations and shell commands to a specific path instead of operating blind at the repo root.
The changes, spread across server, UI, and database layers:
- Per-conversation CWD picker — each chat gets its own working directory, selectable via a path navigator that treats
/and~-prefixed queries as directory descent, not glob matching - Persistent tool CWD — the chosen directory is saved to tool result messages in the database, so it survives across calls within a conversation
- Path abbreviation — tool paths under
$HOMErender with~shorthand in exec shell rows - Synthetic message flag — CWD context is injected as a flagged synthetic message the model can read, clarifying scope without polluting the visible conversation
The release notes credit Claude as an assistant on the CWD implementation (PR #26518). The model that runs in llama.cpp helped write the feature that gives the model a working directory.
NOTE
The file_glob_search server endpoint was extended to support the UI pickers. If you build custom tooling against the llama.cpp server API, scoped path queries now behave differently — test before assuming prior glob behavior.
Build b10271 is live on the llama.cpp releases page. The CWD picker auto-searches on open, showing the current directory and its siblings immediately.