Repository navigation
Releases
v0.2.5 (early release)
Install or update:
- macOS / Linux:
curl -fsSL https://enowx.ai/install.sh | sh - Windows (PowerShell):
irm https://enowx.ai/install.ps1 | iex
Each archive has a .sha256 checksum beside it.
Fixes
- Agents no longer sit forever on a command that never ends, on Windows
especially. When a shell command timed out or was stopped, only Unix
killed the whole process tree; on Windows the shell's children (a dev
server, a watcher, a prompt waiting for input) kept running and enowx
waited on them for good, so the agent looked stuck and Stop did nothing.
The tree is now ended withtaskkill /T /F, and the wait after a kill is
bounded everywhere. - A model stream that goes silent is retried after 3 minutes without a
byte, instead of holding the turn until the request's 10-minute limit. - A formatter that never exits no longer holds the edit that ran it; it
is stopped after 60 seconds. - A sub-agent that has made no progress for 5 minutes says so in the
sidebar (quiet 7m), with a hint to right-click it to stop it. - Stopping a sub-agent that is no longer running (stopped already, or
left from an earlier run) marks it stopped instead of leaving it shown as
at work. - A session with a damaged line still opens and resumes: the line is
skipped instead of refusing the whole session, and opening a sub-agent's
transcript that cannot be read says why. On Windows, saving retries
briefly when another program holds the file for a moment.
v0.2.4 (early release)
Install or update:
- macOS / Linux:
curl -fsSL https://enowx.ai/install.sh | sh - Windows (PowerShell):
irm https://enowx.ai/install.ps1 | iex
Each archive has a .sha256 checksum beside it.
Fixes
- Quitting no longer freezes while a specialist is at work under an ACP
lead. An ACP agent's delegation ran the specialist inside the lead's tool
call, and quitting waited for that turn to end. Stopping the lead's turn
now answers the call at once, quitting stops the specialists still at work,
and the exit never waits more than a few seconds for a turn. - The sidebar names the engine a specialist runs on. With
/acpin use,
every specialist runs on that agent, but its row showed enowx's configured
model; it now readsClaude Code (ACP)and its model. - enowx, not enx, everywhere you read it: the quit dialog,
/updateand
its status lines,enowx update, and the messages that tell you which
command to run.enxstill works as a second name for the command. enowx devruns the rebuiltenowxinstead of a binary that no longer
exists.
v0.2.3 (early release)
Install or update:
- macOS / Linux:
curl -fsSL https://enowx.ai/install.sh | sh - Windows (PowerShell):
irm https://enowx.ai/install.ps1 | iex
Each archive has a .sha256 checksum beside it.
Agents
- The lead decides instead of asking. The orchestrator brainstormed almost
every build request and asked which checks to run, so even a small, clear
project started with questions. It now goes straight to work, fills open
details from the request, the code and convention, and states its
assumptions in one line. A brainstorm runs only when you ask for one, or
when a large new product's purpose cannot be told from the request. It asks
only what is yours to decide (taste nothing hints at, money, anything
irreversible, credentials), once, with a recommendation. The check wave
(review, tests, security where it matters) runs without a question, plan
documents are written only when you ask for them, and inside a brainstorm
the stack is decided, not asked. The maestro follows the same rules.
ACP agents
- Run the session on Claude Code, Codex, Gemini CLI, Kiro CLI or any ACP agent.
/acp claudeputs the lead and every specialist on it, after installing its
adapter into~/.enx/acpif needed (never globally) and checking the
sign-in; names complete as you type./modeland/effortthen list what
that agent offers, read from it, chosen with the arrows and kept per agent;
specialists use the same model./acp off(or/native) goes back to
enowx's own model, and/acpalone lists the agents with their status.
The status bar always says which is in use, with its model, effort and
permissions. Settings > ACP agents has a card per agent (status, default
model and effort from its list, permissions, run the session on it) and a
row to add a custom ACP agent. Permissions are ask me by default, enowx's
rules, or bypass (only when chosen, with a warning). The agent gets the
role's prompt, and enowx's skills, delegation to its specialists and
questions to you over a local MCP server (127.0.0.1, a random bearer token
per session); its messages, reasoning, tool calls, diffs and plan show as
enowx's own, Esc cancels its turn, and it stays warm between turns.ein
the roster puts one agent on another engine, for mixing.enowx acp status
andenowx acp install <engine>work from a shell. - Kiro CLI is built in.
/acp kiroruns the session onkiro-cli acp
(1.25 or newer, found on thePATH, never installed by enowx); its card
shows the version and the account type signed in, without the email, and
/modellists Kiro's models. It runs as enowx's own Kiro agent
(~/.kiro/agents/enowx.json, never in the project, never over a file the
user wrote), so it loads only enowx's MCP server instead of the ones in the
user's Kiro config and their OAuth prompts. An agent's error now carries its reason (the
model not available on the plan, say) instead of "Internal error".
Composer
- Earlier prompts with Up and Down, and Ctrl+W to erase a word. Up on
the composer's first line brings back the prompts sent in this session,
newest first, and Down on its last line steps forward again, back to what
you were typing. Ctrl+W erases the word before the caret, as in a shell; it
is also what Windows Terminal sends for Ctrl+Backspace, which other
terminals report either as itself (already handled) or as a plain
Backspace. Reported in #37.
Install and update
enxandenowxare both the command. The installers putenxbeside
enowx(a link on macOS and Linux, a copy on Windows), and updating keeps
both names on the new version whichever one ran. An olderenowxorenx
elsewhere on thePATH, such as onecargo installleft in
~/.cargo/bin, is pointed at the new install, so the old version no longer
starts; a program namedenxthat is not enowx is left alone.enowx updateworks again. It still asked for archives named
enx-<target>, which v0.2.2 no longer published, so it failed. It now asks
forenowx-<target>, and releases also publishenx-<target>with both
names inside, soenx updatefrom v0.2.1 andenowx updatefrom v0.2.2
reach the new version.- Uninstall.
ENOWX_UNINSTALL=1with either install script removes both
names.~/.enx(settings, keys, sessions) is never touched.
Decision model
- A decision model for small typed judgements, off by default. The
Decision model section of Settings (or/decision) picks a provider behind
one interface:
Clef on Cloudflare Workers AI, TypeSafe's Jev, any endpoint speaking the
same API, or a model already configured in enowx asked for JSON. Five uses,
each on its own switch and threshold: whether a message asks for a
brainstorm, which specialist it is for, whether a question is the user's
to answer, whether a long tool result is carried whole, and whether a shell
command needs the user's word first (an unsure answer always asks). Every
judgement has a hard timeout (300 ms by default) and falls back to the
usual path when late or failing; shadow mode records decisions without
acting on them. Decisions are logged to~/.enx/decisions.jsonl, listed
in the Log tab, and printed byenowx decisions.
Removed
- TypeSafe integration. The TypeSafe (System One) judge that trimmed tool
results and kept live turns through compaction is gone, with its Settings
section, the/typesafecommand, the sidebar trim count and the Log tab's
context filter. Tool results are always kept whole and compaction is the
plain fold by age, which is what ran without a TypeSafe key. enowx no
longer contacts TypeSafe. A[typesafe]table left inconfig.toml
still loads, is ignored, and is kept as written when the file is saved;
TYPESAFE_API_KEYis read only as the key of the Jev decision model, above.
v0.2.2 (early release)
Install or update:
- macOS / Linux:
curl -fsSL https://enowx.ai/install.sh | sh - Windows (PowerShell):
irm https://enowx.ai/install.ps1 | iex
Each archive has a .sha256 checksum beside it.
Renamed to enowx
- The command is now
enowx, notenx. The project name and the binary
areenowxeverywhere;enx auth loginbecomesenowx auth login, and so
on. The install scripts, release archives (enowx-<target>), docs and the
website useenowx. Your data in~/.enx/is left where it is, so settings,
keys and sessions carry over; only the command you type changed. Old
ENX_*environment knobs still work alongside the newENOWX_*ones.
Models and agents
- A model manager that tests before it assigns. A new
model-manager
skill (carried by the orchestrator and maestro) helps set a model per agent:
enowx models listshows the connected providers and their models, and
enowx models test provider/modelmakes one tiny call and reports whether
it answered, how fast, and the tokens. The skill lists what you own,
brainstorms a mapping, tests every candidate, and sets only the ones that
answered. - The footer and
/modelfollow the active agent's model. Setting an
agent to another model shows at once; picking a model while an agent has its
own changes that agent's model, not the conversation's. - Each delegated sub-agent shows the model it runs on, in the sidebar list
and the log. - Stopping a sub-agent asks first (a right-click opens a confirm that
defaults to keeping it).
Agents
- Brainstorm no longer asks how the work is built. It asks only what is
yours to decide (purpose, scope, look, content) and reads the one relevant
skill before offering options, so it never invents tool choices or asks you
to do a step a tool can do. - A
motion-videoskill: render a video file (an explainer, an animated
logo) from code with synthesised sound, instead of reaching for video
software or asking you to record.
v0.2.1 (early release)
Install or update:
- macOS / Linux:
curl -fsSL https://enowx.ai/install.sh | sh - Windows (PowerShell):
irm https://enowx.ai/install.ps1 | iex
Each archive has a .sha256 checksum beside it.
Interface work
-
Everything that can be set is in Settings. New sections: General
(browser preview, language server checks, background delegation,
switching agent by itself, compaction and its threshold, model calls per
turn, the shell timeout, the model for each tier), Display (sidebar,
currency and rate) and TypeSafe. Each field is saved through the same
checks asenx config set, and a bad value is refused with why. -
Structure before styling:
ui-structureandui-anatomy. The
frontend, canvas and mobile agents now write a blueprint before any
code: the screen's job and its one primary action, the regions its kind
of page needs in order (homepage, dashboard, list, detail, settings,
form, sign-in, pricing, docs, article, checkout) with why each is there,
the skeleton in numbers (container, gutters, grid, spacing, what each
breakpoint changes), and the components with their states. They build
in a fixed order (tokens, layout primitives, components, sections, the
page) and every control meets its contract inui-anatomy: parts,
variants, sizes, every state, keyboard. -
Reviewers judge structure before taste. Content touching the
window's edge, sections on different left edges, mixed surfaces, cut-off
phone layouts, selected states shown by a shade, invalid submits and
missing loading, empty or error states rule outGood; a page not seen
in a browser is never called good to look at. -
previewreports more: content touching the window's edge (no
gutter), content cut off past it, and a theme toggle with text on it.
Agents and delegation
- The orchestrator and maestro can stop a delegation at work with
stop_delegationand a reason; its report says who stopped it and why,
and the list of delegations still running now gives their sessions. - Each delegated sub-agent shows the model it runs on in the sidebar
list and the log, so a glance shows what is answering each one. - Stopping a sub-agent asks first. A right-click in the sidebar used to
stop it at once; it now opens a confirm that defaults to keeping it, so a
stray click stops nothing.
Models
- A model manager that tests before it assigns. A new
model-manager
skill, carried by the orchestrator and maestro, helps set a model per
agent:enx models listshows the connected providers and their models,
the model in use and the per-tier and per-agent ones;enx models test provider/modelmakes one tiny call and says whether it answered, how
fast, and the tokens, failing with the provider's own error. The skill
lists what you own, brainstorms a mapping, tests every candidate, then
sets only the ones that answered. - The footer and
/modelfollow the active agent's model. Setting an
agent to another model used to leave the footer on the old one until the
next/model, and picking a model while an agent had its own changed the
conversation's model, not the agent's. Both now track the agent that is
answering. antares --versionand--helpwork as commands (the CLI took a
leading flag as an option of the default serve).
v0.2.0 (early release)
Install or update:
- macOS / Linux:
curl -fsSL https://enowx.ai/install.sh | sh - Windows (PowerShell):
irm https://enowx.ai/install.ps1 | iex
Each archive has a .sha256 checksum beside it.
Still an early release: expect rough edges, and please report them in
Issues. The highlights: settings move to a Settings tab beside the chat;
agents can work together (messages, a shared board, cross-review) when you
turn it on; built-in code search over your project (rag); built-in MCP
servers for Coolify, Dokploy and your VPSes; a stopped or failed sub-agent
can be read back by the agent that sent it; every shortcut now works on
Linux, macOS and Windows; and enx updates itself (enx update, /update).
Agents and delegation
-
Sub-agents count, and are logged. What a delegated agent uses comes
up to the interface as it works: the Log tab lists every agent's model
calls, retries, trims and errors, named; the SESSION card's newused
row and the cost count the whole session, sub-agents included (a
reviewer's tokens too); and with a sub-agent's transcript open, the
context shown is that agent's own. -
A finished sub-agent leaves the sidebar once its transcript is
cleared, so no row leads nowhere; one at work, failed or stopped stays. -
One reviewer across cross-review rounds. It waits between rounds in
its own session (so the delegate can answer it) and carries on there,
keeping its context and the prompt cache. -
Stop a sub-agent with a right-click on it in the sidebar. Its caller
gets a report that it was stopped by the user, with the files it had
changed and what it said last, and is woken by it like any report; its
transcript is kept. -
The orchestrator and maestro can read what a delegation did
(delegation_log): what it was asked, said and called, so after one is
stopped or fails the next brief starts where that work stopped. -
Agents can work together (Settings > Team, off by default). Agents at
work at the same time message each other (message_agent), share a board
for the run (team_board), and a delegate's work that changed files is
cross-reviewed: the reviewer's corrections go back to the delegate and the
work is checked again, up to the rounds set (1 to 5). Each part can be
turned off on its own. -
New
maestroagent: an all-rounder in the LEAD group. It has the
orchestrator's reach (delegate and hand off to anyone) but carries every
tool, so it can change files, run commands and check interfaces itself
rather than only handing work out. For a job that mixes doing and
delegating. The orchestrator stays the default; pick it with
/agent maestro. -
A delegated agent always comes back with a report. The four fields
(DONE, CHANGED, VERIFIED, NEXT) are now read however the model dresses them
(markdown, changed case); every ending without a report is nudged; after two
nudges the model is asked once more with no tools, so all it can do is write
the report; and if it still will not, the caller gets the four fields built
from what the branch actually did. -
A delegation at work is never run twice. Resuming a branch that is still
running is refused, and the orchestrator is told up front what it left
running, so a "continue" from the user can no longer start the same work a
second time. -
A finished delegation is cleaned up. Once a delegation reports
successfully its report stays in the conversation and its transcript (and any
delegation under it) is deleted instead of filling the disk. One that failed
or stopped short is kept, to be resumed. -
Reviewers are firm, tidy and honest.
reviewandperfopen with one
verdict on a fixed scale (Good, Good with fixes, Needs work, Bad) that
follows from the findings, call bad work bad and good work good with the
reason, and treat inconsistency as a finding rather than a nit to drop. -
Give an agent its own model from the roster. In
/agent,mopens the
model list for the selected agent anddputs it back on the default.
Every agent shows the model it runs on under its description.
Interface
-
enx updates itself.
enx updateinstalls the latest release in place
of the running binary after checking its published checksum (--check
only looks,--forcereinstalls). The interface looks for a new release
in the background at start and notes it in the status bar until
/updateinstalls it. Settings > Updates turns the check off, or has it
install by itself, used from the next start. -
Line edits show as diffs. An edit by line anchors used to show the
tool's raw anchored text; it now returns a small diff the interface draws
like any edit. -
Chat and Settings tabs at the top right. Settings takes the whole main
column in place of the chat: its sections (Models, Providers, Agents, Team,
MCP, RAG, Skills, Sessions, Theme) are listed on the left and the chosen one is
beside them.Ctrl+Pswitches between Chat and Settings. Settings opens
on the section list:Up/Downpick a section,Entergoes in, andEsc
steps back one level (form to list, section to section list, list to
chat); a click on a section picks it, a click inside goes in. The searchable command list
moved to/commands(typing/still lists commands inline). -
Queue messages typed while a turn runs. Enter during a turn puts the
message in a queue above the composer, with a[send now]button; queued
messages go one at a time as each turn ends.Ctrl+EnterorCtrl+Ssends
now,Shift+EnterorAlt+Enteris a newline at any time, andUpin an
empty composer edits the last queued message. -
/handoffto a fresh session. Folds the conversation into a summary in a
new, light session held by the same agent; asks first whether to keep the old
session's history or delete it. -
The SESSION card shows what the session costs the machine: the memory and
CPU of enx and the processes it started (MCP servers, language servers, the
preview browser), and the history on disk. -
A sub-agent's transcript is read only. Viewing a delegation shows no
composer; nothing is typed or sent from it. -
The wheel scrolls, a row at a time, and never moves a selection. In
any list (models, MCP, skills, sessions, the command list, a settings form)
the wheel scrolls the view and leaves the selection where it is; the next
key brings the view back to it. The side card scrolls by lines instead of
turning pages, its position shown as▲ 21-40/69 ▼. In Settings the wheel
over a section scrolls it at once, without Enter. -
Every shortcut works on Linux, macOS and Windows. Each one has a form
that reaches enx through the terminals that swallow the first:Ctrl+Ssends now where a terminal cannot tellCtrl+Enterfrom Enter;
Shift+Enteris a newline where it can.- Terminals that speak the kitty keyboard protocol (kitty, WezTerm, foot,
Ghostty, Alacritty, iTerm2) are asked to use it, so those keys are told
apart there. Alt+Upopens the message menu (macOS takesCtrl+Up),Alt+V
attaches from the clipboard (Windows Terminal takesCtrl+V), and
Alt+B/Alt+Fpage the sidebar (macOS sends them for Option+arrows).- AltGr characters (
@,{,€on many European layouts) type on
Windows instead of being read as Ctrl+Alt shortcuts. - A multi-line paste on Windows arrives as one paste instead of sending
each line as its own message. Ctrl+BackspaceandAlt+Backspaceerase a word;Ctrl+Dquits only
from an empty composer and erases forward otherwise; anAltchord no
longer types its letter.
-
Ctrl shortcuts instead of function keys, since not every terminal passes
F-keys through:Ctrl+Tnext sidebar tab,Ctrl+G/Ctrl+Xthe log's filter
and detail, and in/modelCtrl+Nadd,Ctrl+Eedit,Ctrl+Rrefresh.
Models
- Model names are matched however the upstream spells them.
claude-opus-4.7,
claude-opus-4.7-1m,anthropic/claude-opus-4.7:thinking,
us.anthropic.claude-opus-4-7and the like now resolve to the right
catalogue entry, so context window, prices, vision and thinking efforts are
correct. The maker's listing wins over a reseller's. - Edit a model's properties (context window, thinking effort, vision,
prices) from the model list.
Built-in MCP servers
coolify,dokploy,vpsandrag, served by enx itself (no Node or
Python). All four are listed in/mcp, off by default;Tabturns one on,
andcopens its setup form. Credentials can also be set from the CLI
(enx mcp set coolify --url ... --token ...,enx vps add), which an agent
can run for you, and the running session reloads MCP the moment they land:
no restart.enx mcp clear <name>forgets a setup. Tokens and passwords go
toauth.json; secret fields and environment values are redacted from tool
output; a VPS host key is pinned on first connection.- RAG indexes by itself and cuts code along its syntax. The workspace
is indexed when a session starts, a file an agent writes or edits is
indexed the moment the tool returns, other changes every half minute, and
everything right before each search, so agents no longer callindex
first. Indexing runs at low OS priority and holds its full scan while a
turn runs.
Chunks follow the syntax tree: a function, type, method or config key is
whole, with its comments, and carries where it sits and what it defines;
only an item over about 4,000 characters is split, along its own body.
Markdown is cut at headings, other text at paragraphs. Code that only
moved keeps its embedding. Turn auto-indexing off in Settings > RAG or
with--auto-index off. vpssigns in the waysshdoes. Encrypted key files (with their
passphrase), PuTTY.ppkkeys, ssh-agent (Pageant and the OpenSSH agent on
Windows), hosts writ...
v0.1.0 (early release)
Early release: the first public build of enx. Expect rough edges and bugs; please report them in Issues.
Install:
- macOS / Linux:
curl -fsSL https://enowx.ai/install.sh | sh - Windows (PowerShell):
irm https://enowx.ai/install.ps1 | iex
Each archive has a .sha256 checksum beside it.