All Products
Search
Document Center

AgentBay:FileSystem

Last Updated:Jun 22, 2026

Description

The FileSystem class provides methods for file operations in an AgentBay cloud environment session, including reading, writing, editing, and searching files, as well as managing directories.

Method

Description

Environment

Linux Computer Use

Windows Computer Use

Browser Use

Mobile Use

Code Space

read_file

Reads file content. Supports offset and length limits.

Note

Only supports UTF-8 encoded files.

Supported

Supported

Supported

Not supported

Supported

write_large_file

Writes a large file in chunks.

Supported

Supported

Supported

Not supported

Supported

read_large_file

Reads a large file in chunks.

Supported

Supported

Supported

Not supported

Supported

read_multiple_files

Reads multiple files simultaneously.

Supported

Supported

Supported

Not supported

Supported

write_file

Creates or writes to a file. Supports overwrite and append modes.

Note

Only supports UTF-8 encoded files.

Supported

Supported

Supported

Not supported

Supported

edit_file

Performs line-based file editing.

Supported

Supported

Supported

Not supported

Supported

create_directory

Creates a directory, including nested directories.

Supported

Supported

Supported

Not supported

Supported

list_directory

Lists the contents of a folder.

Supported

Supported

Supported

Not supported

Supported

search_files

Recursively searches for files and folders.

Supported

Supported

Supported

Not supported

Supported

move_file

Moves or renames a file or folder.

Supported

Supported

Supported

Not supported

Supported

get_file_info

Retrieves metadata for a file or directory.

Supported

Supported

Supported

Not supported

Supported

Methods

create_directory / createDirectory / CreateDirectory - Create a folder

Golang

func (fs *FileSystem) CreateDirectory(path string) (bool, error)

Parameter:

  • path (string): The path of the folder to create.

Return values:

  • bool: Returns true if the folder is created successfully.

  • error: Returns an error message if the folder creation fails.

Example:

// Create a folder
success, err := session.FileSystem.CreateDirectory("/tmp/test")
if err != nil {
    log.Printf("Error creating folder: %v", err)
} else {
    fmt.Printf("Folder created: %t\n", success)
}

Python

create_directory(path: str) -> BoolResult

Parameter:

  • path (str): The path of the folder to create.

Return value:

  • BoolResult: A result object with a Boolean success status (True on success), a request ID, and any error message.

Note

The return type changed from a plain Boolean to a structured BoolResult object for richer response details.

TypeScript

createDirectory(path: string): Promise<string>

Parameter:

  • path (string): The path of the folder to create.

Return value:

  • Promise<string>: Returns the response text if the folder is created successfully.

Exception:

  • APIError: Throws an error if the folder creation fails.

EditFile - Edit a file

Golang

func (fs *FileSystem) EditFile(path string, edits []map[string]string, dryRun bool) (bool, error)

Parameters:

  • path (string): The path of the file to edit.

  • edits ([]map[string]string): An array of edit operations, each containing oldText and newText.

  • dryRun (bool): If true, previews the changes without applying them.

Return values:

  • bool: Returns true if the file is edited successfully.

  • error: Returns an error message if the file editing fails.

Example:

// Edit the file
edits := []map[string]string{
    {"oldText": "Hello", "newText": "Hi"},
}
success, err := session.FileSystem.EditFile("/tmp/test/example.txt", edits, false)
if err != nil {
    log.Printf("Error editing file: %v", err)
} else {
    fmt.Printf("File edited successfully: %t\n", success)
}

Python

edit_file(path: str, edits: List[Dict[str, str]], dry_run: bool = False) -> BoolResult

Parameters:

  • path (str): The path of the file to edit.

  • edits (List[Dict[str, str]]): A list of edit operations. Each operation contains oldText and newText.

  • dry_run (bool, optional): Specifies whether to preview the changes without applying them. The default is False.

Return value:

  • BoolResult: A result object with a Boolean value set to True on success, a request ID, and an error message if an error occurs.


TypeScript

editFile(
  path: string,
  edits: Array<{ oldText: string, newText: string }>,
  dryRun?: boolean
): Promise<string>

Parameters:

  • path (string): The path of the file to edit.

  • edits (Array<{ oldText: string, newText: string }>): An array of edit operations, each containing oldText and newText.

  • dryRun (boolean, optional): If true, previews the changes without applying them. The default is false.

Return value:

  • Promise<string>: Returns the response text if the file is edited successfully.

Exception:

  • APIError: Throws an error if the file editing fails.

