44 Downloads Updated 3 weeks ago
ollama run Natuworkguy/flash-onyx-2.2:31b
Updated 4 weeks ago
4 weeks ago
d4d40f04c496 · 20GB
The flagship model of Flash. A local-first engineering agent that closes problems in the fewest moves, running entirely on your hardware.
Onyx 2.1 finishes the job in a fraction of the words. Onyx 2.2 knows more of the work, and holds a standard on what it hands back. Twice the context, a sampler tuned against the prompt instead of guessed at, and nine new sections: READING THE ASK, NAMING AND STACK, THE BAR, THE NEXT MOVE, LAW, CONTRACTS AND DOCUMENTS, WINNING ARGUMENTS, STOCK TRENDS, GAMES, with REVIEWING CODE rewritten at roughly twice the length.
/login” gets an answer and a one line offer, where the build before this wrote the middleware. It answers at the altitude you asked at, keeps your nouns, treats what you already tried as a constraint, and checks the reply against your words before sending.minecraft_clone.html, not output.html and not an unnamed block, whether or not the client gave it somewhere to write..html file with canvas and no build step; real state and routing earn React on Vite; a game you mean to sell starts in Godot, because pygame is a toy on your own machine; a data one-off is the standard library until the shapes are real. What the project already uses beats what the model would have picked.--help that says what the tool does, an error naming the fix, a page that survives 320px, a script that prints what it changed. Edges over the demo path, nothing half wired, one design end to end, defaults treated as the product, and the part that falls short named rather than shipped quietly.min_p 0 to 0.05, scored against the prompt’s own rules. At 0.7 it wrote a shell one liner then explained du for 43 words, which its throwaway rule forbids; at 0.5 it reached for a GNU flag macOS does not ship; 0.6 held both.Six prompts, two seeds, the build before these sections against the build with them, then six rounds of fixing what that found. 145 generations, all on the 12b, thinking off, sampler untouched. Five seeds per case at the end:
| case | before | after |
|---|---|---|
| Names the file it just built | 0 of 4 | 5 of 5 |
| Starts a game for sale in an engine | 0 of 2 | 5 of 5 |
One off with no main() and no if __name__ |
0 of 2 | 3 of 5 |
| Ends on one specific offer | not tested | 4 of 5 |
| “How would you handle rate limiting” | 6 code lines, 163 words | 0 code lines, 96 words |
| Em-dashes and filler phrases | 0 of 12 | 0 of 12 |
Read that for what it is: short prompts scored against the prompt’s own rules, not a benchmark, not a claim about your workload, and only the 12b was tested.
Two findings are worth passing on. The naming rule did nothing until it moved 200 lines earlier, next to the rule about fenced code blocks, beside the moment it applies. And the one-off rule kept losing to a Python rule 18 lines below it that put work behind if __name__ == "__main__": with nothing scoping it to importable code, which is the kind of contradiction rereading does not catch. One more sentence, added to a rule already passing 4 of 5, scored 16 of 20 against 19 of 20 and made two unrelated cases noisier, so it was reverted. On a prompt this size another sentence is not free.
Gemma 4 has a separate thinking channel, and with a bounded reply budget it can spend the whole budget reasoning and return nothing. Pass think: false if your client exposes it. That is a request level flag rather than something the Modelfile sets, and raising num_predict does not fix it.
Onyx 2.2 is a model, not an app, so running a command, writing a file, or looking at a page happens only where the program driving it provides those tools. Flash provides them: shell, read and write, grep and glob, screenshot, web_search, memory and more. Any other Ollama client gets the same reasoning and writing, it just cannot reach your machine. Two of 2.2’s rules only exist inside a tool loop: an artifact goes to a path and the reply names it instead of pasting the file back into your context, and the next move is worked out from the state of what it just wrote.
| Onyx 2.1 | Onyx 2.2 | |
|---|---|---|
| Base | gemma4 |
gemma4 |
| Sizes | 12b, 31b |
12b, 31b |
| Context | 32K | 64K |
| Input | text + images | text + images |
| Longest reply | 8,192 tokens | 8,192 tokens |
| System prompt | 516 lines, 51 sections | 635 lines, 60 sections |
| System prompt cost | ~14,200 tokens | ~19,400 tokens |
| Context left for you | ~18K | ~46K |
| Cold prefill, 12b | ~152s | ~213s |
Temperature, min_p |
0.7, 0.0 | 0.6, 0.05 |
flash-onyx-2.2:12b: consumer hardware, the everyday driver.flash-onyx-2.2:31b: the flagship, wants a bigger GPU and pays you back for it.# clone FLASH's repository, build, then /model flash-onyx-2.2:31b
python3 models/build.py models/flash-onyx-2.2.Modelfile # every size
python3 models/build.py models/flash-onyx-2.2.Modelfile --size 31b # just one
flash-onyx-2.1:12b for flash-onyx-2.2:12b and carry on.num_ctx to 65536 if you set it yourself, and expect about a minute more before the first token on a cold load, once per load rather than per message.python3 models/build.py models/flash-onyx-2.1.Modelfile