Chat and models
Chat is the most complete part of Hoook. It streams responses from Ollama, Claude, or GPT, depending on the model you pick.
Which providers work
| Provider | How models are listed | Credentials |
|---|---|---|
| Ollama | Fetched live from your running Ollama instance | None |
| Anthropic | A fixed built-in list | ANTHROPIC_API_KEY in the daemon environment |
| OpenAI | A fixed built-in list | OPENAI_API_KEY in the daemon environment |
Claude and GPT models only appear in the picker if the matching key is present when the daemon starts. If you export a key after the daemon is already running, restart it.
How routing works
Hoook picks a provider from the model name, not from a setting:
- Names starting with
claudeoranthropic/go to Anthropic. - Names starting with
gpt,o1,o3,o4, oropenai/go to OpenAI. - Everything else goes to Ollama.
That last rule is a catch-all, so a typo in a model name does not error. It quietly becomes an Ollama request, which then fails if Ollama is not running. If a chat fails in a way that mentions Ollama when you expected Claude, check the model name first.
Streaming
Responses stream token by token. The UI talks directly to the daemon over HTTP rather than going through the desktop app's IPC layer, which is why chat keeps streaming smoothly while the rest of the app is busy. Stop aborts the request in flight.
Keyboard shortcuts
| Shortcut | Action |
|---|---|
| ⌘ K | Command palette |
| ⌘ T | New tab |
| ⌘ \ | Toggle sidebar |
Known gaps
- There is no UI for entering API keys. Keys come from the daemon's environment only.
- The Attach button in the composer is not wired up yet.
- Full-text chat search is not implemented.
- Chats do not currently inherit project instructions. See Projects for what this means in practice.