Add Dialect type and parsing to support provider-specific
request/response handling for reasoning/thinking content.
- Map config dialects to starlet Dialect variants
- Support: generic, together, groq, cerebras, llamacpp, tags
- Remove old manual HTTP client code (now fully migrated)
The Generic dialect remains the default for most providers.
Amolith
created
dbc2085
refactor(openai-compat): use starlet native module
Click to expand commit body
Replace custom openai_compat HTTP client with starlet's native module.
Changes:
- Remove src/openai_compat.gleam
- Add send_openai_compat() to clients.gleam
- Update garble.gleam dispatch
- Point starlet to GitHub fork (openai-completions branch)
The Generic dialect is currently hardcoded.
b48618b
refactor: modularize API key and client logic
Click to expand commit body
- Add api_key.gleam for API key resolution (cmd, literal, env)
- Add clients.gleam for provider-specific client logic (openai,
anthropic, gemini, ollama)
- Add reasoning support with --reasoning flag (low, medium, high)
- Add --endpoint flag for ollama and custom endpoints
- Parse can_reason, reasoning_levels, default_reasoning_effort from
provider API
- Update openai_compat to support reasoning_effort parameter
Assisted-by: Claude Opus 4.5 via Amp
Amolith
created
a97bba3
docs(readme): add link to Catwalk frontend for provider/model IDs
Click to expand commit body
Add a reference to the unofficial Catwalk frontend at catwalk-fe.secluded.site
where users can browse available provider and model IDs.
Assisted-by: Kimi K2 Thinking via Crush <crush@charm.land>
- Add SPDX-FileCopyrightText and SPDX-License-Identifier headers to all
source files, configs, and documentation
- Include full license text for AGPL-3.0-or-later and CC0-1.0
- Add Makefile target for running REUSE lint
- Add crush.json.license file for tool configuration
Amolith
created
4f6f66d
docs(readme): link to voxtype with explanation
Amolith
created
c4b4b31
docs: add personal config example to README
Click to expand commit body
Include my synthetic provider config with DeepSeek-V3.2 model and
detailed directions for dictation cleanup.
Assisted-by: Kimi K2 Thinking via Crush
Amolith
created
9b1d1c0
docs: convert CLI flags section to table format
CLI that accepts text on stdin, sends it to an LLM for transformation
based on user directions, and prints the result to stdout.
- glint for CLI argument parsing
- TOML config from ~/.config/garble/config.toml
- Provider discovery from catwalk.charm.sh
- Support for OpenAI, Anthropic, Gemini via starlet
- Custom OpenAI-compatible endpoints
Assisted-by: Claude Opus 4.5 via Crush