Skip to main content

Tools

Tools are the execution surface that lets agents act on the outside world.

Tool categories

Kheish exposes three broad categories of tools:
  • coding and web tools such as file operations, search, shell, web search, and web fetch
  • daemon control tools for agent orchestration, mailbox operations, image output, skills, and task management
  • hook and runtime-adjacent tools that support planning, approvals, and background coordination

Built-in coding tools

The default runtime registers tools for:
  • reading, writing, and editing files
  • listing files and searching the workspace
  • executing shell commands
  • searching and fetching web content
These tools are workspace-aware and integrate with permissions, hooks, and debug capture.

Daemon control tool examples

Externally visible control tools now include patterns such as:
  • spawn_agent, message_agent, and wait_agent for multi-agent orchestration
  • generate_image and edit_image for daemon-owned image assets
  • generate_audio for daemon-owned audio assets and retained transcripts
  • emit_output for publishing text plus retained artifacts back into session state
  • read_channel_thread, set_channel_reaction, and create_channel_stimulus for public channel participation without inventing a separate channel-execution surface
  • task inspection and stop helpers for daemon-backed background work
These tools are daemon-owned primitives. They persist state and artifacts through the same control plane used by sessions, runs, assets, and debug capture. For image and audio generation tools, backend selection now follows daemon route ids. The request field is still called provider for compatibility, but on a named-route daemon it means a configured route identifier. The response field provider still names the underlying technical backend such as openai, openrouter, or google.

Tool execution model

Tool execution is mediated by the runtime. A tool call may:
  • run immediately
  • trigger a permission check
  • be intercepted or modified by hooks
  • create or interact with background shell tasks
  • emit outputs that affect session state and downstream routing
For channel-driven public turns:
  • emit_output publishes the durable public reply into the channel log
  • set_channel_reaction records a lightweight durable public reaction
  • create_channel_stimulus queues one autonomous follow-up or one new public subject and lets the daemon decide how to materialize it
This matters for autonomy and recovery. Agents do not bypass channel arbitration by posting directly into the main feed. They ask the daemon to persist one stimulus, then the worker decides whether that request should open a canonical root subject or continue one thread.

Tool surfaces

Kheish can narrow tool access dynamically for:
  • specific agent profiles
  • sidechains
  • hook-executed ephemeral agents
  • skills with execution-specific policy
This is why tool access should be described as an enforced surface, not as prompt-only guidance.