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

promptfarm

v0.4.1

Published

PromptFarm CLI for prompt runtime workflows and persona YAML composition.

Downloads

36

Readme

PromptFarm 🌾

npm version License Node Status

Prompt infrastructure CLI for building, validating, resolving, and composing prompts/personas like software artifacts.

Think: TypeScript/Terraform mindset for prompts: structure, contracts, reproducibility.


Why PromptFarm

Most teams still keep prompts as random text versions. PromptFarm treats them as typed, testable, composable artifacts with deterministic outputs.


What You Get

  • Runtime CLI flow: validate -> resolve -> evaluate -> blueprint -> build
  • Prompt tooling commands: init, discover, render, search, info, context, doctor, etc.
  • Persona composition:
    • persona-resolve
    • persona-build
    • persona-build-all
  • Multi-file persona reuse via extends
  • Deterministic merges for style/rules/params/output
  • Schema lookup by schema_ref
  • Auto-generated LLM JSON shape in final frontmatter: output.expected_json

Install

npm install -g promptfarm
promptfarm --help

Quick Runtime Example

promptfarm validate --cwd examples/evaluation
promptfarm resolve architecture_review --cwd examples/evaluation --format json
promptfarm evaluate architecture_review --cwd examples/evaluation --format json
promptfarm blueprint architecture_review --cwd examples/evaluation --format json
promptfarm build --cwd examples/builders --format json

Persona Quickstart

Structure:

synthetics/
  blocks/
    persona.base.yaml
    capability.json-output.yaml
    params.shared.yaml
    render.persona-body.md
  schemas/
    outreach-messages.v1.yaml
  personas/
    outreach-specialist.yaml

Resolve:

promptfarm persona-resolve synthetics/personas/outreach-specialist.yaml \
  --cwd . \
  --schema-dir synthetics/schemas \
  --format json

Build one persona:

promptfarm persona-build synthetics/personas/outreach-specialist.yaml \
  --cwd . \
  --schema-dir synthetics/schemas \
  --out dist/outreach_specialist.md \
  --format json

Build all personas in folder:

promptfarm persona-build-all synthetics/personas \
  --cwd . \
  --schema-dir synthetics/schemas \
  --out-dir dist \
  --format json

Persona Output Model (LLM-optimized)

Final markdown keeps output compact:

  • output.expected_json is generated from schema automatically
  • noisy fields are omitted in final artifact: format, schema_ref, type, raw schema object

JSON-shape generation rules:

  • object: from properties (required keys first)
  • array: one-item example array
  • string: "..." (or "a | b | c" for enum)
  • number/integer: 0
  • boolean: false
  • const: const value
  • oneOf/anyOf/allOf: first variant

Template File

Use separate template file, e.g. blocks/render.persona-body.md:

render:
  template: ../blocks/render.persona-body.md

Path is resolved relative to YAML file where render.template is declared.

Supported template syntax:

  • {{field}} and dotted paths (e.g. {{body_defaults.output_instruction}})
  • {{output.expected_json}}
  • loops: {{#each items}}...{{/each}}
  • {{this}} / {{this.someField}}

Real Project Usage

For your own project folder:

promptfarm persona-build-all synthetics/personas \
  --cwd . \
  --schema-dir synthetics/schemas \
  --out-dir dist \
  --format json

Use persona-build when you need to build a single persona file.


License

PolyForm-Noncommercial-1.0.0 © Andrei Tazetdinov