Code stops being a page inside Skales and becomes a program of its own: a window built for working on a repository, in the shape of a coding tool rather than a chat. Point it at a folder, watch it read, plan and ship the diff, review every change beside the transcript, and tell it once how you like to work. It runs the same engine as everything else and none of the identity.
New
Skales Code is its own window. Full width, no bubbles. Your line marked with a caret, the answers beside a filled dot, the tool lines in mono with what they touched, and a diff card under the edit that produced it. Your coding sessions sit down the left with the folder and how many files changed, and every file a step names is a link that opens it.
A terminal that is yours. A real one under the box you type in, dragged to whatever height you want: your login shell, in the session's folder, with your profile. Not a command field, so a text editor, an interactive prompt, colours, arrow keys and Ctrl-C all behave the way they do in a terminal. Several tabs if you want them. The agent can neither see it nor type into it, and what the agent runs has its own place further down.
A command that never ends can run in the background. A dev server, a watcher, a long build used to be a choice between a timeout and a blocked session. Now it starts, hands back a handle, and keeps going: its output appears under the step that started it and grows while you watch, and a strip above the status line lists everything that is running with how long it has been going and a stop button. Nothing limits how many run and nothing times them out. Stopping really stops it, so a port actually comes free.
A browser, and the project's files beside it. A page the agent just wrote, a dev server it just started, a file you want to look at: there is a panel for that, next to the transcript rather than instead of it, with an address bar, back and forward, reload, and open in your real browser. The file column lists what is in the folder and opens it with a click.
A page printed in the answer can be run where it stands. When Code writes a whole HTML page and shows it to you, the block carries two tabs: the source, which is still what opens, and the page itself, running.
Review what changed, then ship it, without leaving the window. A panel beside the transcript with the changed files, the diff, Keep and Revert per file, a commit box, and Create PR. Chat or Split from the title bar, and both panels can be dragged wider from their left edge with the mouse or the arrow keys.
Call any API from Skales. A tool for talking to a REST API or submitting a form: your method, your headers, your body, the answer back. A form shaped body is sent as a form, which is the difference between a request that works and one that quietly does nothing. Reading runs, writing asks first.
Your own accent colours. Three colours in Settings and the whole interface follows, with the contrast corrected against the page it lands on so nothing becomes unreadable. The soft glow behind the window follows them too.
Your own speech server, for reading aloud and for dictation. Point Skales at an OpenAI compatible speech endpoint of your own and it is used for both directions, with its own model, voice and key. Dictation also works inside Code, into the box you type in.
Tell it how you like to work, once. Two sets of standing rules instead of one: how you want to be answered, which travels with every conversation, and how you want code written, which applies to coding only. Both are plain text files you can also edit in a text editor, and a single coding session can override the coding one from the gear in the Code window.
New coding sessions start on what you choose. The gear in Code holds the defaults: which model a new session opens on, which agent runs it, and which working mode it starts in. Nothing there touches a session that is already open. Beside them, how the window reads: the typeface and the size.
Watch several agents work at once, and see what they cost. A session that sends out sub-agents shows them in a rail with what each is doing and its token count, running and totalled, with a stop for all of them.
The sidebar has two sides: Home and Work. One switch swaps what the top group holds; the shared groups stand in both, and so do Chat and History. The sidebar always shows the page you are on, so opening something from a notification no longer leaves the menu with nothing marked.
Sub-agents can get a role instead of everything. A dispatched sub-agent can be given a tool set that fits its job rather than the whole catalogue, either picked from its own task or pinned by you.
Changed
All eighteen AI providers are on the providers page. Fourteen of them were folded into a collapsed section, so the one page that answers what Skales can talk to showed four. They are all listed now, in a sensible order, with a filter for showing only the active ones.
In Code, the working mode decides what happens without asking. Ask and Plan change nothing, Code asks before every file change and every command, and Auto works inside the folder it is bound to without stopping. The panel says which is which, so the mode you pick is the answer rather than a setting somewhere else.
Skales says when it shortens a long conversation. A compaction used to happen quietly. It now says so, and says what was kept.
A team plan shows who waits for whom. The plan view carries the order of work rather than a flat list.
Lio AI has an address that matches its name.
Fixed
The mail test button works before you save, and says what it does. It was dead until the account was stored, which is backwards: testing is what you do before committing settings you are unsure about. It now checks what is in the form, and says out loud that it only checks the login, sends nothing, and changes nothing in your mailbox.
A mailbox that refuses your password by design now says which code to get. Some providers never accept an account password for mail and issue a separate authorisation code instead, and Skales answered with a generic credentials error, which sends you to check the one thing that was already right. Eight providers now get the sentence that helps, in the words their own settings use, and a failure that used to arrive as one unreadable word now says what actually went wrong.
Searching a project no longer stops everything else. Skales runs on one loop and every chat, poll and button shares it, so a search across a source tree held it for a quarter of a second in one block and a running conversation stuttered for reasons that had nothing to do with it.
A model picked in the Code window is the model that runs. The Code model in Settings quietly overrode it, so the picker showed one name while the run used another. That setting still applies where it should.
The settings panel in Code stopped loading and started answering. It sat on a loading line forever with nothing loading, because the instructions could not be read at all.
Tooltips in Code are no longer cut off. The ones on the title bar opened upwards out of the window, and the ones by the box you type in were painted over by the bar beneath them.
Code is quiet. Every reply used to raise a notification and play the chime, in the coding window, about the coding window, and the button on it navigated that window away to the chat and took the session you were watching with it. Notifications belong to the main window.
The agent list in Code shows four and scrolls. It opened as a column of every agent you have, over the transcript you were choosing it for. Skales itself is in that list now, for when you want it with its memory on a repository rather than the lean coding identity.
A Discover mention obeys the box that says it should not arrive. With notifications muted and both Discover types switched off, mentions and replies still filled the dashboard.
An emoji in Skales is Skales' emoji. Agent faces in Code were drawn by the operating system, and a lookup fault meant most hearts, hands and weather fell back to the system everywhere in the app. Both are fixed, and every built in agent now wears a face Skales can actually draw.
A rendered video no longer reports a check that never ran.
A chat that sends out sub-agents shows them working while they work, instead of listing them once they are done.
The browser window that opens by itself now says whose it is.
Flow finished opens Flow instead of taking over the window you are in.
A team task keeps its files together instead of scattering them, and a team task that stops moving ends and tells you where it stopped.
Fetch Available Models works on providers where it never could.
The updater cannot install a version that is no longer the current one.
Settings no longer shows you the name of a text instead of the text.
The Debug Panel works again on all five of its tabs.
The Execution Team room is visible in a light theme.
Code sessions show up again on a machine you have been using a while.
The sidebar breathes evenly. The gap under the provider box now matches the one above it, and with the sidebar collapsed the button is exactly as wide as the box above it.
Downloads
macOS on Apple silicon and on Intel, Windows, and Linux. The macOS builds are signed and notarised.