Skip to main content

stacks-shell

Use when executing shell commands in a Stacks application - running system commands, process management, or using the shell operator. Covers @stacksjs/shell which wraps Bun's native $ operator.

Source facts

Repository
stacksjs/stacks
Last source activity
August 29, 2026 at 17:05
Detected SKILL.md language
English
Stars
633
Forks
20

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
stacks-shell
description
Use when executing shell commands in a Stacks application - running system commands, process management, or using the shell operator. Covers @stacksjs/shell which wraps Bun's native $ operator.
license
MIT
compatibility
Bun >= 1.3.0, TypeScript
allowed-tools
Read Edit Write Bash Grep Glob
# Stacks Shell ## Key Paths - Core package: `storage/framework/core/shell/src/` - Source: `storage/framework/core/shell/src/index.ts` - Package: `@stacksjs/shell` ## API The entire package is a single re-export of Bun's `$` shell operator: ```typescript export { $ } from 'bun' ``` ## Usage ```typescript import { $ } from '@stacksjs/shell' // Run shell commands await $`ls -la` // Capture output const result = await $`git status` console.log(result.text()) // Set working directory $.cwd('/path/to/dir') await $`bun install` // Pipe commands await $`cat file.txt | grep "pattern"` // Environment variables await $`echo $HOME` ``` ## Bun $ Operator Features - **Template literals** — commands written as tagged template strings - **Auto-escaping** — interpolated values are safely escaped - **Streaming** — stdout/stderr can be streamed - **CWD** — `$.cwd(path)` sets working directory - **Env** — `$.env(vars)` sets environment variables - **Quiet mode** — `$.quiet()` suppresses output - **Throws on error** — non-zero exit codes throw by default ## Gotchas - **Thin wrapper** — this package literally just re-exports `$` from Bun - **Server-side only** — shell commands run in the server environment, not in the browser - **For CLI output formatting, use `@stacksjs/cli`** — this package is for raw command execution - **Bun-specific** — the `$` operator is a Bun feature, not available in Node.js - **Used throughout the framework** — build actions, CLI commands, and dev server all use `$` for process execution
View on GitHub