Feature
Tools: agentic tool calling
Tool-capable models can now call tools locally in an agentic loop, with a session workspace, built-in tools, and opt-in web access.
- Tool-capable models are detected from the GGUF chat template, never guessed. Their tool calls run locally, the results feed back, and the loop repeats until a final answer. Every step shows inline and is saved, so the history stays auditable.
- The built-in tools cover a calculator (no eval), read_file, list_dir, write_file, read_selection, a Python code interpreter, and web search and fetch_url.
- Each session gets a workspace. Attach a folder, or let Kayon create ~/.kayon/workspace/<session>/ for you; attached and model-created files land there. Every path is canonicalized, so .., absolute paths, and symlink escapes are all refused.
- Web access stays off until you turn it on, once per session, and every request is logged. Search goes through DuckDuckGo. fetch_url is SSRF-guarded: it refuses loopback and private addresses, pins the IP, and re-checks redirects.
- The code tool always asks before it runs; write_file asks only when writing into a folder you attached. Code runs isolated but, honestly, not sandboxed. A WASM or OS jail is post-v1, so for now the confirmation is the boundary.
- The best pick only crowns a model that actually runs. When nothing fits, an honest "no model fits this machine" notice replaces the old, misleading recommendation.
- A weak model that gets stuck looping on a tool now returns a real answer instead of an error, and a repeated call never fires the same side effect twice.
- Pressing Enter commits a chat-title rename.