omp packages

@derogab/pi-auto-mode0.5.1

Checks Bash commands before execution

derogab Published 18 days ago ~524 downloads/mo

Untested on omp

This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.

Did it work for you?

Result

One report per person. A new report replaces your old one.

Reports 0

No reports yet.

Readme

auto-mode

A Pi plugin that adds an optional safety check to Pi's built-in bash tool using explicit policy rules and a local classifier for commands not covered by those rules.

WARNING: this plugin is under active development and must be considered alpha software. Use it with caution.

Install

pi install npm:@derogab/pi-auto-mode

To use a classifier model, install the unified llama CLI and make it available on your PATH. Auto-mode starts and maintains llama serve in the background on an available local port while enabled with a model selected, downloading the selected model to the Hugging Face cache when needed. Concurrent Pi instances share one server per model, keeping a single copy of it in memory; the server stops once the last of those instances stops using it.

Controls

Run /auto-mode to manage the plugin settings.

Configure

Create auto-mode.json in either or both locations:

  • Pi's user agent directory, normally ~/.pi/agent/auto-mode.json
  • The trusted project's .pi/auto-mode.json
{
  "allow": [
    "^git status$",
    "^git diff$",
    "^npm test$",
    "^npm run (lint|build)$"
  ],
  "ask": [
    "^git commit(?:\\s|$)",
    "^git push(?:\\s|$)",
    "^npm publish(?:\\s|$)"
  ],
  "deny": [
    "^git push(?=\\s|$)(?=[\\s\\S]*\\s(?:-[a-zA-Z]*f[a-zA-Z]*|--force(?:-with-lease)?(?:=\\S+)?)(?:\\s|$))",
    "(^|\\s)(sudo|doas)(\\s|$)",
    "\\brm\\b(?=[\\s\\S]*\\s(?:-[a-zA-Z]*[rR][a-zA-Z]*|--(?:r|re|rec|recu|recur|recurs|recursi|recursiv|recursive))(?:\\s|$))(?=[\\s\\S]*\\s(?:-[a-zA-Z]*f[a-zA-Z]*|--(?:f|fo|for|forc|force))(?:\\s|$))"
  ]
}

Rules are checked in order: deny, ask, allow, then the classifier. With No model selected, unmatched commands require confirmation instead; they are blocked when confirmation is unavailable or declined. Each rule is a case-sensitive JavaScript regular expression matched as written against the command. Rules from both files are combined. Missing files are ignored; invalid files block commands.

Auto-mode is not a sandbox or a guarantee of safety.

The classifier uses the 0.8B, 2B, 4B, or 9B SingGuard-NSFA model by the SingGuard Team at Ant Group's AI Security Lab, released under the Apache 2.0 license.