diff --git a/README.md b/README.md
index 4e1316ed4c..913838ba1e 100644
--- a/README.md
+++ b/README.md
@@ -242,6 +242,29 @@ When you want to override rules, or disable them inline, you need to update to t
 type foo = { bar: 2 }
 ```
 
+### Optional Rules
+
+This config also provides some optional plugins/rules for extended usages.
+
+#### `sort-keys`
+
+This plugin [`eslint-plugin-sort-keys`](https://github.com/namnm/eslint-plugin-sort-keys) allows you to keep object keys sorted with auto-fix.
+
+It's installed but no rules are enabled by default. 
+
+It's recommended to opt-in on each file individually using [configuration comments](https://eslint.org/docs/latest/use/configure/rules#using-configuration-comments-1).
+
+```js
+/* eslint sort-keys/sort-keys-fix: "error" */
+const objectWantedToSort = {
+  a: 2,
+  b: 1,
+  c: 3,
+}
+/* eslint sort-keys/sort-keys-fix: "off" */
+```
+
+
 ### Rules Overrides
 
 Certain rules would only be enabled in specific files, for example, `ts/*` rules would only be enabled in `.ts` files and `vue/*` rules would only be enabled in `.vue` files. If you want to override the rules, you need to specify the file extension:
diff --git a/eslint.config.js b/eslint.config.js
index b53b133d19..fdc274eef4 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -1,5 +1,4 @@
 // @ts-check
-import sortKeys from 'eslint-plugin-sort-keys'
 import styleMigrate from '@stylistic/eslint-plugin-migrate'
 import antfu from './dist/index.js'
 
@@ -14,9 +13,6 @@ export default antfu(
   },
   {
     files: ['src/**/*.ts'],
-    plugins: {
-      'sort-keys': sortKeys,
-    },
     rules: {
       'sort-keys/sort-keys-fix': 'error',
     },
diff --git a/package.json b/package.json
index 181d21ddf5..e30f65f080 100644
--- a/package.json
+++ b/package.json
@@ -50,6 +50,7 @@
     "eslint-plugin-markdown": "^3.0.1",
     "eslint-plugin-n": "^16.2.0",
     "eslint-plugin-no-only-tests": "^3.1.0",
+    "eslint-plugin-sort-keys": "^2.3.5",
     "eslint-plugin-unicorn": "^48.0.1",
     "eslint-plugin-unused-imports": "^3.0.0",
     "eslint-plugin-vitest": "^0.3.2",
@@ -71,7 +72,6 @@
     "bumpp": "^9.2.0",
     "eslint": "^8.51.0",
     "eslint-flat-config-viewer": "^0.1.0",
-    "eslint-plugin-sort-keys": "^2.3.5",
     "esno": "^0.17.0",
     "fast-glob": "^3.3.1",
     "fs-extra": "^11.1.1",
diff --git a/src/configs/index.ts b/src/configs/index.ts
index 0805cad061..8cfc45b5bb 100644
--- a/src/configs/index.ts
+++ b/src/configs/index.ts
@@ -13,3 +13,4 @@ export * from './unicorn'
 export * from './vue'
 export * from './yaml'
 export * from './test'
+export * from './sort-keys'
diff --git a/src/configs/sort-keys.ts b/src/configs/sort-keys.ts
new file mode 100644
index 0000000000..ccfd8306cd
--- /dev/null
+++ b/src/configs/sort-keys.ts
@@ -0,0 +1,18 @@
+import type { ConfigItem } from '../types'
+import { pluginSortKeys } from '../plugins'
+
+/**
+ * Optional sort-keys plugin
+ *
+ * @see https://github.com/namnm/eslint-plugin-sort-keys
+ */
+export function sortKeys(): ConfigItem[] {
+  return [
+    {
+      name: 'antfu:sort-keys',
+      plugins: {
+        'sort-keys': pluginSortKeys,
+      },
+    },
+  ]
+}
diff --git a/src/factory.ts b/src/factory.ts
index fc6357d592..9564bdbcbc 100644
--- a/src/factory.ts
+++ b/src/factory.ts
@@ -12,6 +12,7 @@ import {
   jsonc,
   markdown,
   node,
+  sortKeys,
   sortPackageJson,
   sortTsconfig,
   stylistic,
@@ -90,6 +91,9 @@ export function antfu(options: OptionsConfig & ConfigItem = {}, ...userConfigs:
       stylistic: stylisticOptions,
     }),
     unicorn(),
+
+    // Optional plugins (not enabled by default)
+    sortKeys(),
   )
 
   if (enableVue)
diff --git a/src/plugins.ts b/src/plugins.ts
index ff8a4d396e..b5099a253c 100644
--- a/src/plugins.ts
+++ b/src/plugins.ts
@@ -16,6 +16,7 @@ export { default as pluginVue } from 'eslint-plugin-vue'
 export * as pluginYaml from 'eslint-plugin-yml'
 export { default as pluginNoOnlyTests } from 'eslint-plugin-no-only-tests'
 export { default as pluginVitest } from 'eslint-plugin-vitest'
+export { default as pluginSortKeys } from 'eslint-plugin-sort-keys'
 
 export * as parserTs from '@typescript-eslint/parser'
 export { default as parserVue } from 'vue-eslint-parser'