Skip to content
PluginStats

@ai-dossier/core weekly downloads statistics

By ai-dossier (5 listings) · npm · Claude Code

TypeScript library for parsing, signing, and verifying signed, versioned agent skills used in model-driven orchestration.

View on npm Fresh · Oct 18, 2026

@ai-dossier/core has 5,851 recorded weekly downloads on npm, an increase of 654% over the past 30 days, ranking #1096 of 2,322 tracked listings.

Weekly downloads
5,851
Official API · Oct 18, 2026
7-day growth
-57.3%
-7.8K weekly downloads
30-day growth
+654%
+5.1K weekly downloads
90-day growth
+4471%
+5.7K weekly downloads
Rank
#1096
Among tracked npm listings

About @ai-dossier/core

@ai-dossier/core

npm version npm downloads License: AGPL-3.0

Use one portable AI-agent skill across Claude Code, Codex, OpenCode, and MCP-compatible workflows.

@ai-dossier/core is the TypeScript library for developers building secure AI-agent workflows. It parses, verifies, signs, and lints dossiers: portable, versioned skills whose integrity and publisher can be checked before an LLM uses them.

Part of the ai-dossier ecosystem: use @ai-dossier/cli to author and install skills, @ai-dossier/mcp-server to expose them through MCP, and the ai-dossier project for the complete platform.

Installation

npm install @ai-dossier/core

Requires Node.js >= 20.0.0.

Quick Start

import {
  parseDossierContent,
  verifyIntegrity,
  lintDossier,
} from '@ai-dossier/core';

// 1. Parse a dossier
const dossier = parseDossierContent(rawContent);
console.log(dossier.frontmatter.title); // => "My Dossier"

// 2. Verify integrity
const integrity = verifyIntegrity(
  dossier.body,
  dossier.frontmatter.checksum?.hash
);
console.log(integrity.status); // => "valid" | "invalid" | "missing"

// 3. Lint for issues
const result = lintDossier(rawContent);
console.log(result.errorCount, result.warningCount);

API

Parsing
import {
  parseDossierContent,
  parseDossierFile,
  validateFrontmatter,
} from '@ai-dossier/core';
parseDossierContent(content: string): ParsedDossier

Parse a dossier content string into frontmatter and body. Accepts both ---dossier (JSON/YAML) and standard --- (YAML) delimiters, in either frontmatter shape: legacy (every Dossier field flat at the top level) or spec (Agent Skills fields name, description, license, compatibility, allowed-tools at the top level, every other field under metadata as dossier.<field> strings). frontmatter is always the same flat logical object; rawFrontmatter is the frontmatter as it sits on disk and shape says which layout it uses. Throws a SpecShapeError (message prefixed Invalid spec-shaped frontmatter:) when a spec-shaped frontmatter is ambiguous — see fromSpecFrontmatter.

const { frontmatter, body, raw, rawFrontmatter, shape } = parseDossierContent(content);
toSpecFrontmatter(logical) / fromSpecFrontmatter(spec)

Convert flat logical frontmatter to the spec shape and back. Values under metadata are strings: a string is stored as-is unless it would itself parse as JSON (then it is JSON-quoted), and any other value is stored as canonical JSON (encodeSpecValue / decodeSpecValue), so fromSpecFrontmatter(toSpecFrontmatter(x)) equals x. fromSpecFrontmatter throws SpecShapeError on anything ambiguous: a Dossier field at the top level, dossier.<agent-skills-field>, or a non-string metadata value.

parseDossierFile(filePath: string): ParsedDossier

Read and parse a dossier file from disk.

const parsed = parseDossierFile('./path/to/dossier.ds.md');
validateFrontmatter(frontmatter: DossierFrontmatter): string[]

Validate required fields and enum values. Returns an array of error messages (empty if valid).

const errors = validateFrontmatter(parsed.frontmatter);
if (errors.length > 0) {
  console.error('Validation errors:', errors);
}
Checksum Verification
import { calculateChecksum, verifyIntegrity } from '@ai-dossier/core';
calculateChecksum(body: string): string

Calculate the SHA-256 hash of dossier body content (excluding frontmatter).

verifyIntegrity(body: string, expectedHash: string | undefined): IntegrityResult

Compare the computed hash against the expected hash from frontmatter.

const result = verifyIntegrity(body, frontmatter.checksum?.hash);
// result.status: "valid" | "invalid" | "missing"
Signature Verification
import {
  buildVerificationPayload,
  verifySignature,
  verifyWithEd25519,
  verifyWithKms,
  loadTrustedKeys,
  findTrustedIdentifier,
  normalizePublicKey,
  isSupportedPublicKey,
} from '@ai-dossier/core';
verifySignature(content: string, signature: SignatureResult): Promise<VerifyResult>

