# Tool YAML creation

**URL:** <https://community.crewai.com/t/tool-yaml-creation/5324>\
**Category:** General\
**Created:** [April 14, 2025, 5:25pm UTC](https://community.crewai.com/t/tool-yaml-creation/5324 "2025-04-14T17:25:34Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Aaron\_Whaley](https://sea1.discourse-cdn.com/flex025/user_avatar/community.crewai.com/aaron_whaley/32/1702_2.png) [@Aaron\_Whaley](https://community.crewai.com/u/Aaron_Whaley)\
**Post date:** [April 14, 2025, 5:25pm UTC](https://community.crewai.com/t/tool-yaml-creation/5324/1 "2025-04-14T17:25:35Z")

</div>

I read some discussion on this and it seemed like it can be done but I am just seeking clarification. I would like to have a tools.yaml file that has all the tools defined like agents and tasks are. Then import them or use the @tool decorator to call them in the main file. so something like this : # Supabase Tools Configuration  
tools:

- name: supabase\_query  
description: Query data from a Supabase table with filtering, ordering, and pagination options.  
function: query\_supabase  
parameters:
  - name: table  
type: str  
description: The name of the table to query  
required: true
  - name: select  
type: str  
description: Columns to select (comma-separated or \* for all)  
default: “\*”
  - name: filter  
type: str  
description: JSON string of filter criteria (e.g., ‘{“column”:“value”}’)  
required: false
  - name: order  
type: str  
description: Column to order by (prefix with - for descending)  
required: false
  - name: limit  
type: int  
description: Maximum number of rows to return  
required: false
  - name: offset  
type: int  
description: Number of rows to skip  
required: false

works?

---

<div class="post-metadata">

**Author:** ![maxmoura](https://sea1.discourse-cdn.com/flex025/user_avatar/community.crewai.com/maxmoura/32/4206_2.png) [@maxmoura](https://community.crewai.com/u/maxmoura)\
**Post date:** [April 14, 2025, 7:13pm UTC](https://community.crewai.com/t/tool-yaml-creation/5324/2 "2025-04-14T19:13:47Z")

</div>

Not out of the box, Aaron. It’s something you’d have to implement yourself, and honestly, it might not be worth the hassle. Basically, tools are just callables, and there are two official ways to define them, [according to the CrewAI documentation](https://docs.crewai.com/concepts/tools#creating-your-own-tools).

Natively, you can define `Agent`s and `Task`s in YAML, and [here in this thread](https://community.crewai.com/t/which-task-and-agent-attributes-can-be-put-in-the-yaml-file/4486/26) I showed a simple way to define `LLM`s in YAML too. You’d probably have to wrestle with some unnecessary complexity to get tools working from a YAML file.
