browserDebugInfoInTerminal

Forward browser console logs and errors to your terminal during development.

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.

Usage

Enable forwarding:

import type { NextConfig } from 'next'
 
const nextConfig: NextConfig = {
  experimental: {
    browserDebugInfoInTerminal: true,
  },
}
 
export default nextConfig

Serialization limits

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

Source location

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

app/page.tsx
'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
[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
VersionChanges
v15.4.0experimental browserDebugInfoInTerminal introduced

On this page