Skip to main content
Bun Shell is a cross-platform bash-like shell built in to Bun. It provides a simple way to run shell commands in JavaScript and TypeScript. To get started, import the $ function from the bun package and use it to run shell commands.
https://mintcdn.com/bun-1dd33a4e-ciro-ws-proxy/5VvA5_lSqM955zlx/icons/typescript.svg?fit=max&auto=format&n=5VvA5_lSqM955zlx&q=85&s=2b3096741a4a19a7060ecd17dee174a4foo.ts
import { $ } from "bun";

await $`echo Hello, world!`; // => "Hello, world!"

The $ function is a tagged template literal that runs the command and returns a promise that resolves with the command’s output.
https://mintcdn.com/bun-1dd33a4e-ciro-ws-proxy/5VvA5_lSqM955zlx/icons/typescript.svg?fit=max&auto=format&n=5VvA5_lSqM955zlx&q=85&s=2b3096741a4a19a7060ecd17dee174a4foo.ts
import { $ } from "bun";

const output = await $`ls -l`.text();
console.log(output);

To get each line of the output as an array, use the lines method.
https://mintcdn.com/bun-1dd33a4e-ciro-ws-proxy/5VvA5_lSqM955zlx/icons/typescript.svg?fit=max&auto=format&n=5VvA5_lSqM955zlx&q=85&s=2b3096741a4a19a7060ecd17dee174a4foo.ts
import { $ } from "bun";

for await (const line of $`ls -l`.lines()) {
  console.log(line);
}

See Docs > API > Shell for complete documentation.