diff --git a/src/pages/settings.tsx b/src/pages/settings.tsx
index 9904335f9383390a2f1ab651c1463d80f2a6ce04..039513b399177628aeb9a08465175f9a1a3277ef 100644
--- a/src/pages/settings.tsx
+++ b/src/pages/settings.tsx
@@ -1,6 +1,9 @@
-import { Paper } from "@mui/material";
+import { IconButton, Paper } from "@mui/material";
+import { useLockFn } from "ahooks";
 import { useTranslation } from "react-i18next";
 import { BasePage, Notice } from "@/components/base";
+import { GitHub } from "@mui/icons-material";
+import { openWebUrl } from "@/services/cmds";
 import SettingVerge from "@/components/setting/setting-verge";
 import SettingClash from "@/components/setting/setting-clash";
 import SettingSystem from "@/components/setting/setting-system";
@@ -12,8 +15,24 @@ const SettingPage = () => {
     Notice.error(err?.message || err.toString());
   };
 
+  const toGithubRepo = useLockFn(() => {
+    return openWebUrl("https://github.com/zzzgydi/clash-verge");
+  });
+
   return (
-    <BasePage title={t("Settings")}>
+    <BasePage
+      title={t("Settings")}
+      header={
+        <IconButton
+          size="small"
+          color="inherit"
+          title="@zzzgydi/clash-verge"
+          onClick={toGithubRepo}
+        >
+          <GitHub fontSize="inherit" />
+        </IconButton>
+      }
+    >
       <Paper sx={{ borderRadius: 1, boxShadow: 2, mb: 3 }}>
         <SettingClash onError={onError} />
       </Paper>