# Agent tools

> The full reference of tools an Eggent agent has — what each is for, its main parameters and the requests that lead to it. Useful to people and to the agent itself.

Source: https://eggent.ai/docs/agent-tools/

A tool is an action the agent can take by itself. Below are all the workspace's tools in full chat mode. In ["chat + files"](https://eggent.ai/docs/chats.md#modes) mode only reading files and switching projects remain; "plain chat" has no tools.

## Files and commands {#files}

The runtime's basic tools. They work in the current project's (or the orchestrator's) folder.

| Tool | What it does |
| --- | --- |
| `read` | Reads a file: text, code, an image (for models that can see) |
| `write` | Creates or overwrites a file |
| `edit` | Makes targeted edits to a file |
| `bash` | Runs a terminal command: Python and Node.js, `git`, `curl`, file conversion |
| `ls` | Lists a folder (in "chat + files" mode) |

## The web {#web}

| Tool | What it does |
| --- | --- |
| `web_search` | Searches the web for a query |
| `fetch_content` | Loads a page from a link and extracts its text |
| `get_search_content` | Retrieves the full text of search results |

Search needs no key: when one free search engine refuses, the next is tried, three in turn. To use a search service of your own, put its key in `data/pi-agent/web-search.json` — a file that names a service or a key is left exactly as you wrote it.

## Helpers and schedules {#subagents}

| Tool | What it does |
| --- | --- |
| `Agent` | Starts a helper — a separate agent for part of the work — and waits for its result. Several calls in one message run at the same time, up to six. With a schedule value it creates a [scheduled task](https://eggent.ai/docs/schedules.md) instead |
| `get_subagent_result` | Collects a helper's result |
| `steer_subagent` | Sends a running helper a correction |
| `eggent_manage_schedules` | Lists, changes or cancels existing schedules. Actions: `list`, `update` (new timing `schedule`, new task `prompt` and/or `enabled` to pause or resume), `clear`. A scheduled run's own report may only `list`. Scope: `current` or `all` |

Schedule time formats: cron with 5 or 6 fields (with 6, the first is seconds), an interval (`5m`, `1h`), a delay (`+10m`) or an ISO date. Schedule files must not be edited directly — only through this tool.

## Projects and the workspace {#workspace}

| Tool | What it does |
| --- | --- |
| `list_projects` | Lists projects |
| `create_project` | Creates a project: `name`, `description`, `instructions` |
| `switch_project` | Switches to a project or to the orchestrator (`project_id: "none"`) |
| `eggent_ask_project` | Hands a task to another project and waits for its answer. Works only for a project you named with `@` at the start of your message in this turn: the agent cannot start it on its own. See [Projects](https://eggent.ai/docs/projects.md#ask) |
| `eggent_manage_chats` | Other chats: `list`, `search`, `read`; `switch` moves the conversation to another chat and `new` to a fresh one — in Telegram from the next message, in the browser as a link |
| `create_skill` | Creates a [skill](https://eggent.ai/docs/skills.md): `skill_name`, `description`, `body` |
| `upsert_mcp_server` | Adds or changes an [MCP server](https://eggent.ai/docs/mcp.md): `stdio` (`command`, `args`, `env`) or `http` (`url`, `headers`) |
| `delete_mcp_server` | Removes an MCP server |
| `mcp` | Calls the tools of connected MCP servers |

## Memory {#memory}

| Tool | What it does |
| --- | --- |
| `eggent_memory_save` | Saves an entry to the current project's or orchestrator's [memory](https://eggent.ai/docs/memory.md) |
| `eggent_memory_search` | Searches memory |
| `eggent_memory_delete` | Deletes matching entries |

## Talking to the person {#communication}

| Tool | What it does |
| --- | --- |
| `eggent_ask_user` | Shows a question card: options (`options`), yes/no (`confirm`) or a free answer (`free_text`). A field for a typed answer is always there beside the buttons |
| `telegram_send_message` | Sends text to Telegram: to your own chat or to a channel (`chat`: `@channel`, a `t.me` link or a numeric id) |
| `telegram_send_file` | Sends a file. An image goes as a photo with a caption, anything else as a document; `as_file` sends an image as a file |
| `eggent_manage_telegram` | Manages your own bot: `status`, `connect`, `disconnect`, `allow_user`, `access_code`; in the cloud, `link_shared` links your Telegram to the shared bot |
| `eggent_email` | The agent's [email](https://eggent.ai/docs/email.md): `send_email`, `list_emails`, `read_email`, `email_status`, `my_address` |
| `eggent_google` | In the cloud, your [Google](https://eggent.ai/docs/google.md): `status`, `connect`, documents, sheets, slides, Drive files and folders, `share_link` (waits for your yes) |
| `eggent_calendar_file` | Makes a calendar file (`.ics`) for an event, that opens in any calendar |

## Models and images {#models}

| Tool | What it does |
| --- | --- |
| `eggent_manage_models` | `status` — the current model and providers; `add_provider` — connect an OpenAI-compatible provider (`provider_id`, `base_url`, `models`); `use_provider` — make a connected provider the default |
| `eggent_generate_image` | Draws or edits an image: `prompt`, `reference_image_paths`, `aspect_ratio`, `size`, `quality`, `background`, `n` |
| `eggent_usage_status` | Cloud only: remaining credits, days and disk, the current plan |

## Task board {#board}

| Tool | What it does |
| --- | --- |
| `eggent_board` | The [task board](https://eggent.ai/docs/board.md): `list` and `get` read it; `create` writes cards (title, task, project, `after` — cards it waits for, `#1` being an earlier card of the same list) into the Inbox; `update` and `remove` change only cards still in the Inbox. The agent never starts a card: the person does |

## Working with colleagues {#company}

Only in a workspace that belongs to a [company](https://eggent.ai/docs/company.md).

| Tool | What it does |
| --- | --- |
| `eggent_messages` | [Messages](https://eggent.ai/docs/company.md#messages) with the company's people: `contacts`, `inbox`, `read`, `send` (marked as written by the agent), `describe` (remembers what a person does) |
| `eggent_shares` | [Shared files](https://eggent.ai/docs/company.md#shares): `people`, `list`, `read` (the text of a shared file), `comments`, `comment` (in the person's name, on a quoted piece if given), `share` (adds people in a role - view, comment or edit - and never takes a file away). It cannot change a colleague's file |
| `eggent_approvals` | [Approvals](https://eggent.ai/docs/company.md#approvals): `people`, `waiting`, `sent`, `read`, `text` (a version's text), `send` (a file to people in order), `withdraw`. It cannot approve or return a version: that is the person's |

## Skills as commands {#skill-commands}

Any installed skill can be called explicitly: `/skill:<name>` at the start of a message. The installed skills are listed in **Settings → Skills**.
