FileWriterTool
Description
TheFileWriterTool is a component of the crewai_tools package, designed to simplify the process of writing content to files with cross-platform compatibility (Windows, Linux, macOS).
It is particularly useful in scenarios such as generating reports, saving logs, creating configuration files, and more.
This tool handles path differences across operating systems, guards against path-traversal and symlink escapes, and creates parent directories (when a directory is explicitly provided) if they don’t exist, making it easier to organize your output reliably across different platforms.
The tool writes
content in text mode — it is intended for plain-text files only (.txt, .md, .json, .yaml, .csv, .log, .py, config files, generated source, reports, etc.). It is not suitable for binary files such as images, PDFs, archives, or executables; writing binary data through it will raise or corrupt the output.No explicit encoding is passed to open(), so the byte encoding follows locale.getpreferredencoding() — UTF-8 on Linux/macOS, but typically cp1252 on stock Windows. Set PYTHONUTF8=1 (or otherwise configure the locale) if you need guaranteed UTF-8 on Windows.Installation
Install the crewai_tools package to use theFileWriterTool in your projects:
Example
TheFileWriterTool is attached to an agent and invoked by that agent during a task — you don’t call it yourself. Initialize the tool, hand it to an Agent via tools=[...], and let the crew run.
Code
filename, content, and optionally directory and overwrite (see Arguments).
Arguments
filename: The name of the file you want to create or overwrite.content: The text content to write into the file (string).directory(optional): The path to the directory where the file will be created. Defaults to the current directory (./). Parent directories are created only whendirectoryis explicitly provided; the default./does not trigger directory creation.overwrite(optional, defaultFalse): Whether to overwrite an existing file. Accepts a bool or a string ("true"/"false","yes"/"no","1"/"0", etc.). WhenFalse, the tool opens in exclusive-create mode ("x") and returns an error if the file already exists; when truthy, it opens in write mode ("w") and replaces the file.
Conclusion
By integrating theFileWriterTool into your crews, the agents can reliably write content to files across different operating systems.
This tool is essential for tasks that require saving output data, creating structured file systems, and handling cross-platform file operations.
It’s particularly recommended for Windows users who may encounter file writing issues with standard Python file operations.
By adhering to the setup and usage guidelines provided, incorporating this tool into projects is straightforward and ensures consistent file writing behavior across all platforms.