diff --git a/docs/API/knut/project.md b/docs/API/knut/project.md
index b8acfb2e..50823735 100644
--- a/docs/API/knut/project.md
+++ b/docs/API/knut/project.md
@@ -22,6 +22,7 @@ import Knut
|array<string> |**[allFilesWithExtension](#allFilesWithExtension)**(string extension, PathType type = RelativeToRoot)|
|array<string> |**[allFilesWithExtensions](#allFilesWithExtensions)**(array<string> extensions, PathType type = RelativeToRoot)|
||**[closeAll](#closeAll)**()|
+|QVariantList |**[findInFiles](#findInFiles)**(const QString &pattern)|
|[Document](../knut/document.md) |**[get](#get)**(string fileName)|
|[Document](../knut/document.md) |**[open](#open)**(string fileName)|
||**[openPrevious](#openPrevious)**(int index = 1)|
@@ -75,6 +76,14 @@ Returns all files with an extension from `extensions` in the current project.
Close all documents. If the document has some changes, save the changes.
+#### QVariantList **findInFiles**(const QString &pattern)
+
+Search for a regex pattern in all files of the current project using ripgrep.
+Returns a list of results (QVariantMaps) with the document name and position ("file", "line", "column").
+
+Note: The method uses ripgrep (rg) for searching, which must be installed and accessible in PATH.
+The `pattern` parameter should be a valid regular expression.
+
#### [Document](../knut/document.md) **get**(string fileName)
Gets the document for the given `fileName`. If the document is not opened yet, open it. If the document
diff --git a/src/core/project.cpp b/src/core/project.cpp
index f6fecd56..c9396e20 100644
--- a/src/core/project.cpp
+++ b/src/core/project.cpp
@@ -28,6 +28,8 @@
#include
#include
#include
+#include
+#include
#include
#include
#include