Skip to content

browserDebugInfoInTerminal

Source URL: https://nextjs.org/docs/app/api-reference/config/next-config-js/browserDebugInfoInTerminal

This feature is currently experimental and subject to change, it is not recommended for production.

The experimental.browserDebugInfoInTerminal option forwards console output and runtime errors originating in the browser to the dev server terminal.

This option is disabled by default. When enabled it only works in development mode.

Enable forwarding:

import type { NextConfig } from 'next'
const nextConfig: NextConfig = {
experimental: {
browserDebugInfoInTerminal: true,
},
}
export default nextConfig
/** @type {import('next').NextConfig} */
const nextConfig = {
experimental: {
browserDebugInfoInTerminal: true,
},
}
module.exports = nextConfig

Deeply nested objects/arrays are truncated using sensible defaults. You can tweak these limits:

  • depthLimit: (optional) Limit stringification depth for nested objects/arrays. Default: 5
  • edgeLimit: (optional) Max number of properties or elements to include per object or array. Default: 100
import type { NextConfig } from 'next'
const nextConfig: NextConfig = {
experimental: {
browserDebugInfoInTerminal: {
depthLimit: 5,
edgeLimit: 100,
},
},
}
export default nextConfig
/** @type {import('next').NextConfig} */
const nextConfig = {
experimental: {
browserDebugInfoInTerminal: {
depthLimit: 5,
edgeLimit: 100,
},
},
}
module.exports = nextConfig

Source locations are included by default when this feature is enabled.

'use client'
export default function Home() {
return (
<button
type="button"
onClick={() => {
console.log('Hello World')
}}
>
Click me
</button>
)
}

Clicking the button prints this message to the terminal.

Terminal window
[browser] Hello World (app/page.tsx:8:17)

To suppress them, set showSourceLocation: false.

  • showSourceLocation: Include source location info when available.
import type { NextConfig } from 'next'
const nextConfig: NextConfig = {
experimental: {
browserDebugInfoInTerminal: {
showSourceLocation: false,
},
},
}
export default nextConfig
/** @type {import('next').NextConfig} */
const nextConfig = {
experimental: {
browserDebugInfoInTerminal: {
showSourceLocation: false,
},
},
}
module.exports = nextConfig
VersionChanges
v15.4.0experimental browserDebugInfoInTerminal introduced