---
title: "@henryqw/pi-rtk-test"
seo:
  description: "Route direct Pi pnpm test calls through RTK."
---

<div class="not-prose my-6 flex flex-wrap items-center gap-3"><a href="https://www.npmjs.com/package/@henryqw/pi-rtk-test" aria-label="View @henryqw/pi-rtk-test version v0.1.0 on npm"><img alt="Version v0.1.0" height="20" src="https://img.shields.io/static/v1?cacheSeconds=7200&amp;color=1d4ed8&amp;label=version&amp;labelColor=6a7282&amp;style=flat-square&amp;message=v0.1.0" width="96"></a><div class="ml-auto flex flex-wrap items-center justify-end gap-3"><a href="https://www.npmjs.com/package/@henryqw/pi-rtk-test" aria-label="View @henryqw/pi-rtk-test on npm"><img alt="Monthly npm downloads" height="20" src="https://img.shields.io/npm/dm/%40henryqw%2Fpi-rtk-test?cacheSeconds=7200&amp;color=1d4ed8&amp;label=downloads&amp;labelColor=6a7282&amp;style=flat-square" width="144"></a><a href="https://github.com/HenryQW/pi-harness/blob/main/extensions/pi-rtk-test/LICENSE" aria-label="View the MIT license for @henryqw/pi-rtk-test"><img alt="MIT license" height="20" src="https://img.shields.io/npm/l/%40henryqw%2Fpi-rtk-test?cacheSeconds=7200&amp;color=1d4ed8&amp;label=license&amp;labelColor=6a7282&amp;style=flat-square" width="78"></a></div></div>

Keep noisy `pnpm test` output out of Pi's model context.

The extension routes direct `pnpm test` Bash calls through RTK's test filter. Pi receives failures and a compact result instead of the complete test log.

## Install

```bash
pi install npm:@henryqw/pi-rtk-test
```

Install Rust Token Killer (`rtk`) on Pi's `PATH`. This extension does not install or update RTK.

```bash
brew install rtk
rtk --version

rtk init -g --agent pi
```

## Use

The rewrite is transparent. Pi changes these direct commands before Bash runs them:

| Pi command | Bash command |
| --- | --- |
| `pnpm test` | `rtk test pnpm test` |
| `pnpm test -- marker` | `rtk test pnpm test -- marker` |

Leading and trailing whitespace is removed. All other command text stays unchanged.

Only direct bare `pnpm test` commands with optional test arguments work. The package leaves these forms unchanged:

- `pnpm run test` and `pnpm run-script test`
- Global or workspace options, such as `pnpm --filter pkg test`
- Quoted or indirect programs, such as `"pnpm" test` or `env pnpm test`
- `pnpm test:watch` and unrelated commands
- Newlines, carriage returns, `;`, `|`, `&`, `<`, `>`, backticks, and `$(`
- Every command that begins with `rtk`

For an unsupported form, use `rtk test ...` explicitly. For example, run `rtk test pnpm run test`.

## Limits and recovery

At startup, the package runs `rtk test --help` once. It blocks supported `pnpm test` calls if the probe throws, exits nonzero, is killed, or times out.

The block tells you to install RTK and verify `rtk test --help`. Other calls stay unchanged. The package does not warn at startup.

This package does not run tests, capture output, or inspect test results. After a rewrite, RTK runs the command and owns its output and exit status.
