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 Stale · Oct 17, 2026

@ai-dossier/core has 4,614 recorded weekly downloads on npm, an increase of 370% over the past 30 days, ranking #1114 of 2,256 tracked listings.

Weekly downloads
4,614
Official API · Oct 17, 2026
7-day growth
-64.9%
-8.5K weekly downloads
30-day growth
+370%
+3.6K weekly downloads
90-day growth
+3562%
+4.5K weekly downloads
Rank
#1114
Among tracked npm listings

About @ai-dossier/core

@ai-dossier/core

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

Requires Node.js >= 20.0.0.

Quick Start

API

Parsing

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. 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.

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., or a non-string metadata value.

parseDossierFile(filePath: string): ParsedDossier

Read and parse a dossier file from disk.

validateFrontmatter(frontmatter: DossierFrontmatter): string[]

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

Checksum Verification

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.

Signature Verification

verifySignature(content: string, signature: SignatureResult): Promise

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

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

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

loadTrustedKeys(filePath?: string): Map

Load trusted public keys from a file (default: ~/.dossier/trusted-keys.txt), format one per line. Returns a map of public key to identifier, indexed under both the written and the normalized form. Unreadable lines are reported to stderr, not dropped silently.

findTrustedIdentifier(trustedKeys, signature): string | undefined

Resolve the identifier a signature is trusted under. Use this rather than probing the map by hand — it consults key_id only when there is no public_key, which is what stops a dossier from claiming a trusted signer's identity while verifying under a different key.

normalizePublicKey(key) / isSupportedPublicKey(key)

Reduce an Ed25519 key to its canonical raw 32-byte base64 form, and test whether a key is one this project can verify against. Validate with isSupportedPublicKey before storing a key: normalizePublicKey deliberately passes uninterpretable input through.

See core API reference for the full trust-file helper set.

Linting

lintDossier(content: string, config?: LintConfig): LintResult

Lint dossier content against built-in rules (checksum validity, schema validation, required sections, semver version, etc.).

lintDossierFile(filePath: string, config?: LintConfig): LintResult

Lint a dossier file from disk.

Formatting

formatDossierContent(content: string, options?: Partial): FormatResult

Format dossier content (sort keys, update checksum). Returns { formatted, changed }.

formatDossierFile(filePath: string, options?: Partial): FormatResult

Format a dossier file in place. Only writes if changes were made.

Signer/Verifier Interfaces

The package exports extensible interfaces for signing and verification:

Built-in implementations: • Ed25519Signer / Ed25519Verifier — Ed25519 key pair signing • KmsSigner / KmsVerifier — AWS KMS ECDSA-SHA-256 signing

Registry for algorithm dispatch:

Agent Usage & Run Log

Shared with packages/sched so both the ai-dossier run headless path and the scheduler's detached dispatch path agree on which block of an agent's result is the source of record.…

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: 4,614 weekly downloads as of Oct 17, 2026, +3562% over 90 days.@ai-dossier/coreWeekly downloads on npm · Last 90 days4,614downloads / week+3562% over 90 days02K4K6K8K10K12K14K16KJul 19Aug 3Aug 18Sep 2Sep 17Oct 2Oct 17downloads / weekobservedarchived (Internet Archive)no observationsJul 22, 2026 – Oct 17, 2026 · 88 observations · Updated Oc…pluginstats.com
@ai-dossier/core weekly downloads on npm, last 90 days: 4,614 weekly downloads as of Oct 17, 2026, +3562% over 90 days.

7/30/90-day growth

@ai-dossier/core weekly downloads growth on npm: -64.9% over 7 days, +370% over 30 days, +3562% over 90 days.@ai-dossier/coreWeekly downloads growth on npm4,614downloads / week now7-day growth-8,545 weekly downloads-64.9%30-day growth+3,633 weekly downloads+370%90-day growth+4,488 weekly downloads+3562%Growth vs. nearest observation to each baseline date · Updated Oct 17, 2026pluginstats.com
@ai-dossier/core weekly downloads growth on npm: -64.9% over 7 days, +370% over 30 days, +3562% over 90 days.

Ranking history

@ai-dossier/core npm ranking history: currently #1114 (by weekly downloads).@ai-dossier/corenpm ranking · by weekly downloads · Last 90 days#1114current rank#1110#1111#1112#1113#1114#1115#1116Jul 21Aug 5Aug 20Sep 4Sep 19Oct 4Oct 19rankOct 18, 2026 – Oct 19, 2026 · 2 observations · Updated Oct 17, 2026pluginstats.com
@ai-dossier/core npm ranking history: currently #1114 (by weekly downloads).

Listing placement

All npm2,256 listings · 113 pages · 1,130 shown · page 56, #14 (overall #1,114)
All npm: every listing in weekly downloads order

Listing placement

Claude Code233 listings · 12 pages · page 3, #15 (overall #55)
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 (121)
Recent weekly downloads observations for @ai-dossier/core
Date (UTC)Weekly downloadsChange vs. previous
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+1K
3,613—

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 19, 2026. See the methodology.