GetFileInfo - Get file information

Golang

func (fs *FileSystem) GetFileInfo(path string) (string, error)

Parameter:

  • path (string): The path of the file or folder to query.

Return values:

  • string: The text information of the file or folder, such as size and permissions.

  • error: Returns an error message if the information retrieval fails.

Example:

// Get file information
fileInfo, err := session.FileSystem.GetFileInfo("/tmp/test/example.txt")
if err != nil {
    log.Printf("Error getting file info: %v", err)
} else {
    fmt.Printf("File info: %s\n", fileInfo)
}

Python

get_file_info(path: str) -> OperationResult

Parameter:

  • path (str): The path of the file or folder to query.

Return value:

  • OperationResult: A result object with file information such as size and modification time, the success status, a request ID, and an error message if the operation failed.

TypeScript

getFileInfo(path: string): Promise<string>

Parameter:

  • path (string): The path of the file or folder to query.

Return value:

  • Promise<string>: Returns the text information of the file or folder, such as size and permissions.

Exception:

  • APIError: Throws an error if the information retrieval fails.

ListDirectory - List a folder

Golang

func (fs *FileSystem) ListDirectory(path string) (*DirectoryListResult, error)

Parameter:

  • path (string): The path of the folder to list.

Return values:

  • *DirectoryListResult: A result object that contains folder entries and the request ID.

  • error: Returns an error message if listing the folder fails.

DirectoryListResult struct:

type DirectoryListResult struct {
    RequestID string           // A unique request identifier for debugging.
    Entries   []*DirectoryEntry // An array of folder entries.
}

type DirectoryEntry struct {
    Name        string // The name of the file or folder.
    IsDirectory bool   // Specifies whether an entry is a folder.
}

Example:

// List the folder
listResult, err := session.FileSystem.ListDirectory("/tmp/test")
if err != nil {
    log.Printf("Error listing folder: %v", err)
} else {
    for _, entry := range listResult.Entries {
        entryType := "Folder"
        if !entry.IsDirectory {
            entryType = "File"
        }
        fmt.Printf("%s: %s\n", entryType, entry.Name)
    }
}

Python

list_directory(path: str) -> OperationResult

Parameter:

  • path (str): The path of the folder to list.

Return value:

  • OperationResult: A result object with a list of directory entries (file and subdirectory names), the success status, a request ID, and an error message if the operation failed.

TypeScript

listDirectory(path: string): Promise<any>

Parameter:

  • path (string): The path of the folder to list.

Return value:

  • Promise<any>: Returns an array of folder entries if parsing is successful. Otherwise, returns the original text content.

Exception:

  • APIError: Throws an error if listing the folder fails.

MoveFile - Move a file

Golang

func (fs *FileSystem) MoveFile(source, destination string) (*FileDirectoryResult, error)

Parameters:

  • source (string): The source file or folder path.

  • destination (string): The destination file or folder path.

Return values:

  • *FileDirectoryResult: A result object that contains the operation status and request ID.

  • error: Returns an error message if the file move fails.

FileDirectoryResult struct:

type FileDirectoryResult struct {
    RequestID string // A unique request identifier for debugging.
    Success   bool   // Specifies whether the operation is successful.
}

Python

move_file(source: str, destination: str) -> BoolResult

Parameters:

  • source (str): The source file or folder path.

  • destination (str): The destination file or folder path.

Return value:

  • BoolResult: A result object with the operation status, a Boolean value (True on success), a request ID, and an error message (if any).

TypeScript

moveFile(source: string, destination: string): Promise<string>

Parameters:

  • source (string): The source file or folder path.

  • destination (string): The destination file or folder path.

Return value:

  • Promise<string>: Returns the response text if the file is moved successfully.

Exception:

  • APIError: Throws an error if the file move fails.

ReadFile - Read a file

Golang

func (fs *FileSystem) ReadFile(path string, optionalParams ...int) (*FileReadResult, error)

Parameters:

  • path (string): The path of the file to read.

  • optionalParams (int, optional): Optional parameters for offset and length.

Return values:

  • *FileReadResult: A result object that contains the file content and request ID.

  • error: Returns an error message if the file read fails.

FileReadResult struct:

type FileReadResult struct {
    RequestID string // A unique request identifier for debugging.
    Content   string // The file content.
}

Example:

// Read the file
readResult, err := session.FileSystem.ReadFile("/etc/hosts")
if err != nil {
    log.Printf("Error reading file: %v", err)
} else {
    fmt.Printf("File content: %s\n", readResult.Content)
}

