@easii/pi
Stack detector for Pi: suggests skills, MCPs and SDD schemas for your project
Package details
Install @easii/pi from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@easii/pi- Package
@easii/pi- Version
0.2.3- Published
- Jun 1, 2026
- Downloads
- not available
- Author
- rodrigoperaltadev
- License
- MIT
- Types
- extension, skill
- Size
- 110.2 KB
- Dependencies
- 0 dependencies · 1 peer
Pi manifest JSON
{
"extensions": [
"./extensions/stack-detector.ts"
],
"skills": [
"./skills"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
@easii/pi
Stack detector for Pi: suggests skills, MCPs and SDD schemas for your project.
Pi package from Easii Studio that automatically detects your project tech stack and suggests relevant skills, MCPs and SDD flows.
Standalone or with gentle-pi?
Works standalone with vanilla Pi. No dependencies required.
Gentle-pi adds SDD/OpenSpec workflows on top. @easii/pi integrates with it by:
- Pre-populating
openspec/config.yamlwith detected stack hints when/sdd-initruns - Suggesting the
rn-featureschema for React Native projects - Providing capability audit that gentle-pi can forward to its skill registry
If you use gentle-pi:
pi install npm:@easii/pi npm:gentle-pi
If you use vanilla Pi:
pi install npm:@easii/pi
Installation
pi install npm:@easii/pi
Recommended companions (optional)
pi install npm:gentle-engram # persistent memory across sessions
pi install npm:@juicesharp/rpiv-ask-user-question # structured dialogs
What it includes
Stack Detector
On session_start, the package reads your package.json and detects the project profile. By default, it shows a one-liner only on the first session or when the stack changes. Use /easii:stack for the full report.
| Profile | Trigger |
|---|---|
react-native-expo |
expo dependency |
react-native-bare |
react-native without expo |
nextjs |
next dependency |
react-web |
react without RN |
node-backend |
main field, no react |
npm-library |
types or files field |
gamedev-phaser |
phaser dependency |
gamedev-pixi |
pixi.js dependency |
unknown |
none of the above |
Manual re-run:
/easii:stack
Built-in skills
| Skill | When |
|---|---|
expo |
Expo SDK, EAS Build, Expo Router, managed/bare |
react-native |
Testing, components, performance, iOS/Android differences |
rn-e2e-maestro |
E2E flows; only suggested if @maestro/cli or .maestro/ exists |
/skill:expo
/skill:react-native
/skill:rn-e2e-maestro
Suggested MCPs
/easii:stack suggests MCPs based on your deps and avoids duplicates in .mcp.json / .pi/mcp.json.
| Trigger | MCP |
|---|---|
| Expo | Expo MCP |
@supabase/* |
Supabase MCP |
| Playwright | Playwright MCP |
| Prisma / Postgres deps | PostgreSQL MCP |
| Firebase | Firebase MCP |
| Stripe | Stripe MCP |
| Next / React / Node | Context7 MCP |
Schema rn-feature and SDD setup
SDD flow tailored for React Native features:
proposal → specs → design → tasks → apply
Includes:
- Platform considerations (iOS/Android)
- Testing strategy (unit + optional E2E)
- PR checklist
For React Native / Expo projects:
/easii:setup-project
This command:
- Shows interactive summary, asks confirmation
- If confirmed, asks about missing capabilities (strict TDD, E2E, CI/CD, Docker)
- Copies
assets/schemas/rn-feature/→openspec/schemas/rn-feature/ - Sets
schema: rn-featureinopenspec/config.yaml - Adds managed block with detected stack and setup preferences for
/sdd-init - Infers
test_command, E2E, typecheck, lint and format when scripts exist
Commands
| Command | What |
|---|---|
/easii:stack |
Detect stack, audit capabilities, suggest skills/MCPs |
/easii:setup-project |
Configure OpenSpec for RN/Expo with rn-feature schema and hints for /sdd-init |
Usage examples
/easii:stack output
[@easii/pi] Stack detected: React Native + Expo
✓ TypeScript
✓ Expo Router
✓ EAS Build
✓ Tests: vitest
Detected capabilities — read-only
✓ Unit tests: configured → vitest
✓ E2E: configured → maestro test
~ Strict TDD: detected without clear checks
✓ CI: configured with quality checks
~ CD/deploy: platform file detected
Suggested skills — already applicable to this stack
→ [marketplace] @expo/expo-hog ★4.8 (12,400 installs)
Install: npx skills add expo/expo-hog
Expo-specific linting, type checking, and best practices
→ [@easii/pi] /skill:expo — Expo SDK, EAS Build, Expo Router, managed/bare
→ [@easii/pi] /skill:react-native — Testing, components, performance, iOS/Android differences
Suggested MCPs — entries for mcpServers in .mcp.json or .pi/mcp.json
→ Expo MCP — SDK docs, simulator and local Expo flows
{ "command": "npx", "args": ["-y", "expo-mcp@latest"], "lifecycle": "lazy" }
Tip: with pi-mcp-adapter, use /mcp setup to import existing configs.
/easii:setup-project interaction
/easii:setup-project
[@easii/pi] OpenSpec setup for React Native + Expo
Current state:
schema: not configured
test_command: "vitest"
e2e: maestro detected (maestro test)
typecheck: "npx tsc --noEmit"
strict_tdd: not configured (available to enable)
ci: github workflows detected
Recommendations for your profile:
• strict_tdd: enable (vitest detected, not configured in openspec/config.yaml)
• e2e: keep maestro (already detected)
• ci: keep github workflows (already configured)
• cd: pending (no deploy workflow detected)
Configure OpenSpec? [y/N]:
Skills auto-suggested by stack
When your project has Expo:
Suggested skills — already applicable to this stack
→ [@easii/pi] /skill:expo — Expo SDK, EAS Build, Expo Router, managed/bare
→ [@easii/pi] /skill:react-native — Testing, components, performance, iOS/Android differences
When Maestro is detected:
→ [@easii/pi] /skill:rn-e2e-maestro — E2E flows with Maestro detected in the project
Capabilities read-only audit
Detected capabilities — read-only
✓ Unit tests: configured → vitest run
(vitest detected via script)
✓ E2E: configured → maestro test
(maestro detected via script)
~ Strict TDD: detected without clear checks
✓ CI: configured with quality checks
~ CD/deploy: platform file detected
– Docker: not evaluated for this profile
(not applicable for react-native-expo)
Verbosity
By default, @easii/pi runs silently on session_start and shows a one-liner only when the stack changes. Full output is on-demand via /easii:stack.
Configure verbosity in .pi/settings.json:
{
"easii": {
"verbosity": "minimal"
}
}
| Value | Behavior |
|---|---|
minimal (default) |
One-liner on first session or when stack changes |
full |
Full dump on every session (includes marketplace fetch, ~4s latency) |
off |
Completely silent on session_start |
Note: full mode is the legacy behavior. It makes a network call to the skills marketplace on every session.
Backward compatibility
To restore the old behavior (full dump on every session):
{
"easii": {
"verbosity": "full"
}
}
Development
# Install locally for testing
pi install .
# Test extension without installing
pi -e ./extensions/stack-detector.ts
# TypeScript check
npx tsc --noEmit
# Preview what would be published to npm
npm pack --dry-run
Contributing
Issues and PRs welcome at github.com/easii-studio/pi.
License
MIT — Easii Studio