Reference / Hooks

useDefaultRenderTool

Register a wildcard default renderer for unhandled tool calls

Overview

useDefaultRenderTool is a convenience wrapper around useRenderTool with name: "*".

This is part of the v2 tool rendering hook set with useComponent, useRenderTool, and useRenderToolCall.

  • With no config, it registers CopilotKit's built-in default tool-call UI.
  • With render, it replaces that default UI with your own wildcard renderer.

Use this for catch-all rendering of tool calls that do not have a specific named renderer.

Signature

function useDefaultRenderTool(
  config?: {
    render?: (props: {
      name: string;
      parameters: any;
      status: string;
      result: string | undefined;
    }) => React.ReactElement;
  },
  deps?: ReadonlyArray<unknown>,
): void;

Behavior

  • Internally calls useRenderTool({ name: "*", ... }).
  • If config.render is omitted, uses an expandable default card UI that shows status, parameters, and result.
  • If config.render is provided, your renderer is used instead.
  • Inherits useRenderTool registration behavior and dependency semantics.

Usage

Built-in default renderer

function App() {
  useDefaultRenderTool();
  return null;
}

Custom wildcard renderer

function App() {
  useDefaultRenderTool(
    {
      render: ({ name, status, result }) => (
        <div>
          <strong>{name}</strong>: {status}
          {status === "complete" && result ? <pre>{result}</pre> : null}
        </div>
      ),
    },
    [],
  );

  return null;
}

Related