Verify a signature using the verifier registry. Automatically selects the correct verifier based on signature.algorithm.

const parsed = parseDossierContent(content);
const result = await verifySignature(buildVerificationPayload(parsed), parsed.frontmatter.signature);
console.log(result.valid); // true | false
buildVerificationPayload(parsed: ParsedDossier): string

The bytes a parsed dossier's signature must verify against. Selects the scheme from signature.covers — absent: v1 (body only); frontmatter+body: v2 (flat frontmatter + body); spec-frontmatter+body: v3 (on-disk spec-shaped frontmatter minus metadata["dossier.signature"], + body) — and binds it to the file's shape: spec-shaped files verify only under v3, legacy files only under v1/v2. Throws on an unsigned dossier, an unknown covers, or a scheme/shape mismatch; treat a throw as a failed verification.

verifyWithEd25519(content: string, signature: string, publicKey: string): VerifyResult

Verify an Ed25519 signature directly. publicKey may be SPKI PEM, raw 32-byte base64, or base64 SPKI DER.

verifyWithKms(content: string, signature: string, keyId: string, region?: string): Promise<VerifyResult>

Verify an ECDSA-SHA-256 signature using AWS KMS.

loadTrustedKeys(filePath?: string): Map<string, string>…

Description from the npm listing.

  • agent-skill-verification
  • signature-verification
  • agent-security
  • llm-security
  • typescript
  • digital-signatures
  • workflow-validation
  • agent-skills
  • model-driven-orchestration
  • agent-orchestration
  • ai-agents
  • llm
  • skill-md
  • claude-code
  • claude-skills
  • supply-chain-security
  • signed
  • versioning

README badge

Show your rank in a README or on your website. The badge updates automatically.

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

@ai-dossier/core weekly downloads on npm, last 90 days: 5,851 weekly downloads as of Oct 18, 2026, +4471% over 90 days.@ai-dossier/coreWeekly downloads on npm · Last 90 days5,851downloads / week+4471% over 90 days02K4K6K8K10K12K14K16KJul 20Aug 4Aug 19Sep 3Sep 18Oct 3Oct 18downloads / weekobservedarchived (Internet Archive)no observationsJul 22, 2026 – Oct 18, 2026 · 89 observations · Updated Oc…pluginstats.com
@ai-dossier/core weekly downloads on npm, last 90 days: 5,851 weekly downloads as of Oct 18, 2026, +4471% over 90 days.

7/30/90-day growth

@ai-dossier/core weekly downloads growth on npm: -57.3% over 7 days, +654% over 30 days, +4471% over 90 days.@ai-dossier/coreWeekly downloads growth on npm5,851downloads / week now7-day growth-7,836 weekly downloads-57.3%30-day growth+5,075 weekly downloads+654%90-day growth+5,723 weekly downloads+4471%Growth vs. nearest observation to each baseline date · Updated Oct 18, 2026pluginstats.com
@ai-dossier/core weekly downloads growth on npm: -57.3% over 7 days, +654% over 30 days, +4471% over 90 days.

Ranking history

@ai-dossier/core npm ranking history: currently #1096 (by weekly downloads).@ai-dossier/corenpm ranking · by weekly downloads · Last 90 days#1096current rank#1090#1095#1100#1105#1110#1115#1120Jul 22Aug 6Aug 21Sep 5Sep 20Oct 5Oct 20rankOct 18, 2026 – Oct 20, 2026 · 3 observations · Updated Oct 18, 2026pluginstats.com
@ai-dossier/core npm ranking history: currently #1096 (by weekly downloads).

Listing placement

All npm2,320 listings · 116 pages · 1,162 shown · page 55, #18 (overall #1,098)
All npm: every listing in weekly downloads order

Listing placement

Claude Code255 listings · 13 pages · page 3, #13 (overall #53)
Claude Code: every listing in weekly downloads order

Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.

Each band is one page of 20. Weekly downloads on a linear scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.

Recent observations

Full history (122)
Recent weekly downloads observations for @ai-dossier/core
Date (UTC)Weekly downloadsChange vs. previous
5,851+1.2K
4,614-1.2K
5,827+897
4,930-2.7K
7,605-6.4K
14,0320
14,032+345
13,687+528
13,159+595
12,564+749
11,815+2.1K
9,721+5.9K
3,786-853
4,639—

Similar npm Claude Code plugins

All 20 @ai-dossier/core alternatives

Data source

Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.

Listing: https://www.npmjs.com/package/@ai-dossier/core. First seen Oct 16, 2026; last successful collection Oct 20, 2026. See the methodology.