Releases
This page announces each new release of Enkaidu with a skimmable tour of what’s new. For the complete and granular record, see the release notes on GitHub.
0.9.16 Latest
This release teaches the Web UI to draw: Draw.io diagrams render as interactive previews, failed diagram and chart renders surface an error instead of hanging your tab, and /bye tells you when the session is closed and the tab can be. It also lets the markdown-fetch tool save long pages to a file instead of getting truncated, and adds Crystal support to the cordon sandbox.
Core capabilities
- Draw.io diagram previews - fenced
drawioblocks render mxgraph (Draw.io/diagram.net) XML as interactive diagram previews with the usual options to see the source and save the diagram. Content that arrives in an unlabeled orxmlfence containing<mxfile>/<mxGraphModel>markup is recognized and rendered too. The preview is approximate - unsupported shapes render as placeholder boxes - so save the diagram file and open it in the Draw.io app for full fidelity. Details http_get_web_page_as_markdowncan save to a file - a newsave_as_fileparameter allows the models to write the full converted page to a file - the >32K truncation doesn’t apply to saved files - the intended remedy for pages that would otherwise get truncated, withoverwriteto replace an existing target. Web toolset- Crystal support in the cordon sandbox - a new
using_crystaloption in the cordon’sworkspace:section:using_crystal: true(defaultfalse) uses the$HOME-based shared cache folder, orusing_crystal:withshared_cache_path:points the Crystal shared cache at a custom location to improve compilation times. Cordon settings - Web tools follow redirects -
http_get_web_page_as_markdownandhttp_get_web_pagenow follow redirects (301, 307, 308) up to three times when fetching web content. Web toolset
Web UI
- Informational slash-command content cards - commands like
/helpor/tool lspresent their output as a content card that opens automatically while it’s the latest thing in the transcript and auto-collapses to a compact header when the next event arrives; the card is a standalone entry that is never folded into an activity group. Details - Session-closed notice after
/bye- once the session ends, the prompt bar is replaced by a one-line notice — Enkaidu has stopped. You may safely close this tab. — so there’s nothing left to do but close the tab. More - File picker in the prompt bar - press
Cmd-F/Ctrl-Fto open a file picker over the files in the current folder: start typing to narrow the list to matching files,Enteron a folder to dig into it, andEnteron a file to select it. More
Removed
- Experimental toolset removed - the
Experimentaltoolset and its two tools (str_regex_replace_in_text_file,apply_patch_to_text_file) are gone - the models have improved and the other text editing tools have become much better, so neither is needed.
Under the hood
- Rendering and grouping match the docs - failed Mermaid and Vega-Lite renders show an error message instead of spinning (which could crash the tab); activity groupings show every tool call; the macro picker only appears while editing the macro name; and up/down history navigation in multi-line prompts now respects your cursor position.
0.9.15
This release closes the Web tools’ allow-all loophole: an unset allowed_hosts list no longer means ’everything is reachable’ - a host you haven’t decided about now asks you first. It also makes the Web UI’s prompt history searchable and lands you ready-to-type.
Core capabilities
- Host policies now gate web access - behavior change, not new keys: an empty
allowed_hostslist now means no host is always-allowed (in 0.9.14 an unset list allowed all hosts);denied_hostsempty means nothing is always-denied, andallow_private_hostsis unchanged. A host that is neither allowed nor denied is no longer silently fetched. Web toolset - Permission prompts for unknown hosts - when a Web tool reaches for a host on neither list, you decide: the terminal UI presents a four-letter choice (
aallow,ddeny,Aallow always,Ddeny always), and the Web UI shows Allow / Deny buttons plus a[ ] Remembercheckbox. Allow-always/deny-always persist into that tool’s own lists - each Web tool (http_get_web_page_as_markdown,http_get_web_page) keeps separate lists. Details /session pop_and_transformpromoted out of experimental - transforms the last response into a synthetic conversation (prefix+response) and returns you to the parent session; behavior is unchanged in this release, the command is simply no longer experimental. Details/thinknormalized to work like the other slash commands - instead of bare/thinkand/think <EFFORT>, use/think currentto show the currently configured thinking effort level and/think set <LEVEL>to change it. Detailsexclude_past_reasoningturns - the setting now accepts a positive number of turns: withN, only reasoning from turns older than the lastNturns is excluded, preserving recent reasoning. Details
Web UI
- Prompt-history search - press
Cmd-K/Ctrl-K(alsoCmd-R/Ctrl-R) to open a search prompt and type to filter your past inputs - the same history shared and synced with the CLI. More - Macro picker - start typing
!in an empty prompt bar and a picker of your available macros appears; keep typing to narrow the selection and the macro name auto-completes. More - Ready to type on launch - input focus lands in the prompt bar when the web UI opens.
Under the hood
- Unique session IDs - every session now generates a unique UUID that Enkaidu sends to the protocol server in the
x-session-idheader; forked sessions - including sub-agent sessions - get their own unique IDs, distinct from their parent’s.
Experimental !
Experimental features may change a lot or even go away entirely.
- Custom terminal styling - style terminal output elements from
enkaidu.ymlwith a top-levelconsole:section: map element names (e.g.query_prefix_by_user) tofg:/bg:colors (named ANSI, 256-palette index, or RGB) andformat:options likeboldanditalic. Configuration /session x-squish- “squish” the current session history by keeping the initial request and final response for each turn and dropping everything in between - all tool calling and intermediate responses - significantly shrinking the session while retaining all request outcomes and nothing more. Details
0.9.14
This release makes network and web access more precisely yours to control: network access inside the cordon is now granted per command, the Web tools gain host policies, and the markdown fetch tool parses HTML properly and tells you when it truncates.
Core capabilities
- Per-command network access in the cordon -
shell_commandgainsnetwork_allowed_commands: a list of (prefix-matched) commands that run with network access when the cordon is enabled. Requirescordon.policy.allow_network: true; every other allowed command runs without network. Allowopsbroadly but grant network only toops test, for example. Details · Configuration - Host policies for the Web tools -
http_get_web_page_as_markdownandhttp_get_web_pageeach supportallowed_hosts(allow all if unset),denied_hosts, andallow_private_hosts(defaultfalse) to control which servers they can be used to reach. Web toolset Superseded in 0.9.15: with the interactive approval prompts, an unset list silently allowing every host is exactly what we no longer need - an unsafe (allow-all-by-default) mode is gone.
Improvements
- Real HTML → Markdown conversion -
http_get_web_page_as_markdownnow parses incoming HTML properly when converting to Markdown; content over 32K characters is truncated, and the tool returns the URL plus atruncated: true | falseproperty alongside the markdown. Details
Experimental !
Experimental features may change a lot or even go away entirely.
- Sandboxed config loading - when running with
--sandbox, Enkaidu no longer loads config/profile from inside the sandbox folder (the folder the model works in); it looks in the parent folder instead, so the config stays under your control. This anticipates re-using past sandboxes, sort of like sessions, in a future release. See Command Line.
0.9.13
This release widens how you can reach your models, makes the files Enkaidu touches one click away, and tightens the keyboard workflow - plus a hardened Web UI.
Core capabilities
azure_foundryLLM provider - connect to Microsoft AI Foundry with a newazure_foundryprovider type, targeting Open AI / chat-completion models. Set theAZURE_FOUNDRY_API_KEYand the bare endpoint URI inAZURE_FOUNDRY_ENDPOINT. Configure Azure AI Foundry.temperaturemodel setting - tune how “creative” a model is per model viasettings: temperature(a number> 0and<= 2, ordefault). Learn more.- Profile overrides for
session:andcordon:- a.enkaidu/config.ymlprofile can now carrysession:andcordon:sections, so a homeenkaidu.ymlholds your base setup while a project’s profile overrides just what that project needs. Details. - Cordon networking - a new
cordon.policy.allow_networkflag lets commands run inside the cordon reach the network. It is all-or-nothing at this time, so enable it with care. Details.
Web UI
- One-click file viewing - when Enkaidu writes or edits a file, a button labeled with the file’s name appears above the response; click it to open a side panel with the file’s current contents. See it.
- Preview rendering - Markdown code blocks and rendered content (diagrams, charts) preview even while streaming, with a source view available. Rich output.
CLI & keyboard
- Prompt history navigation - while editing a prompt, use
Up/Downto walk back and forward through your history. It is shared, and kept in sync, between the CLI and the Web UI. More. - Command Line reference - a complete, most-common-first reference of the command-line options. Read it.
Security
- Hardened Web UI rendering - generated HTML / CSS and SVG diagrams are now sanitized, closing potential vulnerabilities when rendering model-generated content.
Experimental !
Experimental features may change a lot or even go away entirely.
--sandboxruntime mode - run the current session in an isolated, randomly named sandbox folder under$HOME/.local/state/enkaidu/sandbox. See Command Line.
Older releases
For the full history of changes prior to 0.9.15, see the release notes on GitHub.