Token导航 LogoToken导航TokenDH.com
开发敏感数据github未标认证来源可访问许可证需确认审计异常

evaliteevalite 命令行

Agent Skill

evalite 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

240

周安装

10

GitHub Stars

公开资料未说明

下载量

80
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:evalite(evalite 命令行)
来源仓库:https://github.com/cpave3/skills
仓库路径:skills/evalite
安装命令:
npx skills add https://github.com/cpave3/skills --skill evalite
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/cpave3/skills --skill evalite

简介

evalite 是一个基于 Vitest 的本地优先 TypeScript 评估运行器,支持 .eval.ts 格式测试文件。

  • 结果存储于 SQLite 数据库,并提供本地 UI 界面(localhost:3006)查看。
  • 适用于快速编写和运行轻量级评估,集成 autoevals 提供多种评分函数。
  • 安装前需确认 Node.js 环境和包管理器配置,注意脚本命名和路径约定。
  • evalite 属于开发类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Evalite

Evalite is a local-first TypeScript eval runner built on Vitest. Eval files use the .eval.ts extension. Results are stored in SQLite at node_modules/.evalite and viewed via a local UI at localhost:3006.

Setup

pnpm add -D evalite vitest autoevals

package.json scripts:

{ "eval:dev": "evalite watch", "eval": "evalite" }

Core API

evalite(name, opts) — define an eval

import { evalite } from "evalite";
import { Levenshtein } from "autoevals";

evalite("My Eval", {
  data: [{ input: "Hello", expected: "Hello World!" }],
  task: async (input) => input + " World!",
  scorers: [Levenshtein],
});

Generic type params: evalite<TInput, TOutput, TExpected>(name, opts)

  • data — array or async function returning {input, expected?, only?}[]
  • task(input: TInput, variant: TVariant) => Promise<TOutput | AsyncIterable<TOutput>>
  • scorers — array of scorer functions or inline scorer objects (optional)
  • columns(result) => RenderedColumn[] for custom UI columns (optional)
  • trialCount — run each data point N times for variance measurement (optional)

data field

Can be a static array or an async function:

data: async () => [
  { input: "What is 2+2?", expected: "4" },
  { input: "Capital of France?", expected: "Paris" },
],

Use only: true on a data entry to focus on just that input during development:

data: [
  { input: "test1", expected: "out1" },
  { input: "test2", expected: "out2", only: true }, // only this runs
],

Streams

Return any AsyncIterable (including ReadableStream) from task — evalite collects chunks and joins them:

import { streamText } from "ai";
task: async (input) => {
  const result = await streamText({ model: myModel, prompt: input });
  return result.textStream;
},

Skipping

evalite.skip("Disabled Eval", { data: [], task: async () => {}, scorers: [] });

Scorers

Scores are 0 to 1 (not 0 to 100). Return a number or {score, metadata}.

Inline scorer

scorers: [
  {
    name: "Contains Paris",
    description: "Checks if output contains 'Paris'.",
    scorer: ({ input, output, expected }) => output.includes("Paris") ? 1 : 0,
  },
],

Reusable scorer with createScorer

import { createScorer } from "evalite";

const exactMatch = createScorer<string, string>({
  name: "Exact Match",
  description: "Checks exact string equality.",
  scorer: ({ output, expected }) => output === expected ? 1 : 0,
});

Generic params: createScorer<TInput, TOutput, TExpected = TOutput>(opts)

The scorer function receives {input, output, expected}. Return a number (0-1) or {score: number, metadata?: unknown}.

LLM-as-judge scorer

Use generateObject (or any LLM call) inside a scorer to get AI-powered evaluation. Return {score, metadata: {rationale}} so the reasoning shows in the UI. See references/llm-judge-example.md for a full Factuality scorer example.

autoevals library

autoevals provides ready-made scorers: Levenshtein, Factuality, and others. Install with pnpm add -D autoevals.

Traces

Track individual LLM calls within a task for debugging, token usage, and cost tracking.

Manual tracing with reportTrace

import { reportTrace } from "evalite/traces";

// Inside a task:
const start = performance.now();
const result = await myLLMCall();
reportTrace({
  start,
  end: performance.now(),
  output: result.output,
  input: [{ role: "user", content: input }],
  usage: { inputTokens: 100, outputTokens: 50, totalTokens: 150 },
});

reportTrace is a no-op outside evalite (safe to leave in production code). Multiple calls per task create multiple trace entries.

