diff --git a/lib/modules/manager/asdf/extract.spec.ts b/lib/modules/manager/asdf/extract.spec.ts
index 28a1d057aecb36092c0f7250c9e5a42d7b9682ad..997e07c9c7a15d2a8af4ac4ee9e3e41e505d9653 100644
--- a/lib/modules/manager/asdf/extract.spec.ts
+++ b/lib/modules/manager/asdf/extract.spec.ts
@@ -77,6 +77,7 @@ ocaml 4.14.0
 perl 5.37.5
 php 8.1.12
 pnpm 7.26.2
+pulumi 3.57.1
 python 3.11.0
 ruby 3.1.2
 rust 1.64.0
@@ -316,6 +317,13 @@ dummy 1.2.3
             depName: 'pnpm',
             versioning: 'semver',
           },
+          {
+            currentValue: '3.57.1',
+            datasource: 'github-releases',
+            packageName: 'pulumi/pulumi',
+            depName: 'pulumi',
+            versioning: '^v(?<version>\\S+)',
+          },
           {
             currentValue: '3.11.0',
             datasource: 'github-tags',
diff --git a/lib/modules/manager/asdf/upgradeable-tooling.ts b/lib/modules/manager/asdf/upgradeable-tooling.ts
index 65960b4f58a07ad3884885d0b524fd0afead6f6f..d9b2e7f79f61918362ebbf7efa30d607818adc87 100644
--- a/lib/modules/manager/asdf/upgradeable-tooling.ts
+++ b/lib/modules/manager/asdf/upgradeable-tooling.ts
@@ -300,6 +300,14 @@ export const upgradeableTooling: Record<string, ToolingDefinition> = {
       versioning: semverVersioning.id,
     },
   },
+  pulumi: {
+    asdfPluginUrl: 'https://github.com/canha/asdf-pulumi.git',
+    config: {
+      datasource: GithubReleasesDatasource.id,
+      packageName: 'pulumi/pulumi',
+      versioning: '^v(?<version>\\S+)',
+    },
+  },
   python: {
     asdfPluginUrl: 'https://github.com/danhper/asdf-python',
     config: {