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

@haic/cli

v0.3.0

Published

A natural-language programming language for AI to write software in. Compiles to Java, TypeScript, Python and Go, plus Docker, Kubernetes, Terraform and AWS.

Readme

HADL

A programming language for AI to write software in.

Not an IDE. Not an agent. A language — with its own syntax, its own type system, its own compiler, and its own opinions about what good software looks like.

npm install -g @haic/cli
haic new my-store

What the source looks like

## aggregate Order
identified by id
contains OrderItem
emits OrderPlaced

- id: uuid, required
- items: list of OrderItem, required
- status: OrderStatus, required, default Draft
- total: Money, optional

invariant "an order must hold at least one item":
  items is not empty

operation compute total () -> Money:
  return Money with amount = sum of items by quantity times unitPrice.amount, currency = "EUR"

That compiles to Java, TypeScript, Python or Go, and to the Docker, Kubernetes, Terraform or AWS artifacts needed to run it. Compilation is deterministic: no model calls, no network, no randomness. The same source produces the same bytes.

Why

An AI asked to build a service in Java will write a service in Java. It will also write four interfaces with one implementation each, a DTO that mirrors the entity field for field, a service layer that forwards every call unchanged, and an error hierarchy nobody throws. The problem is not that the model writes bad Java — it is that Java will happily accept all of it.

HADL has opinions, and the compiler enforces them:

warning[HADL2503]: PlaceOrderService.fetch order only forwards "find order by id"
  --> src/orders.hadl:88:3
  help: let the caller use the port directly, or add the rule this operation was meant to hold

error[HADL2207]: aggregate Order embeds aggregate Customer in field "customer"
  --> src/orders.hadl:52:3
  help: store the identity instead: "- customerId: uuid, required"

Commands

| Command | Does | | --- | --- | | haic new <name> | Scaffold a project that compiles as written | | haic check [paths] | Parse, type-check and audit the design | | haic test [paths] | Run the declared scenarios against the IR — no code generated, no tokens spent | | haic build [paths] --target <lang> | Generate the service | | haic deploy [paths] --target <platform> | Generate the infrastructure | | haic architect <requirements.md> | Turn a requirements document into a reviewable spec | | haic explain <code> | Explain the reasoning behind a diagnostic |

haic test is the one worth knowing about. It runs the operations against the IR itself — about a second, no code generated, no toolchain, no tokens — so a design can be exercised before it is ever expanded.

Status

Early, and working end to end. TypeScript, Java, Python and Go are built and verified against their real compilers on every commit. Rust is experimental and does not compile yet — the emitter does not model ownership.

More

Apache-2.0.