Note — 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 yourbunfig.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
.
for await (const line of console) { console.log(line); }
This is useful for implementing interactive programs, like the following addition calculator.
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:
bun adder.ts
Let's add some numbers! Count: 0
5
Count: 5
5
Count: 10
5
Count: 15