DoCatz is a complete Docker engine and container manager without AI. If you want help, there are three AI features — and all of them are off until you turn AI on. Nothing is sent to an AI provider until you press an AI button, each feature sends only what is listed below, every one has Preview what is sent, and nothing an AI suggests runs without your click.
Turn AI on
Open Settings → AI and turn on Use AI in DoCatz. That switch is DoCatz’s own: turning AI on here does not turn it on in DevCatz, DBCatz or DialCatz, and the other way round.
The Provider card wears the badge Shared with Catzoid apps: the provider, the model and the API key are shared with every Catzoid app on this computer, so you set them up once, in any of the apps. See Shared by the Catzoid apps.
Providers
| Provider | Notes |
|---|---|
| Anthropic (Claude) | |
| OpenAI (GPT) | |
| Google (Gemini) | |
| Z.ai (GLM) | Use a Standard API key; the address can be changed for keys from bigmodel.cn |
| DeepSeek | |
| Mistral | |
| xAI (Grok) | |
| Groq | |
| OpenRouter | Many models behind one key |
| Ollama | Runs on your computer, offline; no key needed |
| OpenAI-compatible server | Any server with an OpenAI-style /chat/completions — LM Studio, vLLM, LiteLLM, a company gateway |
The connection
- Provider — the list marks providers that have a key saved (· key saved).
- API key — paste it and press Save; Get a key opens the provider’s key page. Once saved it reads Saved in the macOS KeychainWindows’ protected storage (DPAPI) (Catzoid AI), with Replace and Remove. The key is kept only on this computer, never shown again, and sent nowhere but to that provider.
- Address — where the provider’s API is. You can change it for Z.ai, Ollama and an OpenAI-compatible server.
- Model — click the field to search the list, or type any model id the provider knows. Load models asks the provider for its current list, and Check … with the key marks which ones your key may use.
- Test — Sends one tiny request to prove the key and model work.
The feature switches
The Features card has one switch per feature, each with a line saying what it sends. Every feature is on once AI is on; turn off the ones you do not want, and their buttons disappear.
| Feature | Where it shows up |
|---|---|
| Ask DoCatz (mod+K) | The floating ✦ button, bottom right, and mod+K |
| Explain with AI in Logs | ✦ Explain with AI on a container’s Logs tab |
| Write and fix compose files and Dockerfiles | ✦ Write with AI / ✦ Fix with AI in the compose editor |
With AI or a feature off, Engine → Ask DoCatz… in the menu opens Settings → AI instead.
Ask DoCatz
Say what you want in plain words, and DoCatz works out the steps. Open it with the floating ✦ button or mod+K. To get going, try one of the suggestions:
- Which containers are running?
- Restart everything in this project
- Show the logs of the database
- Clean up unused images
- Switch to the dark theme
The answer is a sentence or two and up to four numbered steps, each with a Run button. Nothing runs until you press Run, one step at a time; a step that worked can run Again, one that failed can Retry.
The steps Ask DoCatz can propose: start, stop, restart or remove a container; open its page, its logs, its terminal or its URL; compose up, down or restart for a project; start or stop the engine; clean up; pull an image; open a section or a Settings tab; set the theme.
Anything that removes something is explained first. Removing a container, taking a project down and cleaning up
show Review… instead of Run: DoCatz says what the step does (for a clean-up, it lists exactly what would go), and
you type the container’s name, the project’s name, or delete before Continue works. Containers and projects the
model makes up are dropped from its answer.
enter sends, shift+enter starts a new line, Esc closes the panel. Ask a follow-up in the same chat, or press New chat to start over; Stop cuts an answer short.
What it sends:
- the name, image, state, status text (Up 3 minutes), compose project and service, ports and URL of each container,
- the names of your compose projects,
- the engine’s state, the Docker version and the number of CPUs,
- where you are in DoCatz (the section, and the container you have open) and the theme,
- your message and the last few messages of the chat.
Never environment values, mounts or secrets. Preview in the panel’s header shows the exact text, without sending anything.
Explain with AI
On a container’s Logs tab, ✦ Explain with AI explains why a container fails or keeps restarting. Pick the lines first (click, shift-click) — or pick nothing, and it reads the last 80 lines, where most failures end. The answer comes in a side panel: what happened, why in plain words, what to do step by step, and a Suggested fix (a compose snippet, a Dockerfile line or a command) with Copy. DoCatz shows the fix; it never runs it. Ask about these lines (optional) lets you ask a question with them.
What it sends:
- the log lines you picked (or the last 80), with obvious secrets masked — at most the last 400 lines and 40,000 characters,
- the container’s name, image, state and status, exit code, restart count and restart policy, compose project and service, and platform,
- its command line (entrypoint and command),
- your question, if you typed one.
Preview what is sent shows the exact text first.
Write and fix compose files
In the compose editor, type what you want in the Write with AI box — add a postgres service with a volume — and press ✦ Write with AI. After a run fails, the button turns into ✦ Fix with AI, and it works with the error alone. The draft appears next to your file with a short explanation of what changed; Use this puts it in the editor (still unsaved), Discard throws it away. Nothing is saved until you press Save.
What it sends: the file open in the editor (obvious secrets masked, up to 60,000 characters) and your request — and, for a fix, the last lines of the failed run’s output (masked, up to 8,000 characters). Preview what is sent shows it first.
What is masked
Before log lines, a file or an error go out, DoCatz masks what looks like a secret:
- the value after a name containing password, pass, secret, token, api_key, private_key or credential
(
DB_PASSWORD=•••), - the password in a URL (
postgres://app:•••@db), - known token shapes, such as
sk-…,ghp_…,github_pat_…,glpat-…,xox…andAKIA…, - PEM private keys.
Masking catches the obvious cases, not every one: use Preview what is sent when a log may hold something private.
What is never sent
- Environment values, mount paths and secrets — and the values of a project’s .env in DoCatz.
- Anything at all while AI, or that feature, is switched off.
- Anything before you press a button: there is no background AI.
The requests go straight from DoCatz to the provider you chose, never through Catzoid. With Ollama, nothing leaves your computer at all. Everything the apps send is listed in What the apps send.
Last updated 2026-11-03