🚀 Binary Collections¶
Build Release CI
Pages CI
Test CI
A comprehensive toolkit of Node.js CLI utilities designed to streamline everyday development workflows.
It provides fast, lightweight commands for common tasks like git operations, dependency management, submodule handling, conditional execution, CI workflow generation, and running npm scripts in sequence or parallel—helping you reduce repetitive work and improve terminal productivity.
✨ Features¶
-
⚡ Git Workflow Utilities Streamline common Git tasks including diff enhancements, status automation, submodule management, and repository cleanup.
-
🧹 Cleanup Tools Quickly remove
node_modules, clear package manager caches (npm/yarn), and clean build artifacts such as Gradle outputs. -
🔁 Task Orchestration Run npm scripts sequentially or in parallel with improved control and execution clarity.
-
🔐 Conditional Execution Run commands only when file contents change — uses SHA-256 checksums to detect modifications and skip unnecessary re-executions.
-
📁 Repository & Submodule Automation Simplify initialization, syncing, and maintenance of Git submodules and multi-repository setups.
-
📦 Build & Package Utilities Enhance NPM workflows with improved script execution, dependency handling, resolution helpers, and automatic tarball packaging.
-
🛠️ Development Helpers General-purpose utilities for process management, environment setup, file system operations, downloads, and archive inspection.
-
🤖 AI & IDE Tooling Inspect and manage OpenCode databases, browse VS Code workspace storage, and list Copilot memory tool directories.
-
🔄 CI/CD Automation Generate GitHub Actions workflow YAML from test file detection, query latest workflow run status, generate live SVG status badges, and clean up stale action caches automatically.
-
🚀 Performance-Focused CLI Design Lightweight, fast-executing commands designed to reduce friction and speed up everyday development tasks.
Installation¶
Option 1: NPM Package¶
Install locally to your project or globally for system-wide access.
# Local installation
npm install binary-collections
# Global installation
npm install binary-collections -g
# Install from specific release archive
npm install binary-collections@https://github.com/dimaslanjaka/bin/raw/master/releases/bin.tgz
Option 2: Direct Execution¶
Run without installing using npx or yarn dlx.
# Using Yarn Berry
yarn dlx binary-collections@https://raw.githubusercontent.com/dimaslanjaka/bin/master/releases/bin.tgz <command-name>
# Using NPX
npx --legacy-peer-deps -y binary-collections@https://raw.githubusercontent.com/dimaslanjaka/bin/master/releases/bin.tgz <command-name>
Option 3: Clone Repository¶
For development or manual setup.
Configuration¶
Binary Collections supports project-level configuration via a binary-collections.config file in your project root. Only the name binary-collections.config is supported — no .rc, JSON, or YAML variants.
Supported Extensions¶
| Extension | Module System |
|---|---|
.js |
ESM (project must have "type": "module" in package.json) |
.cjs |
CommonJS (always works) |
.mjs |
ESM (always works) |
Boilerplate Config¶
A ready-to-use example is provided in the project root: binary-collections.config-example.js
Copy and rename it to start configuring:
Example — CJS Config (binary-collections.config.cjs)¶
Example — ESM Config (binary-collections.config.mjs)¶
Example — package.json¶
Add a binary-collections property to your package.json:
Configurable Properties¶
| Property | Type | Description |
|---|---|---|
tempDir |
string |
Base directory for temporary files |
githubToken |
string |
GitHub API token override |
opencode.keys |
Array<{name, key}> |
OpenCode API keys for auth rotate and other commands |
VSCode Integration¶
To make these tools available directly in your VSCode terminal, create or update .vscode/settings.json:
{
"terminal.integrated.env.linux": {
"PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:${workspaceFolder}/bin:${workspaceFolder}/node_modules/.bin:${workspaceFolder}/vendor/bin",
"PUPPETEER_SKIP_DOWNLOAD": "true"
},
"terminal.integrated.env.windows": {
"PATH": "${env:LOCALAPPDATA}\\nvm;C:\\nvm4w\\nodejs;C:\\Program Files\\Git\\cmd;C:\\Program Files\\Git\\usr\\bin;${env:PATH};${workspaceFolder}\\node_modules\\.bin;${workspaceFolder}\\bin;${workspaceFolder}\\vendor\\bin;C:\\laragon\\bin\\mysql\\mysql-8.4.3-winx64\\bin;C:\\Users\\Dell\\AppData\\Local\\Programs\\Ollama",
"PUPPETEER_SKIP_DOWNLOAD": "true"
},
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"icon": "terminal-powershell"
},
"Short PowerShell": {
"source": "PowerShell",
"args": [
"-NoExit",
"-Command",
"function prompt { \"[$((Get-Item .).Name)]> \" }"
],
"icon": "terminal-powershell"
},
"Command Prompt": {
"path": [
"${env:windir}\\Sysnative\\cmd.exe",
"${env:windir}\\System32\\cmd.exe"
],
"args": [],
"icon": "terminal-cmd"
},
"Short Command Prompt": {
"path": [
"${env:windir}\\System32\\cmd.exe"
],
"args": [
"/k",
"prompt $p$_$g"
],
"icon": "terminal-cmd"
},
"Git Bash": {
"source": "Git Bash"
},
"Cygwin": {
"path": "C:\\cygwin64\\bin\\bash.exe",
"args": [
"--login",
"-i"
],
"env": {
"CHERE_INVOKING": "1"
}
}
},
"terminal.integrated.defaultProfile.windows": "Command Prompt"
}
Available Tools¶
To view a complete list of available binaries, run:
Quick Reference & Command Documentation¶
| Category | Commands | Description | Docs |
|---|---|---|---|
| Git | git-purge, git-diff, git-diff-staged-ai, git-fix, git-reduce-size, git-undo-commit, git-undo-staged |
Git repository management, diff enhancements, AI commit messages, undo helpers, and optimization | git-purge.md, git-diff.md, git-diff-staged-ai.md, git-fix.md, git-reduce-size.md, git-undo.md |
| Submodules | submodule-install, submodule-remove, submodule-token |
Git submodule operations with authentication token injection | submodule-install.md, submodule-remove.md, submodule-token.md |
| NPM Scripts | nrs, run-s, run-series, npm-run-series |
Run npm scripts in series with pattern matching | npm-run-series.md |
| Conditional Execution | run-by-checksum, run-checksum, run-c |
Run commands only when file checksums change (SHA-256 based) | run-by-checksum.md |
| Build & Package | node-package-packer, tarball-packer, pack-tarball, build-tarball, build-package |
Automated tarball creation, release packaging, and metadata generation | node-package-packer.md |
| Package Mgmt | yarn-reinstall, pkg-resolutions-updater, pkg-res-updater, yarn-install, yarn-clean |
Yarn/package resolutions management utilities | yarn-reinstall.md, yarn-install.md, node-cache-cleaner.md, package-resolutions-updater.md |
| Node.js Dev | find-node-modules, find-nodemodules, dev, prod, empty, node-cache-cleaner, node-executor, py |
Node.js development helpers | find-node-modules.md, env-helpers.md, node-cache-cleaner.md, node-executor.md, py.md |
| Process Mgmt | kill-process, nodekill, javakill, del-ps, kill-night-crows |
Process management and termination | del-ps.md, kill-night-crows.md |
| File System | rmfind, rmx, rmpath, print-tree, dir-tree, copy, move, remove-module, downloader, download, fetch-file, print-tarball-tree, tarball-tree |
File system operations, URL downloads, archive tree inspection | copy-move-file.md, rmpath.md, rmfind-rmx.md, print-directory-tree.md, remove-module.md, downloader.md, print-tarball-tree.md |
| Cleanup | del-nodemodules, del-yarncaches, del-gradle, del-yarn-caches, yarn-clean |
Cache and build directory cleanup | node-cache-cleaner.md, del-gradle.md |
| CI/GitHub Actions | clean-github-actions-caches, clear-gh-caches, generate-test-ci, get-latest-workflow-status, get-latest-workflow, latest-workflow, wf-status, workflow-badge, wf-badge, gh-status-badge, actions-badge |
GitHub Actions cache cleanup, automated CI workflow generation, workflow status inspection, and live SVG badge generation | clean-github-actions-caches.md, generate-test-ci.md, get-latest-workflow-status.md, workflow-badge.md |
| AI & IDE Tooling | opc, opencode-cli, vscode-cli |
OpenCode database management (list/delete sessions and projects) and VS Code workspace inspection with Copilot memory detection | opencode-cli.md, vscode-cli.md |
| Other | binary-collections, changelog, php-cs-fixer-staged, free-chatgpt, test-runners |
Main dispatcher, changelog generation, PHP CS fixer for staged files, ChatGPT client, and Jest runners for CJS/ESM | binary-collections.md, changelog.md, php-cs-fixer-staged.md, free-chatgpt.md, test-runners.md |
Troubleshooting¶
Submodule Installation Issues¶
Error:
fatal: 'origin/<branch>' is not a commit and a branch '<branch>' cannot be created from it
fatal: unable to checkout submodule '<folder>/<submodule>'
Solution:
Delete the .git/modules directory before running submodule-install.
Complete Reset & Install:
echo "Initializing submodules..."
git submodule init
git submodule foreach "git submodule init"
echo "Syncing submodules..."
git submodule sync
git submodule foreach "git submodule sync"
echo "Updating submodules..."
npx --yes rimraf .git/modules
npx --yes binary-collections@https://raw.githubusercontent.com/dimaslanjaka/bin/master/releases/bin.tgz submodule-install
Development¶
Test Local Command Executor¶
When developing locally, to test the bundled executor run bc <commandName> (use bin/bc on Unix or bin/bc.cmd on Windows). Its usage is the same as binary-collections <commandName> but intended only for development and testing.
Command List Generation¶
The list of available binaries is auto-generated by build.mjs. This script scans bin/, lib/, and updates the bin field in package.json.
To update the binary list:
Project Structure¶
- Source Code: Located in the
src/folder. - Binaries: Executable scripts located in
bin/. - Libraries: Reusable modules in
lib/.
Contributing¶
Contributions are welcome! Please feel free to submit a Pull Request.
License¶
This project is licensed under the terms specified in the LICENSE file.