diff --git a/packages/hoppscotch-agent/eslint.config.mjs b/packages/hoppscotch-agent/eslint.config.mjs
new file mode 100644
index 00000000..1ca0349d
--- /dev/null
+++ b/packages/hoppscotch-agent/eslint.config.mjs
@@ -0,0 +1,67 @@
+import pluginVue from "eslint-plugin-vue"
+import {
+ defineConfigWithVueTs,
+ vueTsConfigs,
+} from "@vue/eslint-config-typescript"
+import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended"
+import globals from "globals"
+
+export default defineConfigWithVueTs(
+ {
+ ignores: [
+ "**/*.d.ts",
+ "dist/**",
+ "node_modules/**",
+ "src-tauri/**",
+ ],
+ },
+ pluginVue.configs["flat/recommended"],
+ vueTsConfigs.recommended,
+ eslintPluginPrettierRecommended,
+ {
+ files: ["**/*.ts", "**/*.js", "**/*.vue"],
+ linterOptions: {
+ reportUnusedDisableDirectives: false,
+ },
+ languageOptions: {
+ sourceType: "module",
+ ecmaVersion: "latest",
+ globals: {
+ ...globals.browser,
+ ...globals.node,
+ },
+ parserOptions: {
+ requireConfigFile: false,
+ ecmaFeatures: {
+ jsx: false,
+ },
+ },
+ },
+ rules: {
+ semi: [2, "never"],
+ "no-console": "off",
+ "no-debugger": process.env.HOPP_LINT_FOR_PROD === "true" ? "error" : "warn",
+ "prettier/prettier":
+ process.env.HOPP_LINT_FOR_PROD === "true" ? "error" : "warn",
+ "vue/multi-word-component-names": "off",
+ "vue/no-side-effects-in-computed-properties": "off",
+ "@typescript-eslint/no-unused-vars": [
+ process.env.HOPP_LINT_FOR_PROD === "true" ? "error" : "warn",
+ {
+ args: "all",
+ argsIgnorePattern: "^_",
+ caughtErrors: "all",
+ caughtErrorsIgnorePattern: "^_",
+ destructuredArrayIgnorePattern: "^_",
+ varsIgnorePattern: "^_",
+ ignoreRestSiblings: true,
+ },
+ ],
+ "@typescript-eslint/no-unused-expressions": "off",
+ "@typescript-eslint/no-non-null-assertion": "off",
+ "@typescript-eslint/no-explicit-any": "off",
+ "@typescript-eslint/no-unsafe-function-type": "off",
+ "no-undef": "off",
+ },
+ }
+)
diff --git a/packages/hoppscotch-agent/package.json b/packages/hoppscotch-agent/package.json
index 3d6e0c4f..2a680c42 100644
--- a/packages/hoppscotch-agent/package.json
+++ b/packages/hoppscotch-agent/package.json
@@ -7,7 +7,14 @@
"dev": "vite",
"build": "vue-tsc --noEmit && vite build",
"preview": "vite preview",
- "tauri": "tauri"
+ "tauri": "tauri",
+ "lint": "eslint src",
+ "lint:ts": "vue-tsc --noEmit",
+ "lintfix": "eslint --fix src",
+ "prod-lint": "cross-env HOPP_LINT_FOR_PROD=true pnpm run lint",
+ "do-lint": "pnpm run prod-lint",
+ "do-typecheck": "pnpm run lint:ts",
+ "do-lintfix": "pnpm run lintfix"
},
"dependencies": {
"@hoppscotch/ui": "0.2.5",
@@ -24,8 +31,16 @@
"@tauri-apps/cli": "2.9.3",
"@types/lodash-es": "4.17.12",
"@types/node": "24.10.1",
+ "@typescript-eslint/eslint-plugin": "8.50.0",
+ "@typescript-eslint/parser": "8.50.0",
"@vitejs/plugin-vue": "6.0.3",
+ "@vue/eslint-config-typescript": "14.6.0",
"autoprefixer": "10.4.23",
+ "cross-env": "10.1.0",
+ "eslint": "9.39.2",
+ "eslint-plugin-prettier": "5.5.4",
+ "eslint-plugin-vue": "10.6.2",
+ "globals": "16.5.0",
"postcss": "8.5.6",
"tailwindcss": "3.4.16",
"typescript": "5.9.3",
diff --git a/packages/hoppscotch-agent/src/App.vue b/packages/hoppscotch-agent/src/App.vue
index b54b57f6..ee370573 100644
--- a/packages/hoppscotch-agent/src/App.vue
+++ b/packages/hoppscotch-agent/src/App.vue
@@ -5,21 +5,33 @@
- An app is trying to register against the Hoppscotch Agent. If this was intentional, copy the given code into
- the app to complete the registration process. Please cancel the registration if you did not initiate this request.
- The window will hide automatically once registration succeeds. If you minimize this window during registration,
- you can access it again from the tray by selecting "Maximize Window".
+ An app is trying to register against the Hoppscotch Agent. If this was
+ intentional, copy the given code into the app to complete the
+ registration process. Please cancel the registration if you did not
+ initiate this request. The window will hide automatically once
+ registration succeeds. If you minimize this window during
+ registration, you can access it again from the tray by selecting
+ "Maximize Window".
{{ pipe(state().otp, O.getOrElse(() => "")) }}
- An app is trying to register against the Hoppscotch Agent. If this was intentional, copy the given code into - the app to complete the registration process. Please hide the window if you did not initiate this request. - Do not hide this window until the verification code is entered. The window will hide automatically once done. + An app is trying to register against the Hoppscotch Agent. If this was + intentional, copy the given code into the app to complete the + registration process. Please hide the window if you did not initiate + this request. Do not hide this window until the verification code is + entered. The window will hide automatically once done. +
++ {{ otpCode }}
-{{ otpCode }}
Waiting for registration requests...
-You can hide this window and access it again from the tray icon.
++ You can hide this window and access it again from the tray icon. +