> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sudoiq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tools overview

> Server tool registry versus app-defined tools (Python and CLI)

Integrating tools involves **two** layers:

| Layer                 | Purpose                                                                                              | Python (`agentsapi`)                                                                  | CLI (`agentservice`)                                              |
| --------------------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| **Sudoiq registry**   | The execution platform stores **schemas** (name, parameters JSON Schema) so models can call tools.   | `client.tools.register_tools`, `client.tools.get_tools`                               | `tools push`, `tools list`                                        |
| **App-defined tools** | Your application code **runs** when the model invokes a tool and returns a string result to the API. | `set_tools` (streaming) or `process_webhook_tools` + `send_tool_responses` (webhooks) | `task status --wait --tool-handler ...` (see [CLI](/clients/cli)) |

Each tool is identified by **`name`** + **`namespace`**. Those registered schemas (including tool names/namespaces and argument JSON Schema) are part of what Sudoiq provides to models when they decide which tool to call. In Python, the SDK provides typed schema models (for example **`ToolDefinition`**) that you can reuse or extend in your own codebase when defining new tools. The selected tool must exist in the registry **and** have a matching key in your app tool map for runs that execute tools in your integration.

Next:

* [Register server tools](/tools/register-server-tools)
* [App-defined tools](/tools/local-tool-handlers)
