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

@agenthippo-ai/pack-validate

v0.1.1

Published

Validate Agent Pack agent.yaml manifests against the published JSON Schema

Readme

Agent Pack

Published specification, JSON Schema, and validator for Agent Packs.

An Agent Pack is a versioned, deployable unit of agent — its prompt, its tools, its engine, and its permissions.
It’s what your IDE writes, your CI validates, and your infrastructure runs.

| | | |---|---| | Canonical HTML | https://packs.agenthippo.ai/spec/v1 | | Schema $id | https://packs.agenthippo.ai/schema/v1/agent.json | | Pitch | https://agenthippo.ai/why-agent-pack | | License | CC BY 4.0 (spec text + schema) | | Validator | npx @agenthippo-ai/pack-validate · Action agenthippoai/pack |

This repository is the machine-readable / citable source for the format. The website hosts the same schema and a rendered spec page. The CLI and GitHub Action validate against schema/v1/agent.json in this repo.

What is an Agent Pack

Most agent code never leaves a chat window or a laptop. Once it has to run against real company data, for more than one person, someone asks: which version is this, what can it touch, and whose permissions is it using?

An Agent Pack answers that as a versioned artifact: prompt, skills, tools, engine, and permissions — small enough to review and roll back like any other production change. This repo defines the manifest (agent.yaml) and schema. Deploy targets, runtimes, and infrastructure are generated from a pack by tooling, not declared in it.

Full write-up: packs.agenthippo.ai/spec/v1 · SPEC.md

Example

Read-only warehouse analyst with per-user (OBO) SQL access:

# yaml-language-server: $schema=https://packs.agenthippo.ai/schema/v1/agent.json
apiVersion: agenthippo.ai/v1
kind: Agent
metadata:
  name: warehouse-analyst
  version: 0.1.0
  author: AgentHippo
  description: Read-only warehouse analyst — answers questions against the warehouse via per-user (OBO) SQL access.
spec:
  engine: claude
  engineVersion: 2.1.209
  model: claude-fable-5
  permissions:
    fileAccess: read-only
  mcp:
    - name: databricks
      config: ./mcp/databricks.mcp.json
  skills:
    - path: ./skills/sql-query

Only agent.yaml is required by the schema. The pack prompt is always AGENTS.md at the pack root — a fixed path, not a manifest field (same idea as Dockerfile). Companion dirs skills/ and mcp/ are declared via spec.skills / spec.mcp because those can be many. Subagents should be other Agent Packs (own engine, model, tools), not nested mini-configs. Details: SPEC.md · Anatomy.

Layout

SPEC.md                 # Agent Pack Specification v1 (markdown)
schema/v1/agent.json    # JSON Schema (identical to packs.agenthippo.ai)
bin/pack-validate.mjs   # CLI entry
src/validate.mjs        # Ajv2020 + js-yaml
action.yml              # GitHub Action (thin CLI wrapper)
package.json            # @agenthippo-ai/pack-validate
LICENSE                 # CC BY 4.0

Validate

# current directory (./agent.yaml) or a pack / store packs dir
npx @agenthippo-ai/pack-validate
npx @agenthippo-ai/pack-validate ./path/to/agent.yaml
npx @agenthippo-ai/pack-validate ./agent-packs

GitHub Actions:

- uses: agenthippoai/[email protected]
  with:
    path: .

Editor validation

In agent.yaml:

# yaml-language-server: $schema=https://packs.agenthippo.ai/schema/v1/agent.json

Contributing

Open issues for clarifications and RFCs.