Python

read_file(path: str, offset: int = 0, length: int = 0) -> OperationResult

Parameters:

  • path (str): The path of the file to read.

  • offset (int, optional): The byte offset from which to start reading. The default is 0.

  • length (int, optional): The number of bytes to read. If 0, reads to the end of the file. The default is 0.

Return value:

  • OperationResult: A result object with the file content as a string, the success status, a request ID, and an error message if the operation failed.

TypeScript

readFile(path: string, offset?: number, length?: number): Promise<string>

Parameters:

  • path (string): The path of the file to read.

  • offset (number, optional): The byte offset from which to start reading. The default is 0.

  • length (number, optional): The number of bytes to read. If 0, reads to the end of the file. The default is 0.

Return value:

  • Promise<string>: Returns the file content.

Exception:

  • APIError: Throws an error if the file read fails.

ReadMultipleFiles - Read multiple files

Golang

func (fs *FileSystem) ReadMultipleFiles(paths []string) (string, error)

Parameter:

  • paths ([]string): An array of file paths to read.

Return values:

  • string: A text mapping of file paths to their content.

  • error: Returns an error message if the file read fails.

Python

read_multiple_files(paths: List[str]) -> OperationResult

Parameter:

  • paths (List[str]): A list of file paths to read.

Return value:

  • OperationResult: A result object with a dictionary mapping file paths to their content, the success status, a request ID, and an error message if the operation failed.

TypeScript

readMultipleFiles(paths: string[]): Promise<string>

Parameter:

  • paths (string[]): An array of file paths to read.

Return value:

  • Promise<string>: Returns a text mapping of file paths to their content.

Exception:

  • APIError: Throws an error if the file read fails.

SearchFiles - Search for files

Golang

func (fs *FileSystem) SearchFiles(path, pattern string, excludePatterns []string) (*SearchFilesResult, error)

Parameters:

  • path (string): The starting folder path for the search.

  • pattern (string): The matching pattern.

  • excludePatterns ([]string): An array of exclusion patterns.

Return values:

  • *SearchFilesResult: A result object that contains the search results and request ID.

  • error: Returns an error message if the search fails.

SearchFilesResult struct:

type SearchFilesResult struct {
    RequestID string   // A unique request identifier for debugging.
    Results   []string // An array of search results.
}

Python

search_files(path: str, pattern: str, exclude_patterns: Optional[List[str]] = None) -> OperationResult

Parameters:

  • path (str): The folder path to start the search from.

  • pattern (str): The pattern to match, such as wildcard match.

  • exclude_patterns (List[str], optional): A list of patterns to exclude. The default is None.

Return value:

  • OperationResult: A result object with the search results (a list of matching file paths), the success status, a request ID, and an error message if the operation failed.

TypeScript

searchFiles(
  path: string,
  pattern: string,
  excludePatterns?: string[]
): Promise<any[]>

Parameters:

  • path (string): The starting folder path for the search.

  • pattern (string): The matching pattern.

  • excludePatterns (string[], optional): An array of exclusion patterns. The default is an empty array.

Return value:

  • Promise<any[]>: Returns an array of search results.

Exception:

  • APIError: Throws an error if the search fails.

WriteFile - Write to a file

Golang

func (fs *FileSystem) WriteFile(path, content string, mode string) (*FileWriteResult, error)

Parameters:

  • path (string): The path of the file to write to.

  • content (string): The content to write.

  • mode (string): The mode, which can be "overwrite" (default), "append", or "create_new".

Return values:

  • *FileWriteResult: A result object that contains the operation status and request ID.

  • error: Returns an error message if the write operation fails.

FileWriteResult struct:

type FileWriteResult struct {
    RequestID string // A unique request identifier for debugging.
    Success   bool   // Specifies whether the file was written successfully.
}

Example:

// Write to the file
writeResult, err := session.FileSystem.WriteFile("/tmp/test/example.txt", "Hello, world!", "overwrite")
if err != nil {
    log.Printf("Error writing file: %v", err)
} else {
    fmt.Printf("File written successfully: %t\n", writeResult.Success)
}

Python

write_file(path: str, content: str, mode: str = "overwrite") -> bool

Parameters:

  • path (str): The path of the file to write to.

  • content (str): The content to write.

  • mode (str, optional): The write mode, which can be "overwrite" (default) or "append".

Return value:

  • bool: Indicates whether the file was written successfully.

