
Complete specification of all tools available to the Agent Chicken agent for LLM planner task execution.
protocol Tool {
var name: String
var description: String
var category: ToolCategory
var inputSchema: [...]
func execute(params:)
async -> ToolResult
}calendar_create_eventCreate a calendar event with title, date, and optional location
| Name | Type | Description |
|---|---|---|
title * | string | Event title |
start_date * | string | Start date/time (ISO 8601) |
end_date | string | End date/time (ISO 8601) |
location | string | Event location |
notes | string | Event notes |
{ "event_id": "string", "title": "string", "start": "string" }reminders_createCreate a reminder/task with title and optional due date
| Name | Type | Description |
|---|---|---|
title * | string | Reminder title |
due_date | string | Due date (ISO 8601) |
notes | string | Reminder notes |
priority | number | 0=none, 1=high, 5=medium, 9=low |
{ "reminder_id": "string", "title": "string" }photos_get_latestGet the latest photo(s) from the camera roll
| Name | Type | Description |
|---|---|---|
count | number | Number of photos (default: 1) |
{ "photos": [...], "count": number }ocr_extract_textExtract text from an image using OCR
| Name | Type | Description |
|---|---|---|
image_path * | string | Path to image or base64 |
language | string | Language code (e.g., en-US) |
{ "text": "string", "length": number }contacts_searchSearch for a contact by name
| Name | Type | Description |
|---|---|---|
name * | string | Contact name to search for |
{ "contacts": [...], "count": number }browser_openNavigate to a URL in the browser
| Name | Type | Description |
|---|---|---|
url * | string | The URL to navigate to |
{ "url": "string" }browser_clickClick an element by CSS selector
| Name | Type | Description |
|---|---|---|
selector * | string | CSS selector for the element |
{ "selector": "string" }browser_click_textClick an element by its visible text content
| Name | Type | Description |
|---|---|---|
text * | string | Visible text to search for |
exact | boolean | Match text exactly (default: false) |
{ "text": "string", "exact": boolean }browser_typeType text into an input field by CSS selector
| Name | Type | Description |
|---|---|---|
selector * | string | CSS selector for input field |
text * | string | Text to type |
clear | boolean | Clear before typing (default: true) |
{ "selector": "string", "text": "string" }browser_fill_inputFill an input field by finding it via its label text
| Name | Type | Description |
|---|---|---|
label * | string | Label text to search for |
value * | string | Value to fill |
{ "label": "string", "value": "string" }browser_extractExtract text or data from the page using CSS selectors
| Name | Type | Description |
|---|---|---|
selector * | string | CSS selector for elements |
attribute | string | Attribute to extract (default: textContent) |
multiple | boolean | Extract all matches (default: false) |
{ "selector": "string", "data": "string" }browser_scrollScroll the page in a direction
| Name | Type | Description |
|---|---|---|
direction * | string | 'up', 'down', 'top', 'bottom' |
amount | number | Scroll amount in pixels (default: 500) |
{ "direction": "string", "amount": number }browser_waitWait for an element to appear or a condition to be met
| Name | Type | Description |
|---|---|---|
selector | string | CSS selector to wait for |
timeout | number | Max wait seconds (default: 10) |
{ "selector": "string", "found": boolean }Generated by Claude Opus 4.6 • Project: Agent Chicken - Universal Tool Bus for iOS