Scritch
A small CLI to help you write sharable scripts for your team
Install / Use
/learn @jamiebuilds/ScritchREADME
Scritch
Easily create a tiny CLI to help you write sharable scripts for your team
- Write scripts in any scripting language (JavaScript, Bash, Python, etc)
- Share your scripts as a CLI via npm
- Depend on other CLIs/libraries distributed via npm
- Injects useful environment variables into your script
- Strips ANSI escape codes in CI
Install
npm install scritch
Guide
Create a new npm package:
git init company-cli && cd company-cli
npm init
Create a cli.js file and call Scritch inside:
#!/usr/bin/env node
require('scritch')(__dirname)
Then make it executable:
chmod +x ./cli.js
Add cli.js as your package.json#bin:
{
"bin": "./cli.js"
}
Next create a scripts folder:
mkdir scripts
Then start adding scripts in your favorite scripting language:
touch scripts/build.sh
#!/bin/sh
set -e
start=$(date +%s)
echo "Building files..."
for i in $(seq 1 10); do
sleep 0.1
echo "- File $i built."
done
end=$(date +%s)
total=$((end-start))
echo "10 files built in $((total))s."
When you're done, make sure all the scripts you write are executable:
chmod +x ./scripts/*
Usage
Package Structure
Your package structure should look like this:
/company-cli/
package.json
cli.js (executable)
/scripts/
build.sh (executable)
lint.js (executable)
test.py (executable)
Note: Scripts inside of
scripts/*can be written in any scripting language.
In order to make the appropriate files executable you can run:
chmod +x ./cli.js
chmod +x ./scripts/*
Your package.json file should have the following fields:
{
"name": "company-cli",
"version": "1.0.0",
"description": "Our company's CLI",
"bin": "cli.js",
"dependencies": {
"scritch": "*"
}
}
API Usage
The simplest usage of scritch is the following cli.js file:
#!/usr/bin/env node
require('scritch')(__dirname)
But scritch accepts other options:
#!/usr/bin/env node
require('scritch')(__dirname, {
// An alternate path to where your scripts are located
scriptsPath: 'build/scripts',
// Additional help content, great for examples
help: `
Examples
Build all files:
$ company-cli build
Lint all files:
$ company-cli lint
Run all tests:
$ company-cli test
`,
// Additional environment variables you would like to pass to all scripts
env: {
HELPER_ENV_VARIABLE: 'some value'
}
})
Related Skills
node-connect
353.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
111.7kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
111.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
353.3kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
