@diegopetrucci/pi-contrarian
A read-only contrarian subagent extension for pi that stress-tests plans, designs, assumptions, and conclusions.
Package details
Install @diegopetrucci/pi-contrarian from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@diegopetrucci/pi-contrarian- Package
@diegopetrucci/pi-contrarian- Version
0.1.4- Published
- Jul 14, 2026
- Downloads
- 498/mo · 38/wk
- Author
- diegopetrucci
- License
- MIT
- Types
- extension
- Size
- 60.1 KB
- Dependencies
- 0 dependencies · 4 peers
Pi manifest JSON
{
"extensions": [
"index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
contrarian
A read-only contrarian subagent for pi.
It adds a contrarian tool that spins up a separate pi subprocess to stress-test plans, designs, assumptions, bug hypotheses, review conclusions, and product directions by steelmanning the strongest credible opposing case.
This is adapted from the TLH contrarian subagent prompt into a standalone pi extension.
What it does
- creates an isolated read-only subprocess
- prefers a strong model on the opposite model family/provider when available, then falls back to the best available model
- requests
highreasoning by default for reasoning models, then clamps to the model-supported thinking level - defaults to
read,grep,find,ls, with optional non-mutating bash inspection - renders the contrarian response with model, thinking level, timing, and usage info
- shows a live contrarian status line and widget while the subprocess is running
Install
Standalone npm package
pi install npm:@diegopetrucci/pi-contrarian
Collection package
pi install npm:@diegopetrucci/pi-extensions
GitHub package
pi install git:github.com/diegopetrucci/pi-extensions
Then reload pi:
/reload
Usage
Ask pi normally, for example:
Use the contrarian to stress-test this refactor plan.Ask contrarian for the strongest opposing case before we commit to this design.Have contrarian review my bug hypothesis and identify what evidence could disprove it.
The main agent can call the tool directly.
User defaults
Use /contrarian to set persisted defaults that apply to future contrarian tool calls, including calls the agent launches automatically without per-call overrides.
/contrarian status
/contrarian model anthropic/claude-opus-4-8
/contrarian thinking high
/contrarian thinking auto
/contrarian clear model
/contrarian clear thinking
/contrarian clear
Use /contrarian-model inside pi to see what it would pick right now.
Tool-call parameters still win over these defaults. auto clears the configured default and restores the built-in selection behavior. Preferences are saved under pi's agent directory in extensions/contrarian.json.
Tool parameters
task- required prompt for the contrarianincludeBash- optional, addsbashfor non-mutating inspectionmodel- optional explicit model override; falls back to the/contrarian modeldefault, then auto-selectionthinkingLevel- optional reasoning/thinking override; falls back to the/contrarian thinkingdefault, then built-in defaultscwd- optional working directory override
Notes
- The contrarian is intentionally read-only.
- It never implements fixes or produces patches.
- Its output separates confirmed objections, plausible concerns, and unresolved unknowns.
- It is best for adversarial review before committing to a plan, design, or conclusion.