Skip to main content
Bun provides a browser- and Node.js-compatible console global. This page only documents Bun-native APIs.

Object inspection depth

Bun allows you to configure how deeply nested objects are displayed in console.log() output:
  • CLI flag: Use --console-depth <number> to set the depth for a single run
  • Configuration: Set console.depth in your bunfig.toml for persistent configuration
  • Default: Objects are inspected to a depth of 2 levels
const nested = {a: {b: {c: {d: 'deep'}}}};
console.log(nested);
// Default (depth 2): { a: { b: [Object] } }
// With depth 4: { a: { b: { c: { d: 'deep' } } } }
The CLI flag takes precedence over the configuration file setting.

Reading from stdin

In Bun, the console object can be used as an AsyncIterable to sequentially read lines from process.stdin.
/icons/typescript.svgadder.ts
for await (const line of console) {
	console.log(line);
}
This is useful for implementing interactive programs, like the following addition calculator.
/icons/typescript.svgadder.ts
console.log(`Let's add some numbers!`);
console.write(`Count: 0\n> `);

let count = 0;
for await (const line of console) {
	count += Number(line);
	console.write(`Count: ${count}\n> `);
}
To run the file:
terminal
bun adder.ts
Let's add some numbers!
Count: 0
> 5
Count: 5
> 5
Count: 10
> 5
Count: 15
I