The Console tab is a terminal into the loaded circuit. Local commands query and drive it; an AI mode drafts new circuits for you.
| Command | Effect |
|---|---|
help |
list commands |
stats |
element, arc and param counts plus latency |
turtle |
print the current Turtle source |
types [filter] |
element classes with ports, ranges and units |
params |
parameter bindings with live values |
get <slot> / set <slot> <val> |
read or move one parameter in its own units |
validate |
check the current Turtle without reinstalling it |
blocks |
Turtle blocks the AI proposed, with validation |
apply [n] |
install block n (default: most recent valid one) |
clear |
wipe the scrollback |
Up and Down browse input history.
ai <prompt> asks the model to design a circuit, for example
ai a deep dub bass with slow filter sweep. The reply prints inline. Turtle
code arrives in fenced blocks and each block is validated on arrival; install
one with apply 0. A block that fails validation prints its diagnostics and
apply refuses it. Installing a circuit behaves like any other edit: if it
will not compile, the previous circuit keeps playing.
Setup comes first: Settings menu, AI Provider, then Set API Key... (or
export the key; see below). Providers with a free tier and no card are
Groq (fast, model openai/gpt-oss-20b), Gemini (model
gemini-3.5-flash), and OpenRouter (model openrouter/free, which
auto-picks a free model, 50 requests a day). Ollama (local) needs no key
at all: install ollama and run ollama pull llama3.1. Set AI Model... and
Set AI Endpoint... still point the tab at anything OpenAI-compatible,
including a local server. The key also honours the VALIS_MISTRAL_API_KEY
environment variable when nothing is stored. Settings persist between
sessions on the local machine and are never saved into a DAW project, so the
key cannot leak through a shared session. The key belongs to the active
provider: switching provider keeps the old key, so set the new one next.
Only fenced code counts as a circuit: ```turtle blocks, or bare
``` blocks that mention val:. Everything else is conversation.
The model is instructed accordingly by a system prompt built from the
circuit rules and the element reference, so what
it proposes matches what the compiler accepts.
An HTTP 429 reply means the provider is rate-limiting the key, not a
problem in the circuit, and the reply text says which budget was hit. A
requests-per-minute limit is worth waiting out: free-tier keys allow very
few requests per minute, so wait a minute before retrying and avoid rapid
repeats. A tokens-per-minute (TPM) limit is different: the system prompt
(the full element catalogue) plus the loaded circuit's Turtle travel with
every request, so on a low-TPM free tier a single request can already be
too large, and waiting will not help. Shorten the request, work on a
smaller circuit, or switch to a provider or model with a higher limit under
Settings > AI Provider. Either way, check the current provider's own usage
dashboard for its limits and outage status - the URL differs per provider.
An HTTP 401 reply means the key itself is wrong or missing: re-enter it
under Settings. Whatever the failure, the loaded circuit keeps playing;
only the request fails.
An HTTP 404 naming the model means the provider retired that model id
(free-tier rosters change often). Pick the current one with Settings > Set AI
Model. For Groq, curl https://api.groq.com/openai/v1/models -H "Authorization: Bearer $KEY" lists live ids. Re-selecting the provider
preset also restores its current default model.