tools command helps you discover, explore, and manage the tools available for your agents.
The same resolver chain used by
praisonai tools list also powers praisonai tools doctor, praisonai tools discover, --rewrite-tools, --expand-tools, and praisonai research --tools. Any name shown by praisonai tools list is accepted by all of them. As of PR #2642, the diagnostics commands walk the full resolver source list instead of a TOOL_MAPPINGS subset. See Tool Resolution for the full resolution order.Quick Start



Commands
List Tools
Each tool is attributed to one of four source categories —builtin, local, external, or registered — reflecting the exact source that resolve() would use at run time. The same resolver-backed enumeration now powers praisonai tools doctor and template dependency checking — see Tools Doctor and Strict Tools Mode.
--source (or -s):
| Source | What it means |
|---|---|
builtin | Shipped with praisonaiagents.tools — no extra install needed |
local | Loaded from your local tools.py file |
external | From the optional praisonai-tools package |
registered | Registered via ToolRegistry (register_function) or a core SDK entry-point plugin |
Get Tool Info
--verbose (or -v) to include the description column:
No tools matching '<query>'. followed by the hint Run 'praisonai tools list' to see all available tools.
Validate Tools
Check that a tool is discoverable and will resolve correctly:list and info, so a tool that passes validation will also be visible in tools list and resolvable at agent run time.
Diagnostics
praisonai tools doctor and praisonai tools discover surface every tool the resolver would find — builtin + local + external + registered — rather than just the TOOL_MAPPINGS subset. As of PR #2642, the doctor reports the full ~151 built-in tools, and discover also lists entry-point plugin tools.
builtin / local / external / registered) applies to tools doctor and tools discover output. See Tools Doctor and Tools Discover.
Help
Tool Categories
Search Tools
internet_searchwikipedia_searcharxiv_searchtavily_searchduckduckgo
File Tools
read_filewrite_filelist_filescsv_readjson_readyaml_read
Code Tools
execute_codeshell_commandcalculatorpython_repl
Data Tools
pandas_queryduckdb_queryyfinanceexcel_read
Web Tools
crawl4aitrafilaturanewspaperspider
API Tools
rest_apigraphqlwebhook
Using Tools with Prompts
Built-in Tools by Name
Tools from File
Tool Dependencies
Some tools require additional packages:| Tool | Required Package |
|---|---|
internet_search | duckduckgo-search |
tavily_search | tavily-python |
crawl4ai | crawl4ai |
yfinance | yfinance |
pandas_query | pandas |
duckdb_query | duckdb |
Creating Custom Tools
Best Practices
Right Tool
Choose tools appropriate for the task
Dependencies
Install required packages before using tools
Custom Tools
Create custom tools for domain-specific needs
Documentation
Add docstrings to custom tools for better agent understanding
When a
--tools name doesn’t resolve, PraisonAI prints Unknown tool 'X'. Run 'praisonai tools list' to see available tools. If a local tools.py is present but PRAISONAI_ALLOW_LOCAL_TOOLS is unset, it prints Skipped 'X': set PRAISONAI_ALLOW_LOCAL_TOOLS=true to load local tools.
