# AI assistant · ICE by Light Cloud

> Claude edits the canvas in plain English. Bring your own Anthropic API key, or point ICE at any OpenAI-compatible endpoint. Off by default. Your data stays on your server.

## What it does today

- **Chat about the canvas.** The model receives the current graph as context. Answers stream over SSE.
- **Propose changes as ghosts.** New blocks and edges appear as dashed previews. You accept or reject them.
- **Diagnose deploy failures.** Click "Explain" on a failed deploy and the assistant walks through it.
- **Read-level deploy context.** A summary of what is deployed, drifted, or pending is injected into the system prompt.

## Example prompts

- "Add a Postgres database and connect it to the backend."
- "Why is the API gateway showing a warning?"
- "Migrate the queue from GCP to AWS, keeping the rest of the canvas as-is."
- "Explain the last failed deploy and propose a fix."

## Coming up

- Live cloud queries (AI Read L2 / L3) so the model sees current state, not just the last import.
- Multi-step tool use: plan, read, propose, validate.
- Full mutation surface: delete, rename, modify, group.
- Proactive suggestions: unused blocks, missing secrets, cost outliers.
- Per-provider prompt profiles.
- Validated OpenAI-compatible backends (Ollama, LM Studio, vLLM).

## Privacy and control

- The API key lives on the server. The browser never sees it.
- ICE works fine without an AI key. The chat panel stays disabled.
- Every model proposal is gated by an explicit Accept click. No autonomous apply.
- Run against a local Ollama, LM Studio, or any OpenAI-compatible endpoint if you would rather not send prompts off-machine.

## Setup

```
ANTHROPIC_API_KEY=sk-ant-...
```

Get a key at https://console.anthropic.com. Restart ICE. The chat panel unlocks.

Full docs: https://github.com/light-cloud-com/ice/blob/main/docs/ai-assistant.md
