Tool calls in the model's own format
Chaty asked every model for its tool calls as one line of JSON, which
is not how most local models were trained: Qwen 3.5, 3.6 and 3.8 write
an XML form, and Gemma 4 and LFM2 their own. Long edits came back as
broken JSON and were rejected and rewritten, round after round. Chaty
now reads the format from the loaded model's chat template and uses it
everywhere the model looks — the prompt, the tool list, every hint and
correction, and the calls kept in its history. A model whose template
names none gets XML, and Settings → Code can choose one by hand.
Fewer wasted rounds in code mode
A broken call is told where it broke, and four in a row pause the
turn. A long edit retyped with different indentation still lands, and
browser_read with a selector reads just the elements it matches.
Pictures on GGUF
The first picture in a conversation that had been talking — or a code
turn's first screenshot — no longer makes a Qwen3.5 GGUF model read the
whole conversation again before it looks at the image.
Install
| Platform | File |
|---|---|
| Windows x64 | Chaty_*_x64-setup.exe — per-user installer, no admin
|
| macOS (Apple Silicon) | Chaty_*_aarch64.dmg
|
| Linux x64 (beta) | Chaty_*_amd64.AppImage — chmod +x and run. First Linux release — please report anything odd
|
⚠️ macOS first launch — "Apple could not verify…" / "damaged"
Chaty is ad-hoc signed but not notarized (no paid Apple Developer
account), so Gatekeeper flags it on first launch. The app is safe —
everything runs locally. Clear the download quarantine once, in Terminal:
xattr -dr com.apple.quarantine /Applications/Chaty.appThen open Chaty normally. (Alternatively: try to open it once, then go to
System Settings → Privacy & Security → Open Anyway.)
Full Changelog: v2.2.0...v2.2.1