diff --git a/scripts/update_readme.sh b/scripts/update_readme.sh
index 11e670191..b941607a5 100755
--- a/scripts/update_readme.sh
+++ b/scripts/update_readme.sh
@@ -15,3 +15,6 @@ mvn install --no-transfer-progress -D skipTests
echo "Updating browser versions in README.md"
mvn compile exec:java --f ./tools/update-docs-version -D exec.mainClass=com.microsoft.playwright.tools.UpdateBrowserVersions
+
+echo "Updating Playwright dependency version in README.md"
+mvn compile exec:java --f ./tools/update-docs-version -D exec.mainClass=com.microsoft.playwright.tools.UpdatePlaywrightVersion
diff --git a/tools/update-docs-version/src/main/java/com/microsoft/playwright/tools/UpdatePlaywrightVersion.java b/tools/update-docs-version/src/main/java/com/microsoft/playwright/tools/UpdatePlaywrightVersion.java
new file mode 100644
index 000000000..79f733f2b
--- /dev/null
+++ b/tools/update-docs-version/src/main/java/com/microsoft/playwright/tools/UpdatePlaywrightVersion.java
@@ -0,0 +1,53 @@
+package com.microsoft.playwright.tools;
+
+import java.io.FileWriter;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.NoSuchElementException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import static java.nio.charset.StandardCharsets.UTF_8;
+
+public class UpdatePlaywrightVersion {
+ private static final Pattern VERSION_PATTERN = Pattern.compile(
+ "com.microsoft.playwright\\s*parent-pom\\s*(\\d+\\.\\d+\\.\\d+)(?:-SNAPSHOT)?"
+ );
+ private static final Pattern MAVEN_PATTERN = Pattern.compile(
+ "(\\s*com.microsoft.playwright\\s*playwright\\s*)\\d+\\.\\d+\\.\\d+(\\s*)"
+ );
+ private static final Pattern GRADLE_PATTERN = Pattern.compile(
+ "(implementation group: 'com.microsoft.playwright', name: 'playwright', version: )'\\d+\\.\\d+\\.\\d+'"
+ );
+
+ public static void main(String[] args) throws Exception {
+ Path pomPath = Paths.get("pom.xml");
+ String pomContent = Files.readString(pomPath, UTF_8);
+
+ Matcher versionMatcher = VERSION_PATTERN.matcher(pomContent);
+ if (!versionMatcher.find()) {
+ throw new NoSuchElementException("Project version was not found");
+ }
+ String version = versionMatcher.group(1);
+
+ Path readmePath = Paths.get("README.md");
+ String readme = Files.readString(readmePath, UTF_8);
+
+ String updatedReadme = updateDependencies(readme, version);
+
+ try (FileWriter writer = new FileWriter(readmePath.toFile(), UTF_8)) {
+ writer.write(updatedReadme);
+ }
+ }
+
+ private static String updateDependencies(String readme, String version) {
+ readme = MAVEN_PATTERN.matcher(readme)
+ .replaceAll("$1" + version + "$2");
+
+ readme = GRADLE_PATTERN.matcher(readme)
+ .replaceAll("$1'" + version + "'");
+
+ return readme;
+ }
+}