侧边栏壁纸
博主头像
帆云素材 博主等级

苟利国家生死以,岂因祸福避趋之

  • 累计撰写 28 篇文章
  • 累计创建 28 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

Pi 使用方式

智慧的格子衫
2026-09-22 / 0 评论 / 0 点赞 / 8 阅读 / 0 字

安装

npm install -g --ignore-scripts @earendil-works/pi-coding-agent

PI 插件

更新插件:

pi update --extensions

插件列表

User packages:
  npm:@juanibiapina/pi-powerbar
  npm:@gotgenes/pi-permission-system
  npm:pi-workspace-history
  npm:@ff-labs/pi-fff
  npm:pi-web-access
  npm:pi-markdown-preview
  npm:@narumitw/pi-lsp
  npm:@narumitw/pi-plan-mode
  npm:@narumitw/pi-subagents
  npm:@narumitw/pi-goal
  npm:@juicesharp/rpiv-todo
  npm:@juicesharp/rpiv-ask-user-question
  npm:@juicesharp/rpiv-advisor

插件简介描述

插件

主要作用

核心能力

使用场景

npm:@juanibiapina/pi-powerbar

状态栏 / Powerline

在 Pi 底部显示持久化状态信息,可由其他插件动态更新

显示模型、Token、Git 分支、任务状态等

npm:@gotgenes/pi-permission-system

权限控制

对 Tool、Bash、MCP、Skill 等进行 allow / ask / deny 控制

防止 Agent 随意执行 rmsudo、敏感文件访问等

npm:pi-workspace-history

工作区回滚

Workspace 级 Undo / Redo / Rewind,保存工作区历史

Agent 改坏代码后恢复

npm:@ff-labs/pi-fff

快速文件搜索

用 Rust + SIMD 的 FFF 替代 find / grep,带搜索历史/记忆

大项目中快速找文件、代码

npm:pi-web-access

联网搜索 / 网页读取

Web Search、网页内容提取、GitHub 仓库读取、部分视频理解

Agent 查文档、查 GitHub、查最新资料

npm:pi-markdown-preview

Markdown / 文档预览

Markdown、LaTeX、代码、Diff、Mermaid 预览,可浏览器/PDF输出

查看 Agent 生成的 Markdown、方案、文档

npm:@narumitw/pi-lsp

LSP 代码诊断

调用 Language Server 做诊断和 Code Action

Java/TS/Python/Go 等代码检查、定位错误

npm:@narumitw/pi-plan-mode

Plan Mode

类似 Codex /plan,只读分析代码 → 制定方案 → 审批 → 实施

复杂需求先分析再改代码

npm:@narumitw/pi-subagents

Subagent

将任务拆给独立 Agent,支持后台执行和 Agent 间通信

并行调查、代码实现、Review

npm:@narumitw/pi-goal

Goal Mode

给 Agent 一个明确目标,让它持续工作直到完成/阻塞/达到限制

“一直修到测试通过”“完成这个重构”

npm:@juicesharp/rpiv-todo

Todo / 任务跟踪

Agent 的实时 Todo Overlay,支持 reload / compaction 后继续

多步骤任务进度管理

npm:@juicesharp/rpiv-ask-user-question

主动询问用户

当需求存在歧义时,用结构化选项向用户提问

避免 Agent 自己猜需求

npm:@juicesharp/rpiv-advisor

第二意见 / Reviewer

让更强的模型对当前 Agent 的方案/行动进行复核

高风险修改、复杂方案、代码 Review

一键安装命令

pi install npm:@juanibiapina/pi-powerbar && pi install npm:@gotgenes/pi-permission-system && pi install npm:pi-workspace-history && pi install npm:@ff-labs/pi-fff && pi install  npm:pi-web-access && pi install npm:pi-markdown-preview && pi install npm:@narumitw/pi-lsp && pi install npm:@narumitw/pi-plan-mode && pi install npm:@narumitw/pi-goal && pi install npm:@narumitw/pi-subagents && pi install npm:@juicesharp/rpiv-todo && pi install npm:@juicesharp/rpiv-ask-user-question && pi install npm:@juicesharp/rpiv-advisor 

pi-permission-system插件配置

文件地址:​~/.pi/agent/extensions/pi-permission-system/config.json

文件内容

