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 drawio blocks 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 or xml fence 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_markdown can save to a file - a new save_as_file parameter 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, with overwrite to replace an existing target. Web toolset
  • Crystal support in the cordon sandbox - a new using_crystal option in the cordon’s workspace: section: using_crystal: true (default false) uses the $HOME-based shared cache folder, or using_crystal: with shared_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_markdown and http_get_web_page now follow redirects (301, 307, 308) up to three times when fetching web content. Web toolset

Web UI

  • Informational slash-command content cards - commands like /help or /tool ls present 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-F to open a file picker over the files in the current folder: start typing to narrow the list to matching files, Enter on a folder to dig into it, and Enter on a file to select it. More

Removed

  • Experimental toolset removed - the Experimental toolset 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_hosts list now means no host is always-allowed (in 0.9.14 an unset list allowed all hosts); denied_hosts empty means nothing is always-denied, and allow_private_hosts is 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 (a allow, d deny, A allow always, D deny always), and the Web UI shows Allow / Deny buttons plus a [ ] Remember checkbox. 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_transform promoted 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
  • /think normalized to work like the other slash commands - instead of bare /think and /think <EFFORT>, use /think current to show the currently configured thinking effort level and /think set <LEVEL> to change it. Details
  • exclude_past_reasoning turns - the setting now accepts a positive number of turns: with N, only reasoning from turns older than the last N turns is excluded, preserving recent reasoning. Details

Web UI

  • Prompt-history search - press Cmd-K / Ctrl-K (also Cmd-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-id header; 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.yml with a top-level console: section: map element names (e.g. query_prefix_by_user) to fg: / bg: colors (named ANSI, 256-palette index, or RGB) and format: options like bold and italic. 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_command gains network_allowed_commands: a list of (prefix-matched) commands that run with network access when the cordon is enabled. Requires cordon.policy.allow_network: true; every other allowed command runs without network. Allow ops broadly but grant network only to ops test, for example. Details · Configuration
  • Host policies for the Web tools - http_get_web_page_as_markdown and http_get_web_page each support allowed_hosts (allow all if unset), denied_hosts, and allow_private_hosts (default false) 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_markdown now parses incoming HTML properly when converting to Markdown; content over 32K characters is truncated, and the tool returns the URL plus a truncated: true | false property 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_foundry LLM provider - connect to Microsoft AI Foundry with a new azure_foundry provider type, targeting Open AI / chat-completion models. Set the AZURE_FOUNDRY_API_KEY and the bare endpoint URI in AZURE_FOUNDRY_ENDPOINT. Configure Azure AI Foundry.
  • temperature model setting - tune how “creative” a model is per model via settings: temperature (a number > 0 and <= 2, or default). Learn more.
  • Profile overrides for session: and cordon: - a .enkaidu/config.yml profile can now carry session: and cordon: sections, so a home enkaidu.yml holds your base setup while a project’s profile overrides just what that project needs. Details.
  • Cordon networking - a new cordon.policy.allow_network flag 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/Down to 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.

  • --sandbox runtime 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.