Built-in Presets
Presets are named compositions of units. Each preset defines a complete container environment for a specific workflow.
full-stack
The default preset. Covers web development, JS/TS projects, and general-purpose coding.
Units: dev-utils, node, bun, github-cli, doc-utils
sj claude --preset full-stackfull-stack-playwright
Extends full-stack with browser automation support.
Units: dev-utils, node, bun, github-cli, doc-utils, playwright
sj claude --preset full-stack-playwrightrust-wasm
WebAssembly development with Rust toolchain and wasm tooling.
Units: dev-utils, node, rust, wasm, github-cli
sj claude --preset rust-wasmil2cpp-re
Reverse engineering toolkit for IL2CPP/Unity binaries. Includes Ghidra, JADX, .NET, and specialized RE tools.
Units: dev-utils, node (v20), github-cli, java, dotnet, rust, ghidra, jadx, il2cpp-tools
sj claude --preset il2cpp-rePreset Resolution
Presets are resolved in priority order:
- Per-repo —
.sj/presets/<name>/preset.json - User —
~/.config/sj/presets/<name>/preset.json - Built-in — embedded in the binary
A per-repo preset with the same name as a built-in preset will override it for that project.
Preset Format
{
"name": "my-preset",
"units": [
{ "name": "dev-utils" },
{ "name": "node", "args": { "version": "20" } },
{ "name": "rust", "args": { "version": "nightly" } }
]
}Each entry in units can include an args object to override the unit's default build arguments.