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

@jeger-ai/opengantry

v4.0.2

Published

Open Source Gantry — vendor-neutral GXT substrate and Gantry CLI for local git-native agent governance

Readme

OpenGantry

Deterministic guardrails and verification for AI coding agents

OpenGantry keeps AI coding agents inside boundaries you declare and checks their work with the gates you already trust. It is the open-source gantry CLI: local-first, Git-native, vendor-neutral. Nothing runs in a hosted console.

Not Gantry.io. OpenGantry enforces in your repository and your CI; it is not a hosted observability dashboard. Docs: opengantry.ai/docs.

Start with the cage

No setup and no config. Check what any agent committed, whatever started it (a terminal agent, an IDE agent, or a cloud agent that opens pull requests):

npx -p @jeger-ai/opengantry gantry cage check --base origin/main

cage check fails with exit 3 when a commit in base..HEAD changes CI configs, .env files, hook files under an in-repository core.hooksPath (such as .githooks/), your manifest forbidden_zones or your .cage.yaml entries. Lockfile changes are listed without failing it. The rules come from the base commit, so a branch cannot loosen them, and every commit counts, so a secret committed and removed again still fails. Put it where every agent's work lands, the pull request:

# .github/workflows/cage-check.yml
on: pull_request
jobs:
  cage-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with: { fetch-depth: 0 }
      - uses: actions/setup-node@v4
        with: { node-version: 24 }
      - run: npx -y -p @jeger-ai/opengantry gantry cage check --base ${{ github.event.pull_request.base.sha }}

While you work, gantry cage watch covers what never reaches a commit: a gitignored .env, .git/config, .git/hooks. Start it in its own terminal before the agent, and every change to a protected file becomes your decision:

npx -p @jeger-ai/opengantry gantry cage watch
# cage watch: .env changed (secrets, modified, sha256 3467a14afa0c). Keep it? [a]ccept / [r]eject; rejected in 20s

a keeps the change, r restores the file, and no answer within 20 seconds restores it too. Answers come only from the watch terminal, so run it in a plain terminal window, not inside tmux or screen. It watches files, not processes, so it covers IDE, desktop and terminal agents alike.

For agents your scripts start non-interactively, the session cage restores protected files while they run and refuses git push of them from inside the session:

npx @jeger-ai/opengantry-cage -- claude -p "…"

gantry cage suggest --write proposes .cage.yaml rules for migrations, infrastructure and key files; the file can only add protection. The check sees committed history only, the watch sees files on disk while it runs, and the session cage restores rather than blocks. Read the cage docs and its limits.

Then govern agent work with missions

The cage protects a fixed set of paths. Missions add scope checked on every write, work approved before it starts, and evidence a reviewer can check in CI.

flowchart LR
    A[Planner commits mission YAML] --> B[Executor works in scope]
    B --> C[Evidence in EXECUTOR_LOG.md]
    C --> D[gantry verify]
    D -->|fail| E[findings JSON → agent retries]
    D -->|pass| F[Merge-ready evidence]
  • Scope before execution. A mission declares the paths an agent may edit and the paths no one may touch, and a Planner commits it before any work starts.
  • Deterministic verification. Gates are your shell commands (npm test, lint, type checks) with a pass or fail, not an LLM's opinion.
  • Structured retry input. On failure, gantry verify returns findings[] with the file, line and a hint, so an agent can fix the problem instead of guessing from stderr.
  • Forensic trace. Every mission ties to [MSN-NNNN] commits and verbatim gate output in EXECUTOR_LOG.md.
  • Any domain. The same graph governs TypeScript import layers and brand or compliance copy.

How it fits together: How OpenGantry works.

Install

Node.js 24 or newer:

npm install -g @jeger-ai/opengantry
gantry init --tutorial      # scaffold the substrate and walk through a first mission (~3 min)

Then your first mission and wire your agent: Cursor, Claude Code, Codex, OpenCode, Junie, Antigravity, Cline, Aider or OpenHands.

gantry CLI

| Goal | Commands | |------|----------| | Set up | gantry init, gantry init --tutorial, gantry planner set "$(git config user.email)", gantry doctor | | Cage | gantry cage check --base <ref>, gantry cage watch, gantry cage -- <cmd>, gantry cage suggest --write, gantry cage policy --agent claude-code, gantry-cage read-guard | | Legislate | gantry legislate "<intent>" --msn MSN-NNNN --skill-key <key> --gate-command "<cmd>", gantry legislate --from-intent "<intent>" --msn MSN-NNNN | | Execute | gantry mission pin <mission>, eval "$(gantry runtime env)", gantry runtime exec --mission <file> -- <cmd> | | Verify | gantry verify --mission <file>, gantry verify --contract [file] --base <ref>, --json, --format sarif\|junit, gantry adapt --from lights-on <plan> | | Inspect | gantry doctor, gantry mission pin | | Perimeters | gantry arch check, gantry perimeter --ci | | Organization | gantry policy pull, gantry ledger verify, gantry deps check, gantry ledger list |

GANTRY_PLANNER_EMAILS (comma-separated Git author emails) lists who may approve missions; gantry planner set records yours. gantry mcp serve exposes the same workflow to MCP clients. Every command takes --help.

What OpenGantry is not

  • Not an agent. It does not chat, plan features or open pull requests by itself.
  • Not a hosted console. Gates and cages run on your machine and in your CI; verify uploads no source.
  • Not an LLM judge for merge. Gates stay deterministic: your commands, their exit codes.

Documentation

| Start here | | |------------|---| | The cage | cage check, cage watch and the session cage | | Read guard | Keep .env, git credentials, SSH keys and cloud credentials out of Claude Code's and Cursor's context | | Get started | How it works, install, first mission | | Guides | Agents, CI, content, regulated teams, org control plane, troubleshooting | | Verify without missions | gantry verify --contract or npx @jeger-ai/opengantry-verify: one verify.yaml decides whether a change may land | | Concepts | Missions, scope, perimeters, verify, trace evidence, enforcement boundary | | Reference | MCP tools, session variables, metrics, break-glass, release notes | | Manifesto | Why: the post-PR software factory, who owns which law, and the ladder from cage to verify to the org plane |

All docs: docs/index.md, also at opengantry.ai/docs. Upgrade notes: docs/CHANGELOG.md. Security: docs/SECURITY.md. Contributing: docs/DEVELOPMENT.md.

Apache-2.0. See LICENSE and NOTICE.