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

@nomix-ai/nomix-harness

v0.2.9

Published

nomix CLI: profile boot, plugin management, and the browser UI alias

Readme

@nomix-ai/nomix-harness

English | 中文

The nomix command is the product launcher for profiles: ordered stacks of plugin-bundle patch layers under the user's own overrides. src/args.ts owns the command grammar, and src/bin.ts loads only the selected runner. Invalid commands, options from another mode, configuration errors, and boot failures exit nonzero.

Entry modes

| Command | Purpose | |---|---| | nomix --profile <name> | Boot the named profile under $NOMIX_HOME/profiles/<name>. | | nomix --profile headless "job" | Run one fresh persisted session, print the final answer, and exit. | | nomix web | Alias of --profile web. | | nomix plugin --profile <name> <pnpm args> | Manage a profile's plugins by forwarding to pnpm in the profile directory. |

The invoking directory is the default workspace root. The web and headless profiles auto-initialize on first use from shipped templates; any other profile must be created through nomix plugin.

Plugin authoring API

An out-of-tree plugin declares only @nomix-ai/nomix-harness as its Nomix dependency. @nomix-ai/nomix-harness/plugin exports Cordis plugin primitives and Schema; capability APIs use stable Harness subpaths such as @nomix-ai/nomix-harness/plugin/tools. The aggregate package resolves those subpaths to its bundled runtime packages, so plugin manifests do not name repository-internal packages. The packaging tutorial contains a complete bundle.

App arguments

The launcher parses only its own flags and hands everything after them to the booted profile, where any injected app plugin may parse the shared immutable snapshot (nomix-cmdline). Launcher flags therefore come first, and the first token the launcher does not recognize starts the app's arguments:

nomix --profile web --port 8080       # --port belongs to the web app
nomix --profile tui --resume <id>     # example, assuming the tui profile is installed; --resume belongs to the terminal app
nomix --profile headless "run the tests"
nomix --profile web --help            # the web app's flags, not the launcher's
nomix --help                          # the launcher's own help

Profiles

A profile directory holds a package.json (out-of-tree plugin dependencies plus the profile manifest nomix.profile with its ordered bundles list) and a cordis.patch.yml (the user's own patch layer).

The tree composes over an empty root:

  • each bundle's patch in nomix.profile.bundles order
  • then the profile's cordis.patch.yml, then the home-level $NOMIX_HOME/cordis.patch.yml
  • then --patch overlays

Bundles named in nomix.profile.bundles resolve from the nomix installation first (@nomix-ai/nomix-base, @nomix-ai/nomix-web-app, @nomix-ai/nomix-headless), then from the profile's own node_modules, where pnpm installs out-of-tree plugins.

Use --dump-default-config and --dump-config to inspect the composed tree without booting it.

The CLI behavior reference owns exact layer precedence, flags, shutdown behavior, deployment defaults, and source execution.

Development

Production runs require built package and frontend artifacts. From the repository root, run pnpm run build separately, then use pnpm nomix <args...> to run the TypeScript entry and forward every argument; the source-execution reference owns the module-resolution contract.