Exception:

  • FileError: Throws an exception if the write operation fails.

TypeScript

writeFile(path: string, content: string, mode?: string): Promise<string>

Parameters:

  • path (string): The path of the file to write to.

  • content (string): The content to write.

  • mode (string, optional): The mode, which can be "overwrite" (default), "append", or "create_new".

Return value:

  • Promise<string>: Returns the response text if the file is written successfully.

Exception:

  • APIError: Throws an error if the write operation fails.

ReadLargeFile - Read a large file

Golang

func (fs *FileSystem) ReadLargeFile(path string, chunkSize int) (string, error)

Parameters:

  • path (string): The path of the file to read.

  • chunkSize (int): The size of each data block in bytes.

Return values:

  • string: The full content of the file.

  • error: Returns an error message if the file read fails.

Python

read_large_file_in_chunks(path: str, chunk_size: int) -> Generator[OperationResult, None, None]

Parameters:

  • path (str): The path of the large file to read.

  • chunk_size (int): The chunk size per iteration, in bytes.

Return value:

  • Generator[OperationResult, None, None]: A generator that yields a result object with the file chunk content per iteration.

Purpose:

  • Works around the file size limitations of the underlying API by processing the file in chunks.

TypeScript

readLargeFile(path: string, chunkSize?: number): Promise<string>

Parameters:

  • path (string): The path of the file to read.

  • chunkSize (number, optional): The size of each data block in bytes. The default is 60 KB.

Return value:

  • Promise<string>: Returns the full content of the file.

Exception:

  • APIError: Throws an error if the file read fails.

WriteLargeFile - Write to a large file

Golang

func (fs *FileSystem) WriteLargeFile(path, content string, chunkSize int) (bool, error)

Parameters:

  • path (string): The path of the file to write to.

  • content (string): The content to write.

  • chunkSize (int): The size of each data block in bytes.

Return values:

  • bool: Returns true if the file is written successfully.

  • error: Returns an error message if the write operation fails.


Basic file operation example:

package main

import (
    "fmt"
    "log"
)

func main() {
    // Create a session
    agentBay := agentbay.NewAgentBay("your-api-key")
    sessionResult, err := agentBay.Create(nil)
    if err != nil {
        log.Fatal(err)
    }
    session := sessionResult.Session

    // Read the file
    readResult, err := session.FileSystem.ReadFile("/etc/hosts")
    if err != nil {
        log.Printf("Error reading file: %v", err)
    } else {
        fmt.Printf("File content: %s\n", readResult.Content)
    }

    // Create a folder
    success, err := session.FileSystem.CreateDirectory("/tmp/test")
    if err != nil {
        log.Printf("Error creating folder: %v", err)
    } else {
        fmt.Printf("Folder created: %t\n", success)
    }

    // Write to the file
    writeResult, err := session.FileSystem.WriteFile("/tmp/test/example.txt", "Hello, world!", "overwrite")
    if err != nil {
        log.Printf("Error writing file: %v", err)
    } else {
        fmt.Printf("File written successfully: %t\n", writeResult.Success)
    }

    // Edit the file
    edits := []map[string]string{
        {"oldText": "Hello", "newText": "Hi"},
    }
    success, err = session.FileSystem.EditFile("/tmp/test/example.txt", edits, false)
    if err != nil {
        log.Printf("Error editing file: %v", err)
    } else {
        fmt.Printf("File edited successfully: %t\n", success)
    }

    // Get file information
    fileInfo, err := session.FileSystem.GetFileInfo("/tmp/test/example.txt")
    if err != nil {
        log.Printf("Error getting file info: %v", err)
    } else {
        fmt.Printf("File info: %s\n", fileInfo)
    }

    // List the folder
    listResult, err := session.FileSystem.ListDirectory("/tmp/test")
    if err != nil {
        log.Printf("Error listing folder: %v", err)
    } else {
        for _, entry := range listResult.Entries {
            entryType := "Folder"
            if !entry.IsDirectory {
                entryType = "File"
            }
            fmt.Printf("%s: %s\n", entryType, entry.Name)
        }
    }
}

TypeScript

writeLargeFile(path: string, content: string, chunkSize?: number): Promise<boolean>

Parameters:

  • path (string): The path of the file to write to.

  • content (string): The content to write.

  • chunkSize (number, optional): The size of each data block in bytes. The default is 60 KB.

Return value:

  • Promise<boolean>: Returns true if the file is written successfully.

Exception:

  • APIError: Throws an error if the write operation fails.