diff --git a/labeler-config.yml b/labeler-config.yml
index 15ee4ba018..69529887a6 100644
--- a/labeler-config.yml
+++ b/labeler-config.yml
@@ -43,9 +43,6 @@
 'package: router-generator':
   - changed-files:
       - any-glob-to-any-file: 'packages/router-generator/**/*'
-'package: router-is-server':
-  - changed-files:
-      - any-glob-to-any-file: 'packages/router-is-server/**/*'
 'package: router-plugin':
   - changed-files:
       - any-glob-to-any-file: 'packages/router-plugin/**/*'
diff --git a/packages/react-router/vite.config.ts b/packages/react-router/vite.config.ts
index 4ed5648368..47091993ef 100644
--- a/packages/react-router/vite.config.ts
+++ b/packages/react-router/vite.config.ts
@@ -5,7 +5,7 @@ import packageJson from './package.json'
 
 const config = defineConfig({
   plugins: [react()],
-  // Add 'development' condition for tests to resolve @tanstack/router-is-server
+  // Add 'development' condition for tests to resolve @tanstack/router-core/isServer
   // to the development export (isServer = undefined) instead of node (isServer = true)
   ...(process.env.VITEST && {
     resolve: {
diff --git a/packages/router-core/package.json b/packages/router-core/package.json
index c5125d2b35..e649cf5631 100644
--- a/packages/router-core/package.json
+++ b/packages/router-core/package.json
@@ -68,6 +68,86 @@
         "default": "./dist/cjs/ssr/client.cjs"
       }
     },
+    "./isServer": {
+      "development": {
+        "import": {
+          "types": "./dist/esm/isServer/development.d.ts",
+          "default": "./dist/esm/isServer/development.js"
+        },
+        "require": {
+          "types": "./dist/cjs/isServer/development.d.cts",
+          "default": "./dist/cjs/isServer/development.cjs"
+        }
+      },
+      "workerd": {
+        "import": {
+          "types": "./dist/esm/isServer/server.d.ts",
+          "default": "./dist/esm/isServer/server.js"
+        },
+        "require": {
+          "types": "./dist/cjs/isServer/server.d.cts",
+          "default": "./dist/cjs/isServer/server.cjs"
+        }
+      },
+      "worker": {
+        "import": {
+          "types": "./dist/esm/isServer/server.d.ts",
+          "default": "./dist/esm/isServer/server.js"
+        },
+        "require": {
+          "types": "./dist/cjs/isServer/server.d.cts",
+          "default": "./dist/cjs/isServer/server.cjs"
+        }
+      },
+      "browser": {
+        "import": {
+          "types": "./dist/esm/isServer/client.d.ts",
+          "default": "./dist/esm/isServer/client.js"
+        },
+        "require": {
+          "types": "./dist/cjs/isServer/client.d.cts",
+          "default": "./dist/cjs/isServer/client.cjs"
+        }
+      },
+      "deno": {
+        "import": {
+          "types": "./dist/esm/isServer/server.d.ts",
+          "default": "./dist/esm/isServer/server.js"
+        },
+        "require": {
+          "types": "./dist/cjs/isServer/server.d.cts",
+          "default": "./dist/cjs/isServer/server.cjs"
+        }
+      },
+      "node": {
+        "import": {
+          "types": "./dist/esm/isServer/server.d.ts",
+          "default": "./dist/esm/isServer/server.js"
+        },
+        "require": {
+          "types": "./dist/cjs/isServer/server.d.cts",
+          "default": "./dist/cjs/isServer/server.cjs"
+        }
+      },
+      "bun": {
+        "import": {
+          "types": "./dist/esm/isServer/server.d.ts",
+          "default": "./dist/esm/isServer/server.js"
+        },
+        "require": {
+          "types": "./dist/cjs/isServer/server.d.cts",
+          "default": "./dist/cjs/isServer/server.cjs"
+        }
+      },
+      "import": {
+        "types": "./dist/esm/isServer/client.d.ts",
+        "default": "./dist/esm/isServer/client.js"
+      },
+      "require": {
+        "types": "./dist/cjs/isServer/client.d.cts",
+        "default": "./dist/cjs/isServer/client.cjs"
+      }
+    },
     "./package.json": "./package.json"
   },
   "sideEffects": false,
@@ -80,7 +160,6 @@
   },
   "dependencies": {
     "@tanstack/history": "workspace:*",
-    "@tanstack/router-is-server": "workspace:*",
     "@tanstack/store": "^0.8.0",
     "cookie-es": "^2.0.0",
     "seroval": "^1.4.2",
diff --git a/packages/router-core/src/isServer.ts b/packages/router-core/src/isServer.ts
index 560947269a..98f73e1261 100644
--- a/packages/router-core/src/isServer.ts
+++ b/packages/router-core/src/isServer.ts
@@ -1,7 +1,7 @@
 /**
  * Static server/client detection for tree-shaking support.
  *
- * This file re-exports `isServer` from `@tanstack/router-is-server` which uses
+ * This re-exports `isServer` from the `isServer/` directory which uses
  * conditional exports to provide different values based on the environment:
  *
  * - `browser` condition → `false` (client)
@@ -21,4 +21,4 @@
  * }
  * ```
  */
-export { isServer } from '@tanstack/router-is-server'
+export { isServer } from './isServer/development'
diff --git a/packages/router-core/src/isServer/client.ts b/packages/router-core/src/isServer/client.ts
new file mode 100644
index 0000000000..f2f86b6ec7
--- /dev/null
+++ b/packages/router-core/src/isServer/client.ts
@@ -0,0 +1 @@
+export const isServer = false
diff --git a/packages/router-is-server/src/development.ts b/packages/router-core/src/isServer/development.ts
similarity index 100%
rename from packages/router-is-server/src/development.ts
rename to packages/router-core/src/isServer/development.ts
diff --git a/packages/router-core/src/isServer/server.ts b/packages/router-core/src/isServer/server.ts
new file mode 100644
index 0000000000..6f290a1fa0
--- /dev/null
+++ b/packages/router-core/src/isServer/server.ts
@@ -0,0 +1 @@
+export const isServer = true
diff --git a/packages/router-core/vite.config.ts b/packages/router-core/vite.config.ts
index a27d8d3535..c6f7fc9220 100644
--- a/packages/router-core/vite.config.ts
+++ b/packages/router-core/vite.config.ts
@@ -18,7 +18,14 @@ const config = defineConfig({
 export default mergeConfig(
   config,
   tanstackViteConfig({
-    entry: ['./src/index.ts', './src/ssr/client.ts', './src/ssr/server.ts'],
+    entry: [
+      './src/index.ts',
+      './src/ssr/client.ts',
+      './src/ssr/server.ts',
+      './src/isServer/server.ts',
+      './src/isServer/client.ts',
+      './src/isServer/development.ts',
+    ],
     srcDir: './src',
   }),
 )
diff --git a/packages/router-is-server/eslint.config.js b/packages/router-is-server/eslint.config.js
deleted file mode 100644
index b527b96a78..0000000000
--- a/packages/router-is-server/eslint.config.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// @ts-check
-
-import rootConfig from '../../eslint.config.js'
-
-export default [
-  ...rootConfig,
-  {
-    rules: {
-      // We explicitly annotate `isServer: boolean` even though it's inferrable
-      // because the explicit type is important for documentation and ensures
-      // consistent typing across all conditional export files
-      '@typescript-eslint/no-inferrable-types': 'off',
-    },
-  },
-]
diff --git a/packages/router-is-server/package.json b/packages/router-is-server/package.json
deleted file mode 100644
index 5cd2fe5678..0000000000
--- a/packages/router-is-server/package.json
+++ /dev/null
@@ -1,133 +0,0 @@
-{
-  "name": "@tanstack/router-is-server",
-  "version": "1.127.3",
-  "description": "Server/client detection for TanStack Router with tree-shaking support",
-  "author": "Tanner Linsley",
-  "license": "MIT",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/TanStack/router.git",
-    "directory": "packages/router-is-server"
-  },
-  "homepage": "https://tanstack.com/router",
-  "funding": {
-    "type": "github",
-    "url": "https://github.com/sponsors/tannerlinsley"
-  },
-  "keywords": [
-    "router",
-    "server",
-    "client",
-    "tree-shaking"
-  ],
-  "scripts": {
-    "clean": "rimraf ./dist && rimraf ./coverage",
-    "test:eslint": "eslint ./src",
-    "test:types": "pnpm run \"/^test:types:ts[0-9]{2}$/\"",
-    "test:types:ts54": "node ../../node_modules/typescript54/lib/tsc.js",
-    "test:types:ts55": "node ../../node_modules/typescript55/lib/tsc.js",
-    "test:types:ts56": "node ../../node_modules/typescript56/lib/tsc.js",
-    "test:types:ts57": "node ../../node_modules/typescript57/lib/tsc.js",
-    "test:types:ts58": "node ../../node_modules/typescript58/lib/tsc.js",
-    "test:types:ts59": "tsc",
-    "test:build": "publint --strict && attw --ignore-rules no-resolution --pack .",
-    "test:unit": "exit 0",
-    "test:unit:dev": "exit 0",
-    "build": "vite build"
-  },
-  "type": "module",
-  "types": "dist/esm/server.d.ts",
-  "main": "dist/cjs/server.cjs",
-  "module": "dist/esm/server.js",
-  "exports": {
-    ".": {
-      "development": {
-        "import": {
-          "types": "./dist/esm/development.d.ts",
-          "default": "./dist/esm/development.js"
-        },
-        "require": {
-          "types": "./dist/cjs/development.d.cts",
-          "default": "./dist/cjs/development.cjs"
-        }
-      },
-      "workerd": {
-        "import": {
-          "types": "./dist/esm/server.d.ts",
-          "default": "./dist/esm/server.js"
-        },
-        "require": {
-          "types": "./dist/cjs/server.d.cts",
-          "default": "./dist/cjs/server.cjs"
-        }
-      },
-      "worker": {
-        "import": {
-          "types": "./dist/esm/server.d.ts",
-          "default": "./dist/esm/server.js"
-        },
-        "require": {
-          "types": "./dist/cjs/server.d.cts",
-          "default": "./dist/cjs/server.cjs"
-        }
-      },
-      "browser": {
-        "import": {
-          "types": "./dist/esm/client.d.ts",
-          "default": "./dist/esm/client.js"
-        },
-        "require": {
-          "types": "./dist/cjs/client.d.cts",
-          "default": "./dist/cjs/client.cjs"
-        }
-      },
-      "deno": {
-        "import": {
-          "types": "./dist/esm/server.d.ts",
-          "default": "./dist/esm/server.js"
-        },
-        "require": {
-          "types": "./dist/cjs/server.d.cts",
-          "default": "./dist/cjs/server.cjs"
-        }
-      },
-      "node": {
-        "import": {
-          "types": "./dist/esm/server.d.ts",
-          "default": "./dist/esm/server.js"
-        },
-        "require": {
-          "types": "./dist/cjs/server.d.cts",
-          "default": "./dist/cjs/server.cjs"
-        }
-      },
-      "bun": {
-        "import": {
-          "types": "./dist/esm/server.d.ts",
-          "default": "./dist/esm/server.js"
-        },
-        "require": {
-          "types": "./dist/cjs/server.d.cts",
-          "default": "./dist/cjs/server.cjs"
-        }
-      },
-      "import": {
-        "types": "./dist/esm/client.d.ts",
-        "default": "./dist/esm/client.js"
-      },
-      "require": {
-        "types": "./dist/cjs/client.d.cts",
-        "default": "./dist/cjs/client.cjs"
-      }
-    },
-    "./package.json": "./package.json"
-  },
-  "sideEffects": false,
-  "files": [
-    "dist",
-    "src"
-  ],
-  "engines": {
-    "node": ">=12"
-  }
-}
diff --git a/packages/router-is-server/src/client.ts b/packages/router-is-server/src/client.ts
deleted file mode 100644
index 4023ccd164..0000000000
--- a/packages/router-is-server/src/client.ts
+++ /dev/null
@@ -1 +0,0 @@
-export const isServer: boolean = false
diff --git a/packages/router-is-server/src/server.ts b/packages/router-is-server/src/server.ts
deleted file mode 100644
index f5608b94c6..0000000000
--- a/packages/router-is-server/src/server.ts
+++ /dev/null
@@ -1 +0,0 @@
-export const isServer: boolean = true
diff --git a/packages/router-is-server/tsconfig.json b/packages/router-is-server/tsconfig.json
deleted file mode 100644
index 596e2cf729..0000000000
--- a/packages/router-is-server/tsconfig.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "extends": "../../tsconfig.json",
-  "include": ["src"]
-}
diff --git a/packages/router-is-server/vite.config.ts b/packages/router-is-server/vite.config.ts
deleted file mode 100644
index 2cc498ab54..0000000000
--- a/packages/router-is-server/vite.config.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { defineConfig, mergeConfig } from 'vite'
-import { tanstackViteConfig } from '@tanstack/config/vite'
-
-const config = defineConfig({
-  plugins: [],
-})
-
-export default mergeConfig(
-  config,
-  tanstackViteConfig({
-    entry: ['./src/server.ts', './src/client.ts', './src/development.ts'],
-    srcDir: './src',
-    cjs: true,
-  }),
-)
diff --git a/packages/solid-router/vite.config.ts b/packages/solid-router/vite.config.ts
index 042f35bf4d..20fb836daf 100644
--- a/packages/solid-router/vite.config.ts
+++ b/packages/solid-router/vite.config.ts
@@ -25,7 +25,7 @@ const config = defineConfig(({ mode }) => {
 
   return {
     plugins: [solid()] as ViteUserConfig['plugins'],
-    // Add 'development' condition for tests to resolve @tanstack/router-is-server
+    // Add 'development' condition for tests to resolve @tanstack/router-core/isServer
     // to the development export (isServer = undefined) instead of node (isServer = true)
     ...(process.env.VITEST && {
       resolve: {
diff --git a/packages/vue-router/vite.config.ts b/packages/vue-router/vite.config.ts
index 00f91ff148..e92d5ea60d 100644
--- a/packages/vue-router/vite.config.ts
+++ b/packages/vue-router/vite.config.ts
@@ -14,7 +14,7 @@ const config = defineConfig({
     alias: {
       '@tanstack/vue-router': resolve(__dirname, 'src'),
     },
-    // Add 'development' condition for tests to resolve @tanstack/router-is-server
+    // Add 'development' condition for tests to resolve @tanstack/router-core/isServer
     // to the development export (isServer = undefined) instead of node (isServer = true)
     ...(process.env.VITEST && { conditions: ['development'] }),
   },
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 94d2b9b27d..46345cd798 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -11718,9 +11718,6 @@ importers:
       '@tanstack/history':
         specifier: workspace:*
         version: link:../history
-      '@tanstack/router-is-server':
-        specifier: workspace:*
-        version: link:../router-is-server
       '@tanstack/store':
         specifier: ^0.8.0
         version: 0.8.0
@@ -11834,8 +11831,6 @@ importers:
         specifier: workspace:*
         version: link:../react-router
 
-  packages/router-is-server: {}
-
   packages/router-plugin:
     dependencies:
       '@babel/core':
