@tinoy/pi-sudo-approve

Run root commands with a user-approved password prompt; audit every batch.

Packages

Package details

extension

Install @tinoy/pi-sudo-approve from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@tinoy/pi-sudo-approve
Package
@tinoy/pi-sudo-approve
Version
0.2.0
Published
Sep 26, 2026
Downloads
329/mo · 12/wk
Author
tinoy
License
MIT
Types
extension
Size
30.4 KB
Dependencies
1 dependency · 2 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

[!WARNING] Do not install anything here yet.

This is a fast-moving prototype: the interfaces change without notice, and nothing here is stable. Every package in this project is headed for a stable 1.0, but that is still some way off. Install one only if you intend to follow the code and expect breakage.

@tinoy/pi-sudo-approve

Run root commands with a user-approved password prompt; audit every batch.

pi install npm:@tinoy/pi-sudo-approve

What it needs at call time

The desktop approval window (promptd) for the primary path, else the TUI/yad fallback; the refusal names which one is missing first. The window is reached through the request router the environment names: SUDO_APPROVE_ROUTE when it carries the router's own path, else TINSHELL_HOME joined with common/shell/tinshell-route.sh inside that checkout. A machine that sets neither gets the refusal by name, never an approval through the fallback.

Deploying it

The file pi loads at ~/.pi/agent/extensions/sudo-approve.ts is not this package and carries its own router resolution. A deploy that replaces it with this package's version must also put SUDO_APPROVE_ROUTE (or TINSHELL_HOME) in the session environment at the same time, or the primary approval path refuses by name instead of drawing a dialog.

Registers

sudo_approve

Caveats

No caveat rows declared: this unit's only soft dependency is machine capability, named above, and it refuses by name rather than failing to load.

Dependencies

pi-supplied imports (@earendil-works/pi-coding-agent, typebox) are peer dependencies with a * range and are never bundled. Plain dependencies: @tinoy/pi-ext-lib.

Licence

MIT — see the repository LICENSE.