<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Enkaidu</title>
    <link>https://enkaidu.dev/docs/using_enkaidu/system_tools/</link>
    <description>Recent content on Enkaidu</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <copyright>Copyright © 2025, 2026 @nogginly and friends</copyright>
    <lastBuildDate>Wed, 16 Sep 2026 13:45:19 -0400</lastBuildDate>
    <atom:link href="https://enkaidu.dev/docs/using_enkaidu/system_tools/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title></title>
      <link>https://enkaidu.dev/docs/using_enkaidu/system_tools/shell_command_exec/</link>
      <pubDate>Wed, 16 Sep 2026 13:45:19 -0400</pubDate>
      <guid>https://enkaidu.dev/docs/using_enkaidu/system_tools/shell_command_exec/</guid>
      <description>&lt;h1 id=&#34;shell-command-execution&#34;&gt;Shell Command Execution&lt;a class=&#34;anchor&#34; href=&#34;#shell-command-execution&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;blockquote class=&#39;book-hint warning&#39;&gt;&#xA;&lt;p&gt;&lt;span  class=&#34;book-badge danger&#34;&gt;&lt;span class=&#34;book-badge-value&#34;&gt;As of 0.9.11&lt;/span&gt;&lt;/span&gt; the &lt;code&gt;ShellAccess&lt;/code&gt; toolset is no longer available. The &lt;code&gt;shell_command&lt;/code&gt; tool is a now a system-level tool which can be enabled using a session configuration property &lt;a href=&#34;https://enkaidu.dev/docs/using_enkaidu/configuration/&#34;&gt;documented here&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;h2 id=&#34;shell_command&#34;&gt;&lt;code&gt;shell_command&lt;/code&gt;&lt;a class=&#34;anchor&#34; href=&#34;#shell_command&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Executes one of the allowed shell commands within the current project&amp;rsquo;s root directory and returns the shell command&amp;rsquo;s output.&lt;/p&gt;&#xA;&lt;blockquote class=&#39;book-hint note&#39;&gt;&#xA;&lt;p&gt;&lt;strong&gt;Heads up!&lt;/strong&gt; The tool tries to err on the side of caution and detect and prompt you for confirmation even when you&amp;rsquo;ve approved commands but built-in (and custom) restricted strings are detected. Regardless, you &lt;strong&gt;and only you&lt;/strong&gt; are responsible for the outcome of any commands run via this tool.&lt;/p&gt;</description>
    </item>
    <item>
      <title></title>
      <link>https://enkaidu.dev/docs/using_enkaidu/system_tools/in_memory_state/</link>
      <pubDate>Wed, 26 Aug 2026 21:18:36 -0400</pubDate>
      <guid>https://enkaidu.dev/docs/using_enkaidu/system_tools/in_memory_state/</guid>
      <description>&lt;h1 id=&#34;in-memory-global-state&#34;&gt;In-memory global state&lt;a class=&#34;anchor&#34; href=&#34;#in-memory-global-state&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;span  class=&#34;book-badge info&#34;&gt;&lt;span class=&#34;book-badge-value&#34;&gt;As of 0.9.10&lt;/span&gt;&lt;/span&gt;&#xA;&lt;p&gt;Use of in-memory global state via tool calling must be allowed by enabling the session configuration &lt;code&gt;allow_global_state&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;get_global_state&#34;&gt;&lt;code&gt;get_global_state&lt;/code&gt;&lt;a class=&#34;anchor&#34; href=&#34;#get_global_state&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Get the values for one or more keys within a namespace in the global state available across sessions and turns, including the monotonically increasing revision number for the namespace&lt;/p&gt;&#xA;&lt;h3 id=&#34;parameters&#34;&gt;Parameters&lt;a class=&#34;anchor&#34; href=&#34;#parameters&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Parameter&lt;/th&gt;&#xA;          &lt;th&gt;Type&lt;/th&gt;&#xA;          &lt;th&gt;Required&lt;/th&gt;&#xA;          &lt;th&gt;Description&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;namespace&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;String&lt;/td&gt;&#xA;          &lt;td&gt;Yes&lt;/td&gt;&#xA;          &lt;td&gt;A namespace is a container of key/value pairs&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;keys&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Array of Strings&lt;/td&gt;&#xA;          &lt;td&gt;Yes&lt;/td&gt;&#xA;          &lt;td&gt;An array of one or more keys for which to retrieve the values. Unknown keys will return a &lt;code&gt;null&lt;/code&gt; value.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;set_global_state&#34;&gt;&lt;code&gt;set_global_state&lt;/code&gt;&lt;a class=&#34;anchor&#34; href=&#34;#set_global_state&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Set (or update) the value for one or more keys within a namespace in the global state available across sessions and turns.&lt;/p&gt;</description>
    </item>
    <item>
      <title></title>
      <link>https://enkaidu.dev/docs/using_enkaidu/system_tools/sub_agents/</link>
      <pubDate>Wed, 26 Aug 2026 21:18:36 -0400</pubDate>
      <guid>https://enkaidu.dev/docs/using_enkaidu/system_tools/sub_agents/</guid>
      <description>&lt;h1 id=&#34;sub-agents&#34;&gt;Sub-Agents&lt;a class=&#34;anchor&#34; href=&#34;#sub-agents&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Use of sub-agents must be allowed by enabling the session configuration &lt;code&gt;allow_sub_agents&lt;/code&gt;. This in turn ensures the system prompt includes guidance on how and when to use sub-agents automatically when responding to user requests.&lt;/p&gt;&#xA;&lt;h2 id=&#34;spawn_agent&#34;&gt;&lt;code&gt;spawn_agent&lt;/code&gt;&lt;a class=&#34;anchor&#34; href=&#34;#spawn_agent&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Run a prompt in a completely fresh, isolated context window and receive the result as &lt;code&gt;[query, response]&lt;/code&gt;. Ideal for consuming large amounts of tokens, handling self‑contained tasks, or avoiding context pollution.&lt;/p&gt;&#xA;&lt;h3 id=&#34;parameters&#34;&gt;Parameters&lt;a class=&#34;anchor&#34; href=&#34;#parameters&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Parameter&lt;/th&gt;&#xA;          &lt;th&gt;Type&lt;/th&gt;&#xA;          &lt;th&gt;Required&lt;/th&gt;&#xA;          &lt;th&gt;Description&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;prompt&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;String&lt;/td&gt;&#xA;          &lt;td&gt;Yes&lt;/td&gt;&#xA;          &lt;td&gt;The full instruction for the sub‑agent; be explicit, especially when not including history.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;include_caller_history&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Boolean&lt;/td&gt;&#xA;          &lt;td&gt;No&lt;/td&gt;&#xA;          &lt;td&gt;Set to true only when the task requires awareness of the current session (e.g., summarizing, continuing a thread). Defaults to &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;notes&#34;&gt;Notes&lt;a class=&#34;anchor&#34; href=&#34;#notes&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The tool spawns a temporary session, executes the prompt, and returns the query‑response pair. It is useful for multi‑step research or large codebase analysis.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title></title>
      <link>https://enkaidu.dev/docs/using_enkaidu/system_tools/tool_discovery/</link>
      <pubDate>Wed, 26 Aug 2026 21:18:36 -0400</pubDate>
      <guid>https://enkaidu.dev/docs/using_enkaidu/system_tools/tool_discovery/</guid>
      <description>&lt;h1 id=&#34;tool-discovery&#34;&gt;Tool Discovery&lt;a class=&#34;anchor&#34; href=&#34;#tool-discovery&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Tool discovery must be allowed by enabling the session configuration &lt;code&gt;allow_tool_discovery&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;install_tools&#34;&gt;&lt;code&gt;install_tools&lt;/code&gt;&lt;a class=&#34;anchor&#34; href=&#34;#install_tools&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Install one or more tools from the list of installable tools. Tool names are unique across toolsets.&lt;/p&gt;&#xA;&lt;h3 id=&#34;parameters&#34;&gt;Parameters&lt;a class=&#34;anchor&#34; href=&#34;#parameters&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Parameter&lt;/th&gt;&#xA;          &lt;th&gt;Type&lt;/th&gt;&#xA;          &lt;th&gt;Required&lt;/th&gt;&#xA;          &lt;th&gt;Description&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;tools&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;List of strings&lt;/td&gt;&#xA;          &lt;td&gt;Yes&lt;/td&gt;&#xA;          &lt;td&gt;List of one or more tools to install so they are available to call afterwards&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;notes&#34;&gt;Notes&lt;a class=&#34;anchor&#34; href=&#34;#notes&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The user must confirm the installation before the tools are loaded.&lt;/li&gt;&#xA;&lt;li&gt;Installation is performed across toolsets, and the function returns a JSON payload indicating success or partial success.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;list_installable_tools&#34;&gt;&lt;code&gt;list_installable_tools&lt;/code&gt;&lt;a class=&#34;anchor&#34; href=&#34;#list_installable_tools&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Obtain a list of available tools that you can install. Use the list to determine the tools that will help with your task. IMPORTANT: YOU MUST install a tool from this list BEFORE you can call it.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