{
  "$schema": "https://raw.githubusercontent.com/gotgenes/pi-packages/main/packages/pi-permission-system/schemas/permissions.schema.json",
  "debugLog": false,
  "permissionReviewLog": false,
  "yoloMode": false,
  "piInfrastructureReadPaths": [
    "~/.pi/agent",
    "~/.pi/agent/*",
    "~/AppData/Roaming/npm/node_modules/@earendil-works",
    "~/AppData/Roaming/npm/node_modules/@earendil-works/*"
  ],
  "permission": {
    "*": "allow",
    "grep": "deny",
    "find": "deny",
    "external_directory": {
      "*": "ask",
      "~/.pi/agent": "allow",
      "~/.pi/agent/*": "allow"
    },
    "path": {
      "*": "allow",
      "*.env": "deny",
      "*.env.*": "deny",
      "*.env.example": "allow",
      "~/.ssh/*": "deny",
      "$HOME/.ssh/*": "deny",
      "~/.pi/agent/auth.json": "deny",
      "~/.pi/agent/models.json": "deny",
      "~/.codex/auth.json": "deny"
    },
    "bash": {
      "*": "allow",
      "Remove-Item *": "ask",
      "rm *": "ask",
      "del *": "ask",
      "erase *": "ask",
      "rd *": "ask",
      "rmdir *": "ask",
      "ri *": "ask",
      "mv *": "ask",
      "Move-Item *": "ask",
      "Rename-Item *": "ask",
      "Clear-Content *": "ask",
      "Set-Content *": "ask",
      "Out-File *": "ask",
      "cmd /c del *": "ask",
      "cmd /c erase *": "ask",
      "cmd /c rd *": "ask",
      "cmd /c rmdir *": "ask",
      "cmd.exe /c del *": "ask",
      "cmd.exe /c erase *": "ask",
      "cmd.exe /c rd *": "ask",
      "cmd.exe /c rmdir *": "ask",
      "powershell *Remove-Item*": "ask",
      "powershell.exe *Remove-Item*": "ask",
      "pwsh *Remove-Item*": "ask",
      "pwsh.exe *Remove-Item*": "ask",
      "powershell *Move-Item*": "ask",
      "powershell.exe *Move-Item*": "ask",
      "pwsh *Move-Item*": "ask",
      "pwsh.exe *Move-Item*": "ask",
      "powershell *Rename-Item*": "ask",
      "powershell.exe *Rename-Item*": "ask",
      "pwsh *Rename-Item*": "ask",
      "pwsh.exe *Rename-Item*": "ask",
      "powershell *Clear-Content*": "ask",
      "powershell.exe *Clear-Content*": "ask",
      "pwsh *Clear-Content*": "ask",
      "pwsh.exe *Clear-Content*": "ask",
      "powershell *Set-Content*": "ask",
      "powershell.exe *Set-Content*": "ask",
      "pwsh *Set-Content*": "ask",
      "pwsh.exe *Set-Content*": "ask",
      "powershell *Out-File*": "ask",
      "powershell.exe *Out-File*": "ask",
      "pwsh *Out-File*": "ask",
      "pwsh.exe *Out-File*": "ask",
      "git clean *": "ask",
      "git reset --hard *": "ask",
      "git checkout -- *": "ask",
      "git restore *": "ask"
    }
  }
}

Pi 接入Cline pass apikey

文件地址:​~/.pi/agent/models.json

文件内容:

增加providers 即可,如果只有 “clinepass”,直接复制下文

{
    "providers": {
        "clinepass": {
            "baseUrl": "https://api.cline.bot/api/v1",
            "api": "openai-completions",
            "apiKey": "sk-xxx",
            "authHeader": true,
            "headers": {
                "x-client-type": "cline-cli"
            },
            "compat": {
                "supportsStore": false,
                "supportsDeveloperRole": false,
                "supportsReasoningEffort": true,
                "supportsStrictMode": false,
                "maxTokensField": "max_tokens"
            },
            "models": [
                {
                    "id": "cline-pass/deepseek-v4.1-flash",
                    "name": "DeepSeek V4.1 Flash (ClinePass)",
                    "reasoning": true,
                    "thinkingLevelMap": {
                        "off": "none",
                        "minimal": null,
                        "low": null,
                        "medium": null,
                        "high": "high",
                        "xhigh": null,
                        "max": "max"
                    },
                    "input": [
                        "text",
                        "image"
                    ],
                    "contextWindow": 1000000,
                    "maxTokens": 384000,
                    "samplingParams": {
                        "provider": {
                            "order": [
                                "DeepSeek"
                            ],
                            "allow_fallbacks": false
                        }
                    }
                }
            ]
        }
    }
}

0

评论区