Noodara
Operate

AI assistant

Bring your own Anthropic or OpenAI key, ask questions about your infrastructure, and know exactly what the assistant can read and send.

Ask Noodara answers questions about your servers, services and deployments, such as "why did the last deploy of api fail?" or "which services run on this server?". It reads the same data the panel shows you, cites what it read, and cannot change anything.

Set up a provider

You bring your own API key (BYOK). Noodara has no key of its own and sends nothing to a provider until you add one.

  1. Open Settings and find AI assistant.
  2. Pick a Provider and a Model, paste the API key and save.
  3. Noodara makes one short call to the provider to check the key. A key the provider rejects is not saved (AI_PROVIDER_AUTH_FAILED).
ProviderModelKey
Anthropicclaude-opus-5-5An Anthropic API key
OpenAIThe pinned gpt-5 snapshot shown in the Model menuAn OpenAI API key
  • One provider is active at a time. Saving a new key replaces the previous one, and Remove key deletes it.
  • A key is 20 to 512 printable characters without spaces (AI_PROVIDER_INPUT_INVALID).
  • The key is encrypted at rest like every other credential. After saving, the panel shows only its last 4 characters; it never appears in an API response, a log or the activity feed.
  • Usage is billed by your provider on your account.

Then select Ask a question under the saved key to open the Ask Noodara panel, and type a question of at most 4000 characters. Adding ?ask=1 to any panel URL opens the same panel.

What the assistant can do

It can only call these read tools, all answered by the panel:

ToolReads
get_server, list_serversServers and their connection state
get_service, list_servicesServices, their source and runtime status
get_deployment, list_deploymentsDeployments and their steps and failures
get_healthService health, restarts, out-of-memory and crash-loop signals
get_metricsMetric samples
get_logsA bounded window of logs
get_infrastructure_graphThe infrastructure graph

It cannot deploy, restart, stop, delete, change a setting, run a shell command or read a secret value.

How read-only is enforced

The read-only rule is enforced by the panel, not by asking the model to behave:

  • The tool set is closed and every tool is a read. There is no write tool to call, and a name outside the set is refused (AI_TOOL_NOT_ALLOWED) without running anything.
  • Tool arguments are validated before a tool runs. No argument reaches a shell or SSH as text; the only remote read is the same bounded docker logs window the Logs view uses.
  • A question uses at most 16 tool calls. A question that needs more stops with AI_BUDGET_EXCEEDED.
  • Tool results are treated as untrusted data: a log line or commit message that contains instructions cannot change these rules.
  • The answer is checked against a fixed schema, and any entity it cites must come from a tool result in the same conversation.

What is sent to the provider

For each question, Noodara sends:

  • a fixed system prompt with the read-only rules,
  • the definitions of the read tools above,
  • your question and recent turns of the same conversation (at most 40 messages),
  • the results of the tools the model calls, each capped at 32 KiB, with log reads capped at 100 lines.

Before anything leaves the panel, tool results are redacted: secret values, private keys and tokens are replaced with [REDACTED:<type>]. Secret values are never read by any tool; a secret appears only as its reference, <secret:name>. SSH credentials, host keys, the provider key itself and your password are never sent.

Conversations are stored in the panel, redacted the same way. Deleting a conversation removes its messages and tool calls.

Errors

CodeMeaning
AI_PROVIDER_NOT_CONFIGUREDNo provider key is saved. Add one in Settings.
AI_PROVIDER_INPUT_INVALIDThe key or model was refused before contacting the provider.
AI_PROVIDER_AUTH_FAILEDThe provider rejected the key. Replace it in Settings.
AI_PROVIDER_UNAVAILABLEThe provider is not responding. Try again in a few minutes.
AI_PROVIDER_RATE_LIMITEDThe provider is rate limiting your key. Wait and try again.
AI_BUDGET_EXCEEDEDThe question needed more tool calls than allowed. Ask a narrower question.
AI_TOOL_NOT_ALLOWEDThe model asked for a tool outside the read-only set. Nothing was changed.
AI_QUESTION_EMPTYThe question is empty.
AI_QUESTION_TOO_LONGThe question is longer than 4000 characters.
AI_CONVERSATION_BUSYThe conversation is still answering the previous question.
AI_CONVERSATION_NOT_FOUNDThe conversation does not exist or was deleted.
RATE_LIMITEDToo many questions in a short time. Wait a moment.

On this page