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

agent-blocked

v0.1.14

Published

CLI installer and reporter for Agent Blocked AI agent escalation alerts.

Readme

agent-blocked

CLI installer and reporter for Agent Blocked.

Published package: https://www.npmjs.com/package/agent-blocked

Install adapters in any agent project:

npx agent-blocked@latest install --tool=all

Report a notifiable issue manually:

npx agent-blocked@latest report --event=needs_direction --severity=medium --reason="Need human direction"

The installer adds a small .agent-blocked/ directory plus tool-specific config, hooks, or instruction files for the selected agent tools. Those files tell the agent when to notify the absent user during goal mode, autonomous mode, background execution, hook-driven automation, CI-style runs, or another CLI-specific automated mode. They also provide a local reporter command that sends notification events to your Agent Blocked alert profile.

For tools with native hooks, such as Claude Code and Codex, installing the adapter turns the hook on for that project. Make sure AGENT_BLOCKED_AGENT_TOKEN is available in the shell or secret store used by the agent.

Rerun the install command after upgrading the package to refresh Agent Blocked-owned helper files under .agent-blocked/.

Agents should not notify during normal interactive paired work when the human is actively present and the issue can be resolved in chat. In automated or unattended modes, agents should notify when there is something the absent user should know or do: work is blocked, progress cannot safely continue, a decision or approval is needed, credentials or access are missing, repeated tool/provider failures are happening, an external service or quota limit prevents progress, context or token limits are approaching, or the next step has high risk or low confidence.

Agents should not report every status update. If they can recover in one or two attempts and no human decision is needed, they should continue without reporting. Reports should be sparse, actionable, and focused on what the user needs to know or do.

Before sending a non-critical report, and before sending another report for the same issue, agents should check recent sent notifications when tool access is available:

npx agent-blocked@latest recent --limit=5

A duplicate should not be sent if a recent notification already covers the same underlying issue and nothing material changed. A new report is justified when the issue is new, materially worse, needs a different user action, a previous next step is stale, or enough time has passed that another notification is useful. Critical first-time reports should not be delayed just to check history.

Agents should not wait for an exact event type. If a generic external blocker stops progress while unattended, such as a provider quota, GitHub Actions limit, spending cap, rate limit, account restriction, unavailable service, missing approval, or blocked deployment, the agent should send a report with the closest existing event type:

  • needs_credentials for missing API keys, OAuth, permissions, roles, or secrets.
  • needs_direction for ambiguous goals, tradeoffs, architecture, product behavior, or priorities.
  • tool_failure for repeated command, API, dependency, deployment, or external-tool failures.
  • approval_required before sending, buying, deploying, deleting, or another irreversible action.
  • low_confidence when the agent can continue but the chance of being wrong is high.
  • context_limit when the agent is approaching context window, token budget, or conversation memory limits and still has enough room to report a checkpoint.
  • hard_blocked when no productive path remains without human input.
  • other for an important unattended issue that does not fit the named categories.

Set the scoped token in the shell or secret store where the agent runs:

export AGENT_BLOCKED_AGENT_TOKEN="your-scoped-token"

Agents can report through the installed local reporter:

node .agent-blocked/report.mjs --event=needs_credentials --severity=critical --reason="Missing deploy credentials"

Agents can check recent sent notifications through the installed local helper:

node .agent-blocked/recent.mjs --limit=5

Codex hook reporting is installed by npx agent-blocked@latest install --tool=codex. Restart Codex or start a new Codex session after installation so the hook config is loaded.

If you already had a Codex session open in that repo, exit the old session and choose the session to resume with:

npx agent-blocked@latest restart --tool=codex

To skip the picker and resume the most recent session:

npx agent-blocked@latest restart --tool=codex --last

Claude Code has the same restart helper:

npx agent-blocked@latest restart --tool=claude

To resume the most recent Claude Code conversation:

npx agent-blocked@latest restart --tool=claude --last

Codex can also be run through the wrapper when you want hard process exits reported:

npx agent-blocked@latest codex -- codex "implement the requested change"