Bolt#
Bolt is English. A local model turns it into a program, and the program runs.
sites = [apple, nvidia]
topics = [latest earnings, layoffs]
jobs = sites x topics
summarize = jobs
tabularize = summarize
display[table] = tabularize with header "What each company said"
Open any file in bolt/ and press Run. The console prints the program it produced before
it runs it.
Why it is safe enough to use#
A model writing code is not usually something to hand a browser. Three properties make it bearable.
It must compile. Every translation goes through the real compiler before anything runs. If it does not compile, the errors go back to the model and it tries again — three times by default. You never run a program the compiler rejected. If all three attempts fail, Bolt shows you the last one and stops.
It is cached. The same source and the same prompt give the same program without asking
the model again. A translated file runs identically offline, and the second run is free.
The cache lives in .ohm/bolt/ and keys on both the source and the prompt, so editing
either one retranslates.
You can see what it wrote. The translation is printed to the console before it runs. Bolt is not a box with a result at the end; it is a program you can read, keep, and edit by hand if it is nearly right.
The prompt is yours#
What Bolt means is a prompt called boltToOhm, in Settings → Library. Change it and
the language changes.
That is the honest description of a language defined by a model, and putting it in a compiler would not have made it less true. The prompt carries the operator table and the maths vocabulary, both generated from the registry so they cannot describe operators that no longer exist.
A second entry, boltRetry, is what the model sees when its attempt did not compile.
The shape of it#
| You write | You get |
|---|---|
a = [x, y] |
a list |
a x b |
every pair |
summarize = jobs |
the summarize operator over jobs, bound to that name |
display[table] = rows |
a table, printed |
present with the X template |
the result rendered into the Results panel |
# ... |
a note, ignored |
Verbs map onto the operators: summarize, rank, compare, cite, search, sort, filter, join.
It is only as good as the model#
This is the part worth knowing before you rely on it. The architecture holds regardless — nothing that fails to compile ever runs — but the quality of what compiles varies a lot.
On the same program, a general 8B model produced compiling but muddled output: it summarised the list of jobs instead of searching for each one, and referred to a variable it had not defined. A coder-tuned model of similar size got the same program right on the first attempt, with the fan-out as a loop and the operators inside it.
If Bolt is producing nonsense, change the model before changing the prompt. Settings → Models.
When not to use it#
When you know what you want. Bolt costs a model call and some uncertainty; Volt and Ohm cost neither.
Bolt is for the first draft and for the shape of a thing. Once a program matters, keep what it produced and edit that.