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

@uzulla/voreux

v0.2.1

Published

Voreux: Stagehand + Vitest based E2E testing framework

Readme

Voreux

Voreux は、Stagehand + Vitest ベースの E2E テストフレームワークです。

AI に「クリックして」「入力して」と指示するだけで、Web ブラウザ操作を自動化するテストを書けます。

特徴

  • AI ファースト: LLM に自然な指示語でブラウザ操作をさせる
  • 自己修復: 要素が見つからなくなっても自動でリトライ
  • スクリーンショット比較: ビジュアルリグレッションも検出
  • 録画対応: テスト実行の様子を動画出力
  • Scenario scaffold generation: Chrome DevTools Recorder JSON などから Draft scenario の土台を生成できる

インストール

npm install @uzulla/voreux
# または
pnpm add @uzulla/voreux

必須環境

  • Node.js >= 22.x
  • pnpm >= 10.x(推奨)または npm
  • Windows ユーザーは WSL2 が必要です

Draft scenario の扱い

Voreux では *.draft.test.ts を Draft scenario として扱えます。

  • 通常の voreux test / voreux run では Draft は除外されます
  • --include-drafts を付けると Draft も含めて実行されます
  • --only-drafts を付けると Draft だけ実行されます
  • VOREUX_INCLUDE_DRAFTS=1 でも opt-in できます

例:

voreux test
voreux test --include-drafts
voreux test --only-drafts
VOREUX_INCLUDE_DRAFTS=1 voreux test
voreux test login-flow --include-drafts

Scenario scaffold generation

Voreux には、入力ソースから ハッピーパス E2E の初期骨格となる Draft scenario を生成する Scenario scaffold generation 機能があります。

現在の実装は、Chrome DevTools Recorder が export した JSON を入力にする最初の entrypoint です。

これは 不具合再現レポート生成ツールではなく正常系フローを E2E 化するための scaffold generation 機能 です。

Recorder JSON には主に操作手順が入っており、

  • 何を確認すべきか
  • 何をもって成功/失敗とみなすか
  • なぜその操作をするのか

といったテスト観点までは十分には入っていません。 そのため、生成結果は完成テストではなく、人間や Agent が assertion や観察点を追記する前提の Draft です。

現在の DevTools Recorder JSON entrypoint の使い方:

voreux-scaffold-from-devtools-recorder-json < recording.json > scaffold.draft.test.ts
# または
node ./dist/scaffold-generation/from-devtools-recorder-json-cli.js recording.json > scaffold.draft.test.ts

現状のPoC方針:

  • 標準入力またはファイルから DevTools Recorder JSON を受け取る
  • 標準出力に *.draft.test.ts 相当コードを出す
  • 今後ほかの入力バリエーションが増えても、Scenario scaffold generation の一入口として整理できる
  • 初版は selector ベース
  • 未対応 step は黙殺せずエラーにする
  • コメントを多めに残し、人間が調整しやすくする

クイックスタート

# プロジェクトの雛形を生成
npx @uzulla/voreux init my-e2e
cd my-e2e

# 依存をインストール
pnpm install

# OPENAI_API_KEY を設定
cp .env.example .env
# .env の OPENAI_API_KEY を実際のキーに置き換える

# テストを実行
pnpm test

最初のテストを書く

import { defineScenarioSuite } from "@uzulla/voreux";

const steps = [
  {
    name: "load page",
    selfHeal: false,
    run: async (ctx) => {
      await ctx.page.goto("https://example.com/");
    },
  },
];

defineScenarioSuite({
  suiteName: "example",
  originUrl: "https://example.com/",
  steps,
});

設定

環境変数

| 変数 | 既定値 | 説明 | |---|---|---| | OPENAI_API_KEY | 必須 | OpenAI API キー | | SELF_HEAL | 0 | 1 で自己修復を有効化 | | STAGEHAND_MODEL | openai/gpt-4o | 使用するモデル | | E2E_HEADLESS | false | 1 でヘッドレス実行 |

ライセンス

MIT