pi-terminal-browser-search
Chrome-first /search command extension package for Pi Coding Agent
Package details
Install pi-terminal-browser-search from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-terminal-browser-search- Package
pi-terminal-browser-search- Version
0.1.0- Published
- May 5, 2026
- Downloads
- not available
- Author
- saba_burduli2
- License
- MIT
- Types
- extension
- Size
- 32.1 KB
- Dependencies
- 0 dependencies · 0 peers
Pi manifest JSON
{
"extensions": [
"./.pi/extensions/terminal-browser-search/src/pi-extension.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
Terminal Browser Search Extension
Chrome-first Pi Harness extension that opens Google search results directly from /search <query> with minimal, terminal-silent UX.
Overview
This extension is designed for fast action, not conversational search explanations.
When a user runs /search dotnet docs, Pi immediately launches Google Chrome with an encoded Google query URL.
Primary behavior:
- Accept user query input from
/search <query> - Sanitize and normalize query text
- Encode query safely
- Enforce trusted URL policy
- Open Chrome via system command on macOS
- Keep command execution silent from the user perspective
Features
- Native Pi extension command:
/search <query> - Dynamic query support (no hardcoded terms)
- Trusted host enforcement (
https://www.google.com/search?q=...) - Config-driven dry-run and auto-open toggles
- Dynamic context hook (
beforeTurn) for search intent biasing - Optional compaction strategy preserving command/query relevance
- Extensible launcher abstraction for future browsers
How It Works
Runtime flow:
- Pi command
/search <query>is handled by extension command registration insrc/pi-extension.ts. - Query is parsed and sanitized by
CommandParser. - URL is built by
QueryEncoder. - URL is validated by
UrlPolicy. - Launcher factory selects browser launcher (Chrome default).
open -a "Google Chrome" "<url>"executes.
Command
/search <query>
Examples:
/search dotnet docs/search openai codex prompt templates
Configuration
Config file:
.pi/terminal-browser-search.config.json
Relevant settings:
autoOpenBrowser(bool): open browser automaticallydryRun(bool): build URL without opening browserdefaultBrowser(chrome/firefox/safari)searchEngine.baseUrl(default Google search)searchEngine.queryParam(defaultq)searchEngine.allowedHosts(allowlist)
Environment overrides:
PI_SEARCH_AUTO_OPENPI_SEARCH_DRY_RUNPI_SEARCH_INCOGNITO
Project Structure
terminal-browser-search-extension/
├── AGENTS.md
├── LICENSE
├── README.md
└── .pi/
├── SYSTEM.md
├── terminal-browser-search.config.json
└── extensions/
└── terminal-browser-search/
├── extension.json
├── package.json
├── tsconfig.json
├── bin/search.js
├── src/pi-extension.ts
├── src/SearchRuntime.ts
├── src/CommandParser.ts
├── src/QueryEncoder.ts
├── src/UrlPolicy.ts
├── src/BrowserLauncherFactory.ts
├── src/launchers/MacOSBrowserLauncher.ts
├── src/DynamicContextHook.ts
├── src/CompactionStrategy.ts
└── src/hooks.ts
Install (Local Repo)
From repo root:
cd .pi/extensions/terminal-browser-search
npm install
npm run build
Then reload Pi resources:
/reload
Install (npm Package)
After package publication:
pi install npm:pi-terminal-browser-search
Then reload resources:
/reload
Development
Build:
cd .pi/extensions/terminal-browser-search
npm run build
Pack validation:
npm run pack:check
Security Notes
- Only trusted search URLs are opened.
- Query input is sanitized before URL construction.
- Invalid or empty queries are rejected.
- No hardcoded token or secret handling in runtime flow.
Compatibility
- Platform: macOS launcher path implemented (
open -a "Google Chrome" ...) - Node.js:
>=20
Developer
- Saba Burduli
License
This project is licensed under the MIT License. See LICENSE.
Official Package Listing
To request inclusion in Pi's curated/official package ecosystem:
- Publish package to npm (
pi-terminal-browser-search) - Open submission request in
badlogic/pi-mono - Include install command, repository URL, safety model, and demo evidence
Detailed checklist: