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

agents-md

v1.1.0

Published

A typescript library

Downloads

24

Readme

agents-md

We need an elegant and scalable vibe coding solution.

The Problem

Your project grows, but your AGENTS.md doesn't scale:

project/
├── AGENTS.md     ← single file, static name, impossible to sustain
├── docs/
├── api/

The Solution

Split context into organized fragments, then compose:

project/
├── AGENTS.md                ← auto-generated
├── docs/
│   └── overview.agents.md   ← parsed
├── api/
│   ├── AGENTS.md            ← auto-generated
│   └── endpoints.agents.md  ← parsed
├── agents-md/
│   └── epics/
│       └── epic-one.md      ← parsed
│       └── epic-two.md      ← parsed

One command builds them all:

npx agents-md compose

Compose canonical AGENTS.md from sustainable and elegant file structures. Keep agent context current, composable, and shareable with your human docs. Abstract-context-as-code is what we aim to achieve.

Quick Start

  • Initialize: npx agents-md init (creates root AGENTS.md if missing)
  • Update fragment files in any of these path formats:
    • **/agents-md/**/*.md
    • **/*.agents.md
    • **/<customised-directories>/*.md
    • **/*.<customised-file-formats>
  • Compose: npx agents-md compose

Generated files are owned by agents-md. Don't hand‑edit AGENTS.md — edit source fragments instead.

To have multiple AGENTS.md files for dynamic location-based context, simply add an empty AGENTS.md file in any target directory and rerun bun agents-md compose.

Git Integration

Keep your AGENTS.md files automatically up-to-date with a pre-commit hook:

npx agents-md setup:compose-before-commit

The setup command works with any git repository, regardless of language (JavaScript, Python, Go, Rust, etc.):

What it does:

  1. Creates a git hook in .git/hooks/pre-commit
  2. Makes it executable automatically
  3. Runs npx agents-md compose and stages AGENTS.md files before each commit

Performance tip: For faster commits, install agents-md globally:

npm install -g agents-md

This avoids npx downloading the package on every commit.

To regenerate the hook (after updating agents-md):

npx agents-md setup:compose-before-commit

To bypass temporarily (not recommended):

git commit --no-verify

Why agents-md?

Common pain points today:

  • Single, static AGENTS.md per directory; no native "imports" or multi‑file composition.
  • No glob‑based includes in AGENTS.md itself; no spec for dynamic content (e.g., JSDoc or config extraction).
  • Some tools don't read AGENTS.md;
  • Existing options like Ruler assume .ruler/ and don't curate dynamic content outside of those directories.

agents-md fixes them all

  • Inputs (fragment files): Accept all Markdown files in **/agents-md/**/*.md and **/*.agents.md. Meanwhile, all file paths are configurable.
  • Outputs (AGENTS.md target files): One AGENTS.md per target directory (nearest‑wins by default) with deterministic ordering and source annotations.
  • Routing: Markdown directives map fragments to targets.
  • Interop: Optional CLAUDE.md can import @AGENTS.md for tools that don't read AGENTS.md.

CLI

  • agents-md init
    • Initialize agents-md in this project; creates root AGENTS.md if missing (use compose if already initialized).
  • agents-md compose
    • Build outputs from fragments.
  • agents-md report [--json]
    • Show outputs, sizes (k chars), token estimates, and warnings (use --json for CI).
  • agents-md watch [--verbose]
    • Rebuild on changes silently; use --verbose to log rebuilds.
  • agents-md setup:compose-before-commit
    • Setup pre-commit hook to auto-compose AGENTS.md files before each commit (works with any codebase: Node.js, Python, Go, etc.).
  • agents-md help|version

Exit codes: 0 success, 1 generic error, 2 invalid config, 4 limit violation.

Configuration

Use agents-md.config.ts (or .js/.mjs) at repo root. Defaults are zero‑config; customize only as needed. See full schema in docs/design.md.

Key options

| Option | Type | Default | Purpose | | --- | --- | --- | --- | | include | string[] | ['**/agents-md/**/*.md','**/*.agents.md'] | Fragment discovery globs | | exclude | string[] | ['**/node_modules/**','**/.git/**'] | Ignore patterns | | includeFiles | (ctx) => boolean | undefined | Advanced per‑file filter | | defaultTarget | 'nearest'|'root' | 'nearest' | Fallback routing behavior | | annotateSources | boolean | true | Wrap fragments with <!-- source: ... priority=n --> / <!-- /source: ... --> comments | | truncate | { atChars, strategy } | undefined | Trim oversized outputs | | limits | { warn/max source/output } | undefined | Size limits and warnings |

Markdown Directives

  • Target routing
    • <!-- agents-md: target=nearest -->
    • <!-- agents-md: target=root -->
    • <!-- agents-md: target=../docs --> (relative dir)
  • Imports
    • <!-- agents-md: import=@./shared/common.md -->
    • <!-- agents-md: import=@../standards/api.md -->
  • Ordering and metadata
    • <!-- agents-md: priority=10 --> (higher numbers surface earlier)
    • <!-- agents-md: title="My Section" --> (optional heading hint)

Rules: keys are comma/space separated (key=value); paths start with @ for Claude Code compatibility; resolution is relative to the fragment file.

Composition Model

  • Discovery: collect fragments from include globs.
  • Targeting: directive > defaultTarget (nearest).
  • Ordering: by priority (descending), then by path (stable and deterministic).
  • Annotation: optionally wrap fragments with <!-- source: path --> and <!-- /source: path --> comments.
  • Output: write one AGENTS.md per selected target with a generated‑file banner.

Reporting

  • Shows: target tree, output sizes, token estimates, source counts, limit status.
  • JSON mode: agents-md report --json for CI and tooling.

Interop & Migration

  • init moves content from AGENTS.md/CLAUDE.md into fragments, scaffolds config, and creates a root AGENTS.md when absent.
  • For Claude Code, create CLAUDE.md with: @AGENTS.md (imports generated content).
  • Can be combined with distribution tools (e.g., Ruler) if needed.

FAQ

  • Why not hand‑write AGENTS.md? Fragments scale better and enable reuse.
  • Do I need more than one AGENTS.md files? No — start with zero‑config and a single root 'AGENTS.md' generated by init or compose.
  • Are directives required? No — they only override defaults when needed.

Roadmap

  • Official plugin kit (extract JSDoc, TypeScript types, DB schemas).
  • Better hot reload support for ecosystem tools (Vite, Bun, etc.).
  • MCP for cross-directory reference support.

Credits

  • Thanks to OpenAI's AGENTS.md standardization efforts.
  • Inspired by Ruler for distribution ideas.