Search Project Files
openl_search_project_filesSearch project files and folders by name pattern, file extension, type, or content text. Supports recursive subfolder searches.
Instructions
Search a project's files and folders by ant-glob path 'pattern' (e.g. 'rules//*.xlsx'), file 'extensions', resource 'type' (FILE/FOLDER/ANY), and/or a case-insensitive 'content' substring (full-text). Maps to POST /projects/{projectId}/file-search. IMPORTANT: set recursive=true to search nested folders — by default (recursive omitted/false) only the project's TOP LEVEL is searched, and a '' glob alone does NOT descend (so a project-wide search needs recursive=true, and to match files in subfolders use a '/' pattern such as '/.xlsx', not '.xlsx'). Scope SUBTREE (default) searches within the project and may target a historical 'version'; scope ANCESTORS walks up to the repository root. Returns matching nodes (path, name, type, size, ...), paginated client-side via 'limit'/'offset' (the response carries pagination metadata; the server returns the full match set). Use 'branch' to pin the project's branch. Use this for questions like "where is portability loading mentioned?" (content, recursive=true) or "list every xlsx under rules" (pattern '**/*.xlsx', recursive=true).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| from | No | Project-relative path to start the search from. | |
| type | No | Restrict results to files, folders, or both (ANY, default). | |
| limit | No | ||
| scope | No | SUBTREE (default) searches within the project; ANCESTORS walks up to the repository root. | |
| branch | No | Branch the project must be on for this operation. Ignored when blank. Fails if the repository has no branches or the project is on another branch. Omit for repository 'local' and non-branch repositories. | |
| fields | No | Comma-separated response fields to return per result (e.g. 'path,name,type'). When omitted, the full response is returned. | |
| offset | No | ||
| content | No | Case-insensitive content substring to match inside files (full-text search). | |
| pattern | No | Ant-glob path pattern, e.g. 'rules/**/*.xlsx' or '**/*.xml'. | |
| version | No | Historical revision (commit hash) to search; SUBTREE scope only. | |
| projectId | Yes | Project ID returned by backend. Use the exact 'projectId' value from openl_list_projects() response without modification or reformatting. | |
| recursive | No | Whether to descend into nested folders. IMPORTANT: defaults to false (top level only) — set true to search the whole project/subtree. A '**' glob still needs recursive:true to actually descend. | |
| extensions | No | Filter by file extensions without the dot, e.g. ['xlsx','xml']. | |
| response_format | No | Response format: 'json' for structured data, 'markdown' for human-readable (default), 'markdown_concise' for brief summary (1-2 paragraphs), 'markdown_detailed' for full details with context | markdown |