pi-safety-git-operations

Guards destructive git and GitHub/GitLab CLI operations with severity-based confirmation dialogs and session memory. Covers force-push, reset --hard, branch deletion, gh/glab repo operations, and more.

Package details

extension

Install pi-safety-git-operations from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-safety-git-operations
Package
pi-safety-git-operations
Version
0.1.1
Published
Mar 13, 2026
Downloads
42/mo ยท 5/wk
Author
pierre-mike
License
MIT
Types
extension
Size
13.8 KB
Dependencies
0 dependencies ยท 1 peer
Pi manifest JSON
{
  "extensions": [
    "."
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

๐Ÿ”€ Safety Guard: Git & SCM Operations

Guards all state-changing git operations and GitHub/GitLab CLI commands with severity-based confirmation and session memory.

What it protects

๐Ÿ”ด Critical (confirm + 30s auto-deny timeout)

Command Why
git push --force / -f Rewrites remote history โ€” can lose collaborators' work
git reset --hard Discards uncommitted changes permanently
git clean -f Removes untracked files permanently
git stash drop/clear Destroys stashed changes
git branch -D Force-deletes branch even if unmerged
git reflog expire Removes recovery points
gh repo create/delete/rename/archive Irreversible GitHub repo operations
gh secret set/delete Manages production secrets
glab repo create/delete/archive Irreversible GitLab repo operations

๐ŸŸก Standard (confirm with session-remember option)

Command Why
git push Publishes commits to remote
git commit Creates permanent history entry
git rebase, git merge Rewrites/combines branch history
git tag, git cherry-pick, git revert Modifies repository state
git am Applies patches
git branch -d Deletes merged branch
gh pr create/merge/close GitHub PR lifecycle
gh pr comment/review Public GitHub comments
gh issue create/close/delete GitHub issue management
gh release create/delete/edit GitHub release management
glab mr create/merge/close GitLab MR lifecycle
glab issue create/close/delete GitLab issue management
glab release create/delete GitLab release management

Session memory

For standard operations, the confirmation dialog offers four choices:

Choice Effect
โœ… Allow once Permits this single command
๐Ÿšซ Block once Blocks this single command
โœ…โœ… Auto-approve for session All future commands of this type pass silently
๐Ÿšซ๐Ÿšซ Auto-block for session All future commands of this type are blocked silently

Session memory resets on session start/switch. Critical operations never get session memory โ€” they always require explicit confirmation.

Commands

Command Description
/git-safety Show current session approvals and blocks
/git-safety reset Clear all session overrides

Behavior

Mode Action
Interactive โ€” critical Confirm dialog with 30-second auto-deny
Interactive โ€” standard Confirm dialog with session-remember options
Non-interactive All operations blocked

Status bar

Shows ๐Ÿ”€ git-guard in the footer when active.

Installation

Already active โ€” lives in ~/.pi/agent/extensions/safety-git-operations/index.ts and auto-loads with every pi session.

Example

๐ŸŸก push
  git push origin main

  Allow?

  โœ… Allow once
  ๐Ÿšซ Block once
  โœ…โœ… Auto-approve "push" for this session
  ๐Ÿšซ๐Ÿšซ Auto-block "push" for this session