@celljs/ta-permission-gate

A pi package: allow, ask or deny tool calls by rules. Works in Ta and in pi.

Packages

Package details

extension

Install @celljs/ta-permission-gate from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@celljs/ta-permission-gate
Package
@celljs/ta-permission-gate
Version
4.8.0
Published
Nov 11, 2026
Downloads
582/mo · 582/wk
Author
muxiangqiu
License
MIT
Types
extension
Size
38 KB
Dependencies
0 dependencies · 1 peer
Pi manifest JSON
{
  "extensions": [
    "./lib/node/index.js"
  ]
}

Security note

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

README

Cell - Ta Permission Gate

一个 pi 包:按规则对工具调用放行、询问或拒绝。不依赖 Cell,Ta 和 pi 都能安装:

ta install npm:@celljs/ta-permission-gate
pi install npm:@celljs/ta-permission-gate

规则写在 permissions.json,全局(agent 目录下)和项目(.ta/ 或 .pi/ 下)各一份:

{
  "default": "allow",
  "rules": [
    { "tool": "bash", "command": "git push*", "action": "ask" },
    { "tool": "bash", "command": "*rm -rf*", "action": "deny" },
    { "path": "*/.env*", "action": "deny" }
  ]
}
  • 每份文件里第一条匹配的规则生效,都不匹配时取 default(默认 allow);* 匹配任意字符,其余按字面。
  • 两份文件取更严的结果:项目只能收紧、不能放宽,否则不受信任的仓库能给自己开权限。
  • ask 调用 ctx.ui.confirm,5 分钟无人回答视为拒绝;没有界面(-p)时直接拒绝。在 ta serve 下对话框会发给所有已连接的客户端。
  • 文件读不了或格式不对时一律拒绝。

没有 permissions.json 时什么都不限制,与 pi 的默认行为一致。