Ask Claude for a style

Describe a look in words and get a style document back — what it can reach, what it replaces, and why it lands as a draft.

Every control in the editor writes into one document. That document is plain JSON, and a model can write it as easily as you can — which is what this button is.

Asking#

Ask Claude for a style… sits between the library bar and the apply bar. It opens a small floating window titled Ask Claude — 3D style, which you can drag and resize anywhere over the scene.

The composer's placeholder tells you the register it expects:

Describe a look — “neon Tron glass”, “warm matte copper”…

Press Enter to send, Shift+Enter for a new line, or use the Ask button. While it works, your message sits on the right and a spinner reading working… sits on the left. The reply is one sentence describing what it did.

The conversation is a real thread — follow-ups like "warmer" or "same but matte" work, because the previous exchanges go along with the request. It survives closing the window and lasts as long as the app is running. The eraser button in the header clears it, and clears only the conversation: the style you already have is untouched.

Which model answers#

The dropdown at the bottom of the Ask window is its own setting, separate from the model your chat uses. Two kinds of model can be picked, and they take completely different routes:

A Claude Code model runs against your own local Claude installation, on this machine. Nothing goes to a Semantix server and no account is needed — but Claude Code has to be installed and logged in locally.

One of your own models — an OpenAI-compatible endpoint you configured in Settings → Models — goes through the Semantix service, which relays it to your provider. This route requires you to be signed in.

Note

The first time you open the Ask window it picks a model for you, and the one it picks is Claude Code — it's always first in the list. So the out-of-the-box ask runs locally and needs no Semantix account at all. What it does need is Claude Code installed and logged in on this machine; if it isn't, the error you get is about reaching the local service, not about your account.

What comes back, and what it replaces#

The model is sent your current style document and the file types visible in the graph, and is asked to return the whole document back, changed. It doesn't return a patch.

The answer lands as a draft: the preview changes immediately, the graph does not. Keep it with Apply, or Save as to put it in your library under a name.

Because the model rewrites the entire document, the ask is not scoped. It ignores the scope selector completely — there is no "ask about .ts only". What it can do is target types by name, because it's told which file types are in view: "make my TypeScript files blue" produces a per-type override rather than a change to everything.

Important

An answer replaces your whole document, and anything the model leaves out reverts to the factory default — not to what you had. If you have spent an hour on per-file-type overrides and the model returns a document without them, they are gone.

There is no undo. Reset restores the factory look, not your previous draft. Before asking for something on top of work you care about, Save as first. That way the worst case is switching back to your saved style.

When it fails#

Failures are visible. Every one of them appears as a red message in the thread rather than as silence:

  • Asks need a custom model (Settings → Models) or Claude. — the selected model isn't one this feature can use. Configure an OpenAI-compatible model, or pick a Claude Code one.
  • Signed out — sign in and ask again. — your session expired on the server route.
  • An error with a status number — the service or your provider refused the request; a rate limit shows up here too.
  • A message about the model not returning valid JSON — it answered with prose instead of a document. The server already retried once before telling you. Ask again, more plainly.
  • If the local Claude route can't be reached at all, the error is about the connection: the on-device service isn't running.

Two silent cases, so you don't misread them: the Ask button is simply greyed out when no model is selected — the dropdown will read Select Model — and cancelling an ask says nothing. Closing the window, clearing the thread, or sending a second ask abandons the first without a message.

What it can and can't reach#

The model is given most of the vocabulary of the editor: shape SVG, the material properties including glow and opacity, extrusion depth and bevels, gradients in both modes, node size, the glyph colour/size/opacity/offset controls, and per-file-type overrides.

That covers things that would take you fifty clicks by hand — a coherent palette across a dozen file types is one sentence.

Two gaps worth knowing:

It isn't told it can replace a file type's icon. The per-type glyph slot is missing from the vocabulary it's given, so asking for "a database icon on my .sql files" won't get you one. Pick that by hand in the Glyph section.

The ranges it's given are narrower than the sliders. For a few settings — env reflection, extrusion depth, bevels, node size — the model is told a smaller range than the panel actually allows. Ask for something extreme and you'll get the edge of its range, not the edge of yours.

What it can't touch at all is anything outside the style document: your theme, the graph background, the physics, or which files are on screen.

Note

The answer arrives all at once when the model is finished. Nothing repaints progressively while it thinks.