You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Scan is new. It reads a repository for security bugs, explains each one and can propose a fix. Run it from the Security view in the desktop app or with koder scan in the terminal. Koder reads the code but doesn't run it yet, so every finding is a likely issue, not a proven one. Review each one before acting on it.
koder scan can write a SARIF report and exits with an error when it finds something at or above the severity you set with --fail-on (high by default), so it can gate a CI job.
Every likely issue is shown by default, worst first.
On a public repository a fix is offered as a patch to copy, never as a pull request.
The scan setup step is titled "Where code runs".
On aixplain models, a scan's spend and limit are shown in credits, in the desktop app and in koder scan.
Desktop
Every project's sessions in one sidebar. What is running or waiting on you sits at the top with a short line such as "running 4m" or "waiting for you". The rest can be grouped by date or by project, or narrowed to one project. Rows are quieter: a title and a time, with the project and a menu on hover.
A clearer chat box. The model shows its full name, the thinking level is the one the request really uses, and the access mode reads Ask first, Auto or Full access. Approvals show exactly what you are approving.
The context meter measures the model's whole window, with the point where the chat gets summarized marked on the bar. The Context tab is now three short cards: the window, the last reply and the session.
Files from the file tree. Right-click a file or folder to open it, open it in its default app, show it in your file manager, copy its path, or open a folder in the terminal. Video, audio and PDF files play or show inside the app.
The Agents page shows how an agent is built: its model, tools and skills, member agents, input and output, step limit and instructions. It also lists large workspaces with a thousand agents or more.
Usage limits show your pace. Each limit window says whether you are ahead of it, behind it or on pace, and a second account signed in under its own name is listed too.
Design exports show progress. MP4, PDF and PPTX exports show how far they have got and the time left, can be cancelled, and keep going if you reload the app. Video recording is about three times faster.
Closing the window on macOS no longer quits the app.
Restart brings the app's server back without relaunching the app, and works after the server has crashed.
The app no longer reports a lost connection while its server is only busy.
Auto and Full autonomy now keep going on their own in the desktop app. Before, they stopped after the first reply.
In dark mode, errors are a clear red, distinct from the aixplain coral of the logo.
Stopping a command shows it as stopped, in grey, not as a red error. Omni shows a stopped step quietly too.
When a provider can't be reached, the error reads "Couldn't reach the provider", with the technical details behind a toggle. Try again puts your message back in the chat box.
No card, panel or list draws a coloured edge bar. The settings menu, the approval bar, running steps and the selected slide in Design use a tint instead.
The Review header no longer cuts off its title. When the panel is narrow, its controls move to a second row.
Relative times, durations, "This computer" and "by aixplain" now follow your language. In Arabic, the shell mode's label is translated too.
When the window is narrow, titlebar buttons fold into a "More options" menu instead of covering the Koder, Design and Omni switch.
The desktop app is named aixplain in the macOS app menu (About, Hide, Quit), the tray, the window title and update notifications. The menu and tray use the installed app's name, so a development build says aixplain Dev. Koder is still the name of the coding mode.
Omni
Build agents with Omni. Omni shows agents as cards in the chat. Open one beside the chat to test it and change its setup, or build a new one together with Omni. This works for aixplain agents and for agents on this computer.
The answer comes first. A finished turn folds its steps into one line, such as "Listed a folder and unzipped files · 46s", with the answer right under it.
Every step says what it did, including saving a skill, scheduling a task or setting a default app. A step that failed says "Tried to …", and one you declined says it didn't happen.
A check whose answer is "no" is no longer shown as a failure.
A reply stays in one paragraph, with file cards after it instead of in the middle of a sentence.
A refused step reads "Tried to run a command", and a turn where every step was refused says it stopped because you didn't approve it, not "Ran 1 step".
Omni's home shows what waits on you: chats stopped at an approval or a question, scheduled runs that failed in the last day, and the conversations you were last in. It shows nothing when there is nothing real to show.
The composer is one line and grows when the text wraps. There is one microphone button; its dictation mode is in Settings.
The Omni sidebar header is the title with search and new-conversation buttons. Search opens in place of the title, and Omni settings are on Omni home, in Settings and in the command palette.
A recent card can be removed from its ⋯ menu or with Delete, and Undo brings it back for a few seconds.
The card takes shape again as you type. A clear reading shows in full colour and rises into place, and only an unsure one is faint.
A summarized conversation shows one line, "Earlier messages summarized", that opens the full summary. This is the same in Koder and in the terminal.
⌘N starts a new chat from every page.
Omni's aixplain tool runs again.
Setting up the aixplain SDK finds Python 3.9 or newer even when the default python3 is older, and says what to install when there is none.
"Workspace" now means only your aixplain workspace. Where it used to mean a folder, it says "project".
The aixplain mobile app can pair with this computer by address and code, start an Omni chat on a computer that hasn't had one yet, and unpair itself when you remove the computer.
Terminal
Ask really asks. Commands, file changes and network calls now wait for your approval under Ask. Before, Ask only followed the rules, and the default rules allow commands and edits. That rules-only choice is now called Rules.
/pr can watch a pull request's checks and wake the chat when they pass or fail, when the pull request is merged or closed, or when new comments arrive.
On models with a timed prompt cache, a large idle chat whose cache has run out gets a /compact hint on the status line, and setting compaction.idle: true summarizes such a chat on its own just before its cache runs out. aixplain models have no timed cache, so neither applies to them.
Steering a turn with ctrl+o keeps background commands running. Stop and Esc still stop them.
A long wait on a background command no longer looks stalled, and the step shows Running until the command finishes.
A goal round shows as one muted line, "Keeps going on its own · round N", instead of a message you seem to have typed.
koder run --attach, koder attach and koder cron --attach say when the server needs a password, instead of "Session not found".
koder pr says what is actually missing (a remote, the host's CLI, a supported host or a sign-in) and how to fix it.
/stats shows each model by name with the provider that billed it, and the agent picker writes agent names the way the status line does.
A turn's Done time covers only that turn, including messages you sent while it ran. A refused step no longer makes the next turn's time too long.
The terminal app ships its code highlighters and never downloads one while running, so code in C, Python, Rust, Go and other languages is highlighted offline too.
The butterfly beside the prompt is the real logo at its true size, and only shows on terminals 40 rows tall or more.
The terminal has no coloured edge bars and no dots that only repeat the words beside them. The selected row is raised and bold, the aixplain coral is kept for the logo, and in dark mode errors are a clear red, distinct from it. Model prices and the spend rate are no longer coloured.
When Auto refuses something, it says what is outside Auto, such as pushing, and how to allow it: switch to Full with /auto full, or to Rules or Ask.
/auto lists the words it accepts: ask, rules, read-only, auto and full.
/stats shows durations under a minute in seconds, such as 38s, instead of 0m.
A stopped step is muted, not red, and the current session in the side rail has no extra dot.
Security and permissions
Full access still asks before pushes, folder and forced deletes, spending and secrets. Under the Full preset these ran without asking. Scheduled runs refuse them and record why.
Changes to the folders that hold agents, modes and commands always ask, however the path is spelled, through a link, or by a copy or move into them.
Omni can't remove an aixplain agent's inspector or make it weaker.
Approving a read of a secret file such as .env says the file can hold passwords or keys, and Always allow then covers only that file, not every file.
Reading a secret file such as .env through a shell command (cat, grep, head, cp, source…) now asks first, in every access mode, the same as reading it directly.
The scan key and the local server password no longer reach the shells, terminals and tools Koder starts.
A scanned repository's instruction files can't steer the scan.
File previews and opening in the default app only reach your projects. Programs and scripts are only ever shown in their folder, never opened.
Crash reports, if you want them. Koder can send crash reports to aixplain from the terminal and from every part of the desktop app. They are off until you turn them on in Settings > General > Privacy, or set "crashReports": true in your global config. A report says what kind of error happened and where in Koder's code, never your messages, files, folder names or keys. Nothing is sent when sharing is turned off, when your data residency policy doesn't allow it, with DO_NOT_TRACK=1 or KODER_TELEMETRY=0, in CI, or when an admin policy can't be read.
Dependencies are updated past this week's published security advisories.
Fixes
A message sent just as the previous turn ends is now answered. Before, it was saved and never read.
A tool server that hangs no longer holds up a turn.
Handing a chat to another agent sizes what it carries over to that agent's model, so a small model is no longer overfilled.
When no supported browser is found, Koder links to the list of supported browsers.
A call with invalid arguments shows as failed, with its reason, instead of a green check.
A tool that expects a list now also accepts the list sent as text, so a step no longer fails on how the model wrote its arguments.
Text you type right after sending from a new chat stays in order.
A step held on your approval says "Waiting for your approval", not "Running", in the desktop app and the terminal.
A Koder draft is still there after you switch to Omni and back.
After Unarchive in Find a chat, focus goes back to the search field, so Esc keeps working.
A text file attached to a message shows its file icon, not a folder.
In a narrow chat box the thinking control shrinks to its icon, so the model name has room. Titles and model names also read in the right order in Arabic.
Opening a pipe or other special file no longer hangs the file viewer, and a program without an extension is recognised as binary.
A chat in a worktree appears once in the sidebar, under its worktree.
Single line breaks in replies are kept, and inline math such as $b/a$ renders.
Changing the language updates the Settings menu straight away.
Chat titles name the topic or task, such as Reply with "pong" rather than "Pong response request". They keep their own quotes and are cut at a word.
Counts read correctly in every language, including "1 area" and "0 of 1 area".
A model shows one price, such as "$4.00 in / $20.00 out per 1M tokens".
The terminal shows spend in one unit, and a limit reads "$5" rather than "$5 USD".
Short reasoning reads "Thought" rather than "Thought for 1ms".
koder doctor no longer warns about a fresh install's default settings.
Design: export menu text no longer overlaps, a healthy design no longer reports a missing file, a really missing image or script is named, and the preview header keeps its controls apart at any width.
The New chat button in a Design session is always available.
Dots that only repeated the words beside them are gone from steps, "Thought" and approval titles.
Closing the terminal no longer logs an error, and a koder pr refusal is no longer logged as a crash.
Approving a change to an agent or settings file shows the command once, then the files with short paths, then why it always asks.
Notes
Upgrading keeps your sessions, saved permissions, schedules and theme.
The terminal app download is about 20 MB larger, because it now carries what it needs to make crash reports readable.
Licences
KO Sans by Abdo Mohamed (Kotype) is bundled with permission. Rampart by National Design Studio is used under CC BY 4.0.