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

@stakeswky/openclaw-permctl

v0.2.0

Published

macOS TCC permission error detection, auto-interception, CLI commands, and permctl skill for OpenClaw agents

Readme

@stakeswky/openclaw-permctl

macOS TCC permission error detection, auto-interception, and guided remediation for OpenClaw agents.

What it does

macOS uses TCC (Transparency, Consent, and Control) to gate access to sensitive resources like screen recording, accessibility, camera, etc. These permissions are per-binary — when Node.js gets upgraded via Homebrew, the binary path changes and permissions break silently.

This plugin:

  • Detects TCC permission errors in command output (12 error patterns across 6 permission categories)
  • Diagnoses current permission states via the permctl.sh skill
  • Guides users through fixing permissions with step-by-step instructions (English & Chinese)
  • Identifies which terminal/binary needs authorization (detect-host)
  • Monitors permission changes over time (watch for cron/heartbeat integration)
  • Provides CLI commands, slash commands, and agent tools

Install

openclaw plugins install @stakeswky/openclaw-permctl

Or clone locally:

git clone https://github.com/stakeswky/openclaw-plugin-permctl
# Add to plugins.load.paths in your OpenClaw config

Configuration

All settings are optional. Defaults work out of the box.

{
  plugins: {
    entries: {
      permctl: {
        enabled: true,
        config: {
          autoDetect: true,      // Auto-analyze exec failures for TCC errors
          notifyOnDenied: true,  // Alert on permission status changes
          language: "auto"       // "auto" | "en" | "zh"
        }
      }
    }
  }
}

Agent Tools (opt-in)

Enable in your agent config:

{
  agents: {
    list: [{
      id: "main",
      tools: { allow: ["permctl"] }  // enables all permctl tools
    }]
  }
}

| Tool | Description | |------|-------------| | tcc_detect | Analyze command output for TCC errors | | permctl_status | Check current permission states | | permctl_guide | Get step-by-step fix instructions | | permctl_detect_host | Identify terminal app and binary paths | | permctl_watch | Check for permission changes since last run |

CLI Commands

openclaw permctl status                    # Check all permissions
openclaw permctl status accessibility      # Check specific permission
openclaw permctl guide screen-recording    # Get fix instructions
openclaw permctl guide accessibility --lang zh  # Chinese instructions
openclaw permctl detect-host               # Show terminal & binary info
openclaw permctl watch                     # Check for changes

Slash Commands

In any chat channel (Telegram, Discord, etc.):

/permctl                          # Check all permissions
/permctl status accessibility     # Check specific permission
/permctl guide screen-recording   # Get fix instructions
/permctl detect-host              # Show terminal info
/permctl watch                    # Check for changes

Permissions Covered

| Permission | TCC Service | Detection Method | |---|---|---| | Accessibility | kTCCServiceAccessibility | osascript probe | | Automation | kTCCServiceAppleEvents | osascript probe | | Screen Recording | kTCCServiceScreenCapture | screencapture test / peekaboo / TCC.db | | Full Disk Access | kTCCServiceSystemPolicyAllFiles | ~/Library/Mail access test | | Camera | kTCCServiceCamera | peekaboo | | Microphone | kTCCServiceMicrophone | peekaboo |

Watch Mode (Cron Integration)

The watch command compares current permission states against ~/.permctl_state.json. Use it with OpenClaw cron for periodic monitoring:

// Example: check permissions every 6 hours
{
  schedule: { kind: "cron", expr: "0 */6 * * *" },
  payload: { kind: "agentTurn", message: "Run permctl_watch and alert me if any permissions changed." }
}

Development

npm install
npm test

License

MIT