npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@objctp/opencode-shell-routines

v1.4.0

Published

Shell script development toolkit — automated scaffolding, best practices, and quality enforcement for OpenCode and Claude Code

Readme

Shell Routines

Shell scripting toolkit for Claude Code and OpenCode — automated scaffolding, best practices, and quality enforcement.

Prerequisites

| Tool | Purpose | | -------------------- | --------------------------- | | bash-language-server | LSP server for Bash | | shellcheck | Static analysis and linting | | shfmt | Code formatting | | bashunit | Test execution | | checkbashisms | POSIX compatibility checks | | hyperfine | Statistical benchmarking |

# macOS
npm i -g bash-language-server
brew install shellcheck shfmt bashunit checkbashisms hyperfine

# Ubuntu/Debian
npm i -g bash-language-server
sudo apt install shellcheck shfmt bashunit checkbashisms hyperfine

# Arch Linux
npm i -g bash-language-server
sudo pacman -S shellcheck shfmt bashunit checkbashisms hyperfine

Installation

Claude Code:

/plugin marketplace add objctp/shell-routines
/plugin install shell-routines@objct-plugins

# Local development
git clone https://github.com/objctp/shell-routines && cd shell-routines && claude

OpenCode:

Add to your config — OpenCode auto-installs npm plugins via Bun at startup.

// Project scope: opencode.json
{ "plugin": ["@objctp/opencode-shell-routines"] }

// Global scope: ~/.config/opencode/opencode.json
{ "plugin": ["@objctp/opencode-shell-routines"] }
# Local development
git clone https://github.com/objctp/shell-routines && cd shell-routines
ln -s opencode .opencode   # temp symlink so OpenCode discovers the source (don't commit)
opencode

How the OpenCode plugin registers its content: OpenCode loads only the plugin's server entrypoint from the npm package, so on first load the plugin copies its bundled agents/ commands/ skills/ scripts/ into ~/.config/opencode/, where OpenCode's scanners discover them. Restart OpenCode once after installing for skills, commands, and agents to register. The copies are re-synced automatically when the package version changes (overwriting the synced files) — to customise, edit copies under your project's .opencode/ instead. For project-local scope, configure the plugin with options:

{ "plugin": [["@objctp/opencode-shell-routines", { "scope": "project" }]] }

Components

| Component | Purpose | Trigger | | ------------ | ------------------------------------------ | --------------------------------- | | Hooks | Validation and formatting after file edits | Automatic on .sh, .bash, etc. | | Skills | Best practices, patterns, and scaffolding | Context or manual (/skill-name) | | Commands | Interactive tools | Manual only (/command-name) | | Agents | Specialised subagents for complex tasks | Auto-spawned |

Skills

| Skill | When to Use | Purpose | | ------------------------ | ----------------------------------------- | ---------------------------------------- | | shell-best-practices | Writing or creating bash scripts | Standards enforcement + scaffolding | | shell-debugging | Script has runtime failures | Systematic troubleshooting | | shell-security | Auditing for security vulnerabilities | Destructive commands, credentials, fixes | | shell-test | Generating tests | Creates bashunit test files | | shell-review | Quality review of a working script | Structured assessment | | shell-batch-operations | Processing 100+ items or multi-stage work | Token-efficient multi-file processing | | shell-profiling | Script works but runs slowly | Benchmarking and bottleneck analysis |

Commands

| Command | Purpose | | ---------------------------- | ------------------------------------------------------- | | /shell-new <path> [type] | Create new script (delegates to shell-best-practices) | | /shell-test-run [path] | Run tests using bashunit | | /shell-audit <path> | Quality audit (delegates to shell-review skill) | | /shell-batch-exec <script> | Execute batch script and parse JSON output | | /shell-routines-setup | Configure bash-language-server, ShellCheck, shfmt |

Agents

| Agent | Purpose | | ----------------- | ------------------------------------------------------- | | shell-architect | Design complex bash architecture (read-only, no writes) | | shell-expert | Deep implementation work following skill standards |

Templates

Located in skills/shell-best-practices/assets/:

| Template | Use For | | ------------- | ----------------------------------------------- | | standard.sh | Most scripts (argument parsing, error handling) | | minimal.sh | Simple one-task utilities | | library.sh | Sourced libraries (no direct execution) | | posix.sh | POSIX-compatible scripts (containers, embedded) |

License

MIT

Related Documentation