diff --git a/client/src/languageserver.ts b/client/src/languageserver.ts
index 51a00d9cd1b86a4f0a7ec44346a12d044cb3af70..dfd76ab5f3fd2bf5df7e781ecaab5d3b9bffe3b6 100644
--- a/client/src/languageserver.ts
+++ b/client/src/languageserver.ts
@@ -76,6 +76,12 @@ function registerCustomCommands(context: ExtensionContext) {
             arguments: [output.toString()],
         });
     }));
+
+    context.subscriptions.push(Commands.registerCommand('lua.reloadFFIMeta', async () => {
+        defaultClient.client.sendRequest(ExecuteCommandRequest.type, {
+            command: 'lua.reloadFFIMeta',
+        })
+    }))
 }
 
 /** Creates a new {@link LuaClient} and starts it. */
diff --git a/package/package.lua b/package/package.lua
index 02a199617362bb19ae6aeb334346560183384685..0551a758b72179ef7385bd1f78f63a122657b456 100644
--- a/package/package.lua
+++ b/package/package.lua
@@ -46,6 +46,10 @@ return {
                 command = "lua.exportDocument",
                 title = "%command.exportDocument%",
             },
+			{
+				command = "lua.reloadFFIMeta",
+				title = "%command.reloadFFIMeta%",
+			},
         },
         menus = {
             ["editor/context"] = {
@@ -59,6 +63,11 @@ return {
                     command = "lua.addon_manager.open",
                     group = "z_commands",
                 },
+                {
+                    when = "resourceLangId == lua",
+                    command = "lua.reloadFFIMeta",
+                    group = "z_commands"
+                },
             }
         },
         configuration = {