Agent skill

Quicksilver

by UditAkhourii in UditAkhourii/quicksilver

Offload bulk judgment calls to Jev (TypeSafe's fast System One model) so Claude doesn't read, and pay for, content it only needs a verdict on.

MITAuto-check: notesTesting & QA

Install Quicksilver

skills CLI
$ npx skills add UditAkhourii/quicksilver --skill quicksilver -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install UditAkhourii/quicksilver quicksilver --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/UditAkhourii/quicksilver.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/quicksilver .claude/skills/quicksilver && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
quicksilver
GitHub stars
116
Token cost
~2.2k tokens
SKILL.md length
1,028 words
Files
2 (incl. scripts)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Offload bulk judgment calls to Jev (TypeSafe's fast System One model) so Claude doesn't read, and pay for, content it only needs a verdict on.

  • Works in 2 steps: paste it in chat. Then run qs setup (it… → keep it out of the chat by running node…
  • The user says quicksilver
  • SKILL.md covers First run: set the key once, When to delegate, Commands and Reading the output, plus 2 more sections
  • Runs JavaScript scripts from its folder; calls node; needs JEV_API_KEY and TYPESAFE_API_KEY

What it does

Quicksilver is an agent skill from UditAkhourii/quicksilver. Offload bulk judgment calls to Jev (TypeSafe's fast System One model) so Claude doesn't read, and pay for, content it only needs a verdict on. Use this BEFORE reading many files, long logs, or big lists just to decide which parts matter. That covers finding which files relate to a feature or bug, filtering log lines for errors, triaging or labelling many items (tickets, test failures, commits, TODOs, search hits), ranking candidates by relevance, locating the right lines in a huge file, or a yes/no check on a…

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts.

It sits in Testing & QA, covering Failing and flaky tests. The repository describes itself as: Claude Code skill: hand bulk judgment calls to Jev. 86% fewer Claude tokens on a 12-task benchmark, up to 20x faster. One-line npx install. The licence is MIT.

When your agent uses it

  • The user says quicksilver
  • Tasks that involve Failing and flaky tests

Example prompts

  • “s fast System One model) so Claude doesn”
  • “save tokens”
  • “delegate”
  • “/quicksilver”

Requirements

  • Node.js
  • A credential in JEV_API_KEY
  • A credential in TYPESAFE_API_KEY

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. paste it in chat. Then run qs setup (it verifies the key, then
  2. keep it out of the chat by running node "/scripts/qs.mjs" setup

What it can do on your machine

Read from SKILL.md and the folder at commit 5d6fe5c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • console.typesafe.ai
    • docs.typesafe.ai

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • JEV_API_KEY
    • TYPESAFE_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Quicksilver loads about 2.2k tokens when it runs. Until then it costs about 194 tokens; SKILL.md has 1,028 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~194
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:70
    skips `.env*`, keys, certs, and credentials files, and respects `.gitignore`.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from UditAkhourii/quicksilver at commit 5d6fe5c, republished under its MIT licence (© UditAkhourii). 1,028 words, ~2,226 tokens.

Download SKILL.mdSave it as .claude/skills/quicksilver/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
quicksilver
description
Offload bulk judgment calls to Jev (TypeSafe's fast System One model) so Claude doesn't read, and pay for, content it only needs a verdict on. Use this BEFORE reading many files, long logs, or big lists just to decide which parts matter. That covers finding which files relate to a feature or bug, filtering log lines for errors, triaging or labelling many items (tickets, test failures, commits, TODOs, search hits), ranking candidates by relevance, locating the right lines in a huge file, or a yes/no check on a large document. Also use when the user says quicksilver, jev, "save tokens", "delegate", or "cheaper/faster". Skip it for generation, editing, multi-step reasoning, math, counting, or date comparison, and when the input is small enough to just read.

Quicksilver: let Jev make the calls, Claude does the thinking

Jev returns typed judgments (yes/no probability, one-of-N label, rubric score) in about a second, at $0.042 per million input tokens. It cannot write text or reason in steps. So the split is simple: Jev narrows, Claude reads only what survives. Every item Jev rules out is content that never enters Claude's context. That saves tokens, saves usage limits, and cuts wall-clock time, because Jev scans hundreds of items in parallel.

In the commands below, qs stands for:

bash
node "<base directory of this skill>/scripts/qs.mjs"

Needs Node 18+ (globs need Node 22+). There are no other dependencies.

First run: set the key once

Run qs status first.

  • ready means go straight to the task.

  • not configured means ask the user for their Jev API key, and point them to https://console.typesafe.ai to create one. They can:

    1. paste it in chat. Then run qs setup <KEY> (it verifies the key, then saves it to ~/.quicksilver/config.json, user-only permissions), or
    2. keep it out of the chat by running node "<skill dir>/scripts/qs.mjs" setup in their own terminal. It prompts for the key with hidden input.

    JEV_API_KEY or TYPESAFE_API_KEY in the environment also works, and takes precedence. After setup, carry on with the original task. Don't stop at "configured".

Exit code 3 means a key problem: missing, or rejected by Jev. Re-run setup.

When to delegate

Ask: "Am I about to read a lot of content only to decide which parts matter?" If yes, and each decision fits yes/no, pick-a-label, or rate-on-a-scale, delegate.

SituationCommand
"Which files deal with X?" across a repoqs filter "Does this file implement or handle X?" src
Errors or anomalies in a big logqs filter "Does this line indicate a failure?" app.log --lines
Where in a 5k-line file is Y?qs find "Y" big_file.py --top 5
Sort 200 tickets, test failures, or TODOs into bucketsqs classify --labels "bug,feature,question" --items items.jsonl
Best candidates for a query (search hits, docs, files)qs rank "query" docs/ --top 10
One yes/no over a large documentqs ask "Does this contract allow termination without notice?" --state @contract.txt
Several questions over the same contentqs ask spec.json (raw request, see below)

Benchmarked strengths (12 real tasks, see the repo's bench/): Quicksilver matched Claude's accuracy while cutting its tokens by 77–96% on needle-in-haystack log search, finding files across a repo, "where is X?" ranking, semantic search inside huge files, and bulk routing or classification with clear labels (support intents, CI failure causes, sentiment). It was weaker on subjective or expert-defined labels (commit types, alert policies) and on look-alike code (safe vs vulnerable twins). There, use its output as a shortlist, and check the ? items yourself.

Don't delegate:

  • Tiny inputs (a few files, or under ~2k tokens). Just read them.
  • Exact matches. grep or rg is free and exact. Jev is for meaning: "handles auth" rather than the literal string auth.
  • Arithmetic, counting, date or time comparison. Do those in code.
  • Anything generative (writing, summarizing, editing) or needing a chain of reasoning.
  • Content the user wouldn't want sent to a third-party API. Quicksilver already skips .env*, keys, certs, and credentials files, and respects .gitignore.

Commands

Inputs (for filter, classify, rank): files, directories (respects .gitignore inside git repos, and skips node_modules, dist, and similar), globs, - for stdin, or --items FILE.jsonl (one JSON object per line with id and text, or plain text lines). Add --lines to judge each line separately (logs, CSVs, lists). Use --ext ts,tsx to limit file types.

bash
qs filter "<yes/no question>" <inputs> [--threshold 0.5] [--lines]
qs classify --labels "a,b,c" <inputs> [--question "..."] [--only a] [--min-confidence 0.6]
qs classify --labels-json '{"bug":"Something is broken","feature":"A request for new behaviour"}' <inputs>
qs rank "<query>" <inputs> [--top 10 | --all]
qs find "<what you're looking for>" <files> [--top 5]
qs ask "<question>" --state @file|"text"|- [--choice "a,b,c" | --score "low|mid|high"]
qs ask spec.json        # {"state": ..., "questions": {"id": {"type": "noul|choice|score", ...}}}
qs status               # key check, plus lifetime tokens saved

Add --json to any command for machine-readable output. Summary lines go to stderr. --save FILE writes every per-item result to FILE, while stdout stays compact. --fast packs small items into shared requests. It's about 10× faster on big logs, but less accurate on subtle judgments. Use it for obvious needles (crashes, OOMs) in very large logs, not for classification.

Show full SKILL.md (392 more words)Show less

Reading the output

Output is compact on purpose. For filter, each line is a probability, then the item. With --lines, repeated log lines that differ only in numbers or ids are merged into one pattern, followed by the matching line numbers:

0.99  src/db.ts
0.98  app.log:813  worker ERROR process killed: JavaScript heap out of memory
0.97  ×57  app.log:104  RAS KERNEL FATAL data TLB error interrupt
        also lines 115,121-130,…
? borderline (0.35–0.65) — check these yourself:
0.55  app/api/convert_safe.ts
— 340 scanned · 3 matched · 1 borderline · 4.1s · jev 90k tok ($0.0038) · ~88k Claude tokens not read

classify prints the count per label, then the ids in each label. After that it lists each low-confidence item with its runner-up label and its text:

bug 41 · feature 12 · question 7
[bug] T1 T4 T9 …
? low confidence — check these yourself:
?0.49  bug (or question)  T33  login button does nothing on Safari?
  • ? marks a borderline or low-confidence item. Read those yourself. In the benchmark, the false positives sat in this band. Treat everything else as a reliable shortlist.
  • ~ after an item means it was truncated past --max-chars (default 60k chars), so Jev only saw the start.
  • The footer shows cost and the estimated Claude tokens avoided. Mention the savings to the user when they're meaningful.
  • Jev's verdicts make a shortlist, not proof. Open the survivors before you edit code, draw conclusions, or tell the user something is definitely absent. If a filter returns nothing you expected to find, rephrase the question or lower --threshold before concluding.

Writing good questions

Jev reads questions literally. Its accuracy comes from how precise the question is.

  • One judgment per question. Say "Does this file send email?", not "Does this file send email or handle billing?". Run two filters instead.
  • Spell out the exact condition, including the boundary cases: "Does this line report a failure (ERROR, FATAL, crash, timeout). Not warnings about deprecation?"
  • Use plain meaning, not jargon hops or double negatives.
  • Give classify labels short descriptions with --labels "bug:Something broken,feature:New behaviour request". Add a catch-all label such as other when nothing may fit.
  • For a raw ask spec, put the content in state (JSON objects are fine) and refer to fields in backticks inside instructions, like `ticket.body`. Questions run in parallel and can't see each other's answers. See https://docs.typesafe.ai/api.md for the full schema.

Patterns that pay off

  • Funnel: qs filter over the whole repo, then Claude reads the 5 survivors instead of 300 files.
  • Log triage: qs filter ... --lines over a 50k-line log, then Claude investigates only the failures.
  • Two-pass precision: a cheap broad filter, then rank the survivors against the specific question.
  • Batch triage: dump items to JSONL (issues, test output, grep hits), qs classify, then act per bucket.

Jev handles 1,200 requests/min. Quicksilver packs small items into shared requests, runs 8 in parallel, and retries rate limits (429/529) automatically.

© UditAkhourii, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (scripts) in skills/quicksilver of UditAkhourii/quicksilver.

  • SKILL.md
  • scripts/qs.mjs

Open the folder on GitHubat commit 5d6fe5c

Compare with similar skills

Quicksilver next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Quicksilver compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Quicksilver this skillUditAkhourii/quicksilver116—~2.2kAutomated safety check: NotesMIT
Swig Testswig/swig6.3k—~2.3kAutomated safety check: PassCustom licence
Triage CI FailureDataDog/datadog-agent3.8k—~2.3kAutomated safety check: PassApache-2.0
Dynamo Jira TicketDynamoDS/Dynamo2k—~1.1kAutomated safety check: PassApache-2.0
Fix Ready PRsfastrepl/anarlog9.5k—~1.4kAutomated safety check: PassMIT
Trx Analysismicrosoft/vstest969—~1.8kAutomated safety check: PassMIT

Similar skills

  • Swig Test

    swig/swig

    Run SWIG test suite for specific languages. An agent skill from swig/swig.

    6.3k GitHub stars~2.3k tokensUpdated 3 days ago
    Testing & QAAuto-check passed
  • Triage CI Failure

    DataDog/datadog-agent

    Official

    Classify a failed CI as either caused by an active incident, flakiness, or a true code regression.

    3.8k GitHub stars~2.3k tokensUpdated today
    Testing & QAAuto-check passed
  • Dynamo Jira Ticket

    DynamoDS/Dynamo

    Create structured Jira tickets for Dynamo from bug reports, failing tests, or feature requests.

    2k GitHub stars~1.1k tokensUpdated today
    Testing & QAAuto-check passed
  • Fix Ready PRs

    fastrepl/anarlog

    Inspect every open non-draft PR for CI failures and unresolved Cursor Bugbot findings, then fix them on the existing PR branches.

    9.5k GitHub stars~1.4k tokensUpdated today
    Testing & QAAuto-check passed
  • Trx Analysis

    microsoft/vstest

    Official

    Parse and analyze Visual Studio TRX test result files. An agent skill from microsoft/vstest.

    969 GitHub stars~1.8k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Wio

    workersio/skills

    Testing workflow skill for finding high-value test candidates, writing focused tests, generating realistic workloads, reviewing test value, and diagnosing test-suite health.

    204 GitHub stars~5.8k tokensUpdated 2 mo ago
    Testing & QAAuto-check passed

Categories

Questions about Quicksilver

What does Quicksilver do?

Offload bulk judgment calls to Jev (TypeSafe's fast System One model) so Claude doesn't read, and pay for, content it only needs a verdict on. Quicksilver is an agent skill from UditAkhourii/quicksilver. Offload bulk judgment calls to Jev (TypeSafe's fast System One model) so Claude doesn't read, and pay for, content it only needs a verdict on.

When should I use Quicksilver?

Quicksilver fits situations like: the user says quicksilver; tasks that involve Failing and flaky tests.

How do I install Quicksilver in Claude Code?

Run `npx skills add UditAkhourii/quicksilver --skill quicksilver -a claude-code`. Or copy the skill folder (skills/quicksilver in UditAkhourii/quicksilver) into .claude/skills/quicksilver in your project. Claude Code loads it when a task matches its description.

How do I install Quicksilver in Codex?

Run `npx skills add UditAkhourii/quicksilver --skill quicksilver -a codex`. Or copy the skill folder (skills/quicksilver in UditAkhourii/quicksilver) into .agents/skills/quicksilver in your project. Codex loads it when a task matches its description.

Can I use Quicksilver in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add UditAkhourii/quicksilver --skill quicksilver -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/quicksilver, .gemini/skills/quicksilver, .github/skills/quicksilver and .opencode/skills/quicksilver in your project.

What does Quicksilver need to run?

Going by SKILL.md and its folder, Quicksilver needs JavaScript for the scripts in its folder, the command-line tools its instructions call (node) and credentials named JEV_API_KEY and TYPESAFE_API_KEY. Our summary lists: Node.js; A credential in JEV_API_KEY; A credential in TYPESAFE_API_KEY.

Does Quicksilver access the network?

SKILL.md names 2 domains. As links in the text: console.typesafe.ai and docs.typesafe.ai. This is read from the text; nothing was executed.

Is Quicksilver safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Quicksilver use?

Quicksilver is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Quicksilver use?

About 2.2k tokens (SKILL.md is roughly 8.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Quicksilver?

Skills that share tags, products or a category with Quicksilver: Swig Test (swig/swig, 6.3k stars), Triage CI Failure (DataDog/datadog-agent, 3.8k stars), Dynamo Jira Ticket (DynamoDS/Dynamo, 2k stars) and Fix Ready PRs (fastrepl/anarlog, 9.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Quicksilver?

UditAkhourii (a GitHub user) maintains it in UditAkhourii/quicksilver, which has 116 GitHub stars. The repository was last updated on September 25, 2026.

Source: UditAkhourii/quicksilver on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.