diff --git a/docs/config/browser/expect.md b/docs/config/browser/expect.md
index dff6d64b9..45c3a21a3 100644
--- a/docs/config/browser/expect.md
+++ b/docs/config/browser/expect.md
@@ -118,6 +118,10 @@ receives an object with the following properties:
The value provided to [`attachmentsDir`](/config/attachmentsdir), if none is
provided, its default value.
+- `project: TestProject` 4.1.6
+
+ The [`TestProject`](/api/advanced/test-project) the test belongs to.
+
For example, to group screenshots by browser:
```ts
diff --git a/packages/browser/src/node/commands/screenshotMatcher/utils.ts b/packages/browser/src/node/commands/screenshotMatcher/utils.ts
index fb3645ae0..981680557 100644
--- a/packages/browser/src/node/commands/screenshotMatcher/utils.ts
+++ b/packages/browser/src/node/commands/screenshotMatcher/utils.ts
@@ -143,6 +143,7 @@ export function resolveOptions(
testFileName: basename(context.testPath),
testName: sanitize(testName, false),
browserName: context.project.config.browser.name,
+ project: context.project,
} satisfies Parameters[0]
return {
diff --git a/packages/vitest/src/node/types/browser.ts b/packages/vitest/src/node/types/browser.ts
index faa6e969c..5dd144b1e 100644
--- a/packages/vitest/src/node/types/browser.ts
+++ b/packages/vitest/src/node/types/browser.ts
@@ -478,6 +478,12 @@ type ToMatchScreenshotResolvePath = (data: {
* if none is provided, its default value.
*/
attachmentsDir: string
+ /**
+ * The {@linkcode https://vitest.dev/api/advanced/test-project|TestProject} the test belongs to.
+ *
+ * @experimental
+ */
+ project: TestProject
}) => string
export interface ToMatchScreenshotOptions {