diff --git a/.github/tsc.json b/.github/tsc.json
new file mode 100644
index 00000000..6e48ac84
--- /dev/null
+++ b/.github/tsc.json
@@ -0,0 +1,16 @@
+{
+    "problemMatcher": [
+        {
+            "owner": "tsc",
+            "pattern": [
+                {
+                    "regexp": "/^([^\\s].*)\\((\\d+|\\d+,\\d+|\\d+,\\d+,\\d+,\\d+)\\):\\s+(\\d+)\\s+(.*)$/",
+                    "file": 1,
+                    "location": 2,
+                    "code": 3,
+                    "message": 4
+                }
+            ]
+        }
+    ]
+}
\ No newline at end of file
diff --git a/src/setup-node.ts b/src/setup-node.ts
index ce3c31f7..18625d8f 100644
--- a/src/setup-node.ts
+++ b/src/setup-node.ts
@@ -14,7 +14,7 @@ async function run() {
     }
 
     // TODO: setup proxy from runner proxy config
-    // TODO: problem matchers registered
+    console.log('##[add-matcher].github/tsc.json');
   } catch (error) {
     core.setFailed(error.message);
   }