AI SDK auto-tracing with traceAISDKModel

import { traceAISDKModel } from "evalite/ai-sdk";
import { openai } from "@ai-sdk/openai";

const tracedModel = traceAISDKModel(openai("gpt-4o-mini"));
// Use tracedModel with generateText/streamText — all calls auto-traced

Also a no-op outside evalite. Works with both generateText and streamText.

Variant Comparison with evalite.each

Compare models, prompts, or configs on the same dataset:

evalite.each([
  { name: "GPT-4o mini", input: { model: "gpt-4o-mini", temp: 0.7 } },
  { name: "GPT-4o", input: { model: "gpt-4o", temp: 0.7 } },
])("Compare models", {
  data: async () => [
    { input: "Capital of France?", expected: "Paris" },
  ],
  task: async (input, variant) => {
    return generateText({
      model: openai(variant.model),
      temperature: variant.temp,
      prompt: input,
    });
  },
  scorers: [Factuality, Levenshtein],
});

The second argument to task receives variant.input from the array entry. Each variant appears as a separate eval in the UI, named "Compare models [GPT-4o mini]" etc.

Custom Columns

Override the default Input/Expected/Output columns in the UI:

columns: async ({ input, output, expected, scores, traces }) => [
  { label: "Question", value: input },
  { label: "Answer", value: output },
  { label: "Tokens", value: traces.reduce((sum, t) => sum + (t.usage?.totalTokens || 0), 0) },
],

Multi-Modal (Files)

Evalite detects Uint8Array/Buffer values anywhere in data, output, traces, or columns and saves them to node_modules/.evalite/files, rendering them in the UI.

For files on disk without reading into memory:

import { EvaliteFile } from "evalite";
data: [{ input: EvaliteFile.fromPath("path/to/image.jpg") }],

Configuration — evalite.config.ts

import { defineConfig } from "evalite/config";

export default defineConfig({
  testTimeout: 60_000,     // ms, default 30000
  maxConcurrency: 100,     // parallel test cases, default 5
  scoreThreshold: 80,      // 0-100, fail if avg score below
  hideTable: false,        // hide terminal table output
  trialCount: 3,           // run each test case N times
  setupFiles: ["dotenv/config"], // run before tests (env vars)
  server: { port: 3006 },  // UI server port
});

Per-eval trialCount overrides config-level trialCount.

Environment Variables

To load .env files, install dotenv and add setupFiles: ["dotenv/config"] to evalite.config.ts.

CLI

CommandDescription
evaliteRun all evals once and exit
evalite watchWatch mode with live reload UI
evalite serveRun once, keep UI server running
evalite my-eval.eval.tsRun specific file
evalite --threshold=70Fail if avg score < 70
evalite exportExport static HTML bundle
evalite export --output=./dir --basePath=/pathExport with custom path
evalite watch --hideTableHide detailed table in terminal

Programmatic API

import { runEvalite } from "evalite/runner";

await runEvalite({
  mode: "run-once-and-exit",  // or "watch-for-file-changes" | "run-once-and-serve"
  path: "my-eval.eval.ts",   // optional file filter
  cwd: "/path/to/project",   // optional, defaults to process.cwd()
  scoreThreshold: 80,        // optional
  outputPath: "./results.json", // optional JSON export
});

CI/CD

Run evals in CI with threshold enforcement and static UI export:

- run: npx evalite --threshold=70
- run: npx evalite export --output=./ui-export
- uses: actions/upload-artifact@v3
  with:
    name: evalite-ui
    path: ui-export

JSON export for programmatic analysis: evalite --outputPath=./results.json

The exported JSON is typed as Evalite.Exported.Output (import type {Evalite} from "evalite").

Caching (Important for Watch Mode)

Implement a caching layer for LLM calls in watch mode to avoid burning API credits. Wrap your model with a cache middleware — see references/caching-pattern.md for the full pattern using wrapLanguageModel from the AI SDK.

Import Map

ImportExports
evaliteevalite, createScorer, EvaliteFile, type Evalite
evalite/tracesreportTrace
evalite/ai-sdktraceAISDKModel
evalite/configdefineConfig
evalite/runnerrunEvalite

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

34.97%
按下载量换算28

Claude

33.09%
按下载量换算26

Cursor

21.07%
按下载量换算17

Gemini CLI

8.65%
按下载量换算7

安全审计

Gen Agent Trust Hub

通过

Socket

未通过

Snyk

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills