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

@llcamp/bioy

v0.1.3

Published

**A blazing-fast, Rust-based linter for Playwright tests.** Built on top of the incredible [Oxc](https://oxc.rs/) AST parser, `bioy` analyzes hundreds of TypeScript and JavaScript test files across all your CPU cores in milliseconds. It catches common P

Readme

🌿 bioy

A blazing-fast, Rust-based linter for Playwright tests.
Built on top of the incredible Oxc AST parser, bioy analyzes hundreds of TypeScript and JavaScript test files across all your CPU cores in milliseconds. It catches common Playwright anti-patterns, missing awaits, and enforces test simplicity with rich, graphical miette diagnostics.


✨ Features

  • ⚡️ Blazing Fast: Highly concurrent directory traversal powered by rayon and ignore. Respects your .gitignore and scales effortlessly across massive monorepos.
  • 🛠️ Auto-Fixes (--fix): Automatically injects missing await statements directly into your test files.
  • 🔄 Watch Mode (--watch): Real-time feedback as you save files.
  • 🚀 Project Initialization (init): One-command setup for bioy.json and git pre-commit hooks.
  • 📊 Professional Reporting: Export results in SARIF, JUnit, and JSON formats for CI/CD integration.
  • 🔌 LSP Integration: Real-time editor feedback via the Language Server Protocol.
  • 🚨 CI Anti-Patterns: Hard fails if developers accidentally commit test.only, page.pause(), or hardcoded page.waitForTimeout().
  • 🧩 Cognitive Complexity Tracking: Evaluates the nested if, for, and conditional statements within your test() blocks.
  • 👁️ Gorgeous Output: Uses miette to point to the exact source spans of your violations.

🛠️ Development & Publishing

If you are a maintainer of the project, refer to the Publishing Guide for instructions on how to publish bioy to npm and other platforms.

🚀 Installation

The easiest way to get started with bioy is via npm.

Global Installation

npm install -g @llcamp/bioy

One-time Execution (No Install)

npx @llcamp/bioy --help

💻 Usage

🌿 Initialization

Set up bioy in your project, generate a default config, and install a git pre-commit hook:

bioy init

🔍 Linting

To lint the current directory (and all sub-directories recursively) with high-fidelity output:

bioy

📊 Dashboard & Reporting

bioy provides three professional ways to view your quality metrics:

1. Interactive Dashboard (Live)

Launch a local web server to explore violations, auto-fix issues, and acknowledge false positives:

bioy --serve

2. Static HTML Report (Portable)

Generate a standalone, self-contained HTML file for CI/CD artifacts or sharing:

bioy --format html . > quality-report.html

3. Structured Data for CI/CD

Choose your format for integration with GitHub Actions, GitLab, or Jenkins:

bioy --format sarif . > results.sarif
bioy --format junit . > results.xml

🛠️ Auto-Fixing & Acknowledgement

  • Auto-Fix (--fix): Automatically patch missing awaits.
  • Ignore Syntax: To acknowledge an issue without changing code, use: // bioy-ignore(rule-name): reason

🐳 Docker

For centralized deployments or standardized CI environments, refer to the Docker Guide.

🛠️ Maintainers

Refer to the Publishing Guide for instructions on how to release new versions of bioy.


### 🔌 Language Server (LSP)
For real-time IDE feedback, point your LSP client to the `bioy lsp` command.

## 🙈 Rule Exceptions
You can ignore specific rules on a per-file or per-line basis using comments:

```typescript
// bioy-ignore(bioy::missing_await)
expect(page.locator('button')).toBeVisible(); 

// bioy-ignore
// This ignores all bioy rules for the next line
page.pause();

⚙️ Configuration

You can customize bioy's rules by placing a bioy.json string file at the root of your execution directory.

Example bioy.json:

{
    "cognitive_complexity_threshold": 5
}
  • cognitive_complexity_threshold: (Default: 3). Adjusts the tolerance for nested loops and conditionals inside a Playwright test. If a test crosses this threshold, bioy will throw a warning to encourage breaking out helper functions.