Wener Notes

pi

约 4 分钟阅读
标签:Coding
bash
# 安装
bun add -g @earendil-works/pi-coding-agent
# 或者使用 npm
npm install -g --ignore-scripts @earendil-works/pi-coding-agent

export PI_SKIP_VERSION_CHECK=1 # 只关版本检查
export PI_CACHE_RETENTION=long # 1h 缓存
export PI_TELEMETRY=0          # 关遥测

pi
VariableDescription
PI_CODING_AGENT_DIR~/.pi/agent
PI_PACKAGE_DIR
PI_SKIP_VERSION_CHECK关闭版本检测
PI_TELEMETRY1/true/yes to enable or 0/false/no to disable
PI_CACHE_RETENTIONlong (Anthropic: 1h, OpenAI: 24h)
VISUAL, EDITOR
  • ~/.pi/agent/keybindings.json
  • PI_CODING_AGENT=true
    • env 检测
快捷键说明
主界面
Enter提交输入
Shift+Enter换行
Esc中断/取消当前操作或生成
Ctrl+C清空编辑器;在选择器里取消
Ctrl+D编辑器为空时退出
Ctrl+Z挂起到后台,之后可 fg 回来
Ctrl+G用外部编辑器打开输入
Ctrl+V粘贴剪贴板图片
Ctrl+L打开模型选择器
Ctrl+P切换到下一个模型
Shift+Ctrl+P切换到上一个模型
Shift+Tab切换 thinking level
Ctrl+T展开/折叠 thinking blocks
Ctrl+O展开/折叠 tool output
消息队列
Alt+EnterQueue follow-up message;当前回复后继续发送
Alt+UpDequeue;把队列消息恢复到编辑器
编辑器
←/→/↑/↓移动光标
Ctrl+A / Ctrl+E行首 / 行尾
Ctrl+B / Ctrl+F左/右移动一格
Alt+B / Alt+F左/右移动一个词
Ctrl+W删除前一个词
Alt+D删除后一个词
Ctrl+U删除到行首
Ctrl+K删除到行尾
Ctrl+Y粘贴最近删除内容
Alt+Y循环 kill ring
Ctrl+-撤销
pi -r/Resume
Ctrl+D删除当前选中的 session - 会请求确认
Ctrl+P显示/隐藏路径
Ctrl+N只看 named sessions
Ctrl+S切换排序
Ctrl+R重命名
  • $PWD/.pi/
    • settings.json
    • SYSTEM.md
    • APPEND_SYSTEM.md
    • skills/
    • prompts/
    • extenstions/
    • npm/
      • node_modules/
    • git/
      • github.com/org/repo/
    • themes/
  • ~/.pi/agent
    • auth.json
    • models.json
    • sessions/--PATH--/TIMESTAMP_UUID.jsonl
  • .agents/skills
    • 主要支持 skills 递归向上查找
bash
pi install -l npm:@org/pi-package
pi install -l git:github.com/org/repo
json
{
  "enableInstallTelemetry": false,
  "skills": [
    // "+/path/SKILL.md"
  ]
}
json
{
  "providers": {
    "name": {
      "baseUrl": "",
      "apiKey": "",
      "api": "openai-completions",
      "headers": {},
      "compact": {},
      "models": [
        {
          "id": "model-id",
          "name": "",
          "reasoning": true,
          "contextWindow": 128000,
          "maxTokens": 16384,
          "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
        }
      ],
      "modelOverrides": {}
    }
  }
}

Awesome

bash
# ~/.pi/agent/extensions/pi-rtk-optimizer
pi install npm:pi-rtk-optimizer

Session

bash
# session dir
ls ~/.pi/agent/sessions/-$(echo "$PWD/" | sed 's#/#-#g')-
cd ~/.pi/agent/sessions/-$(echo "$PWD/" | sed 's#/#-#g')-

jq -r 'select(.type=="message" and .message.role=="user") | if (.message.content|type)=="string" then .message.content else [.message.content[]? | select(.type=="text") | .text] | join("\n---\n") end' *.jsonl

Inside

TypeScript
type KnownApi =
  | 'openai-completions'
  | 'mistral-conversations'
  | 'openai-responses'
  | 'azure-openai-responses'
  | 'openai-codex-responses'
  | 'anthropic-messages'
  | 'bedrock-converse-stream'
  | 'google-generative-ai'
  | 'google-vertex';
  • openrouter-images
  • OpenAI-compatible proxy / Ollama / vLLM / LM Studio:openai-completions
  • Anthropic-compatible proxy:anthropic-messages
  • Google AI Studio:google-generative-ai
  • OpenAI Responses-compatible:openai-responses
项openai-responsesopenai-codex-responses
目标OpenAI 官方 Responses APIChatGPT/Codex 后端
默认 endpointmodel.baseUrl 通常 /v1 下 Responseschatgpt.com/backend-api/codex/responses
认证OpenAI API keyCodex/ChatGPT auth token
传输OpenAI SDK streamingWebSocket 优先,SSE fallback
system prompt转成 Responses input单独放 instructions
tools标准 Responses toolsCodex 兼容 tools,strict: null
retry/timeoutSDK request options自定义 retry、SSE header timeout、WebSocket fallback
典型 provideropenai, github-copilot, cloudflare-ai-gateway 等openai-codex

Awesome

TypeScript
{
  subagent_type: "Explore" | "Plan" | "general-purpose" | "<custom>",
  prompt: "...",
  description: "...",
  model?: "sonnet" | "provider/model",
  thinking?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh",
  max_turns?: number,
  run_in_background?: boolean,
  resume?: string,
  isolated?: boolean,
  inherit_context?: boolean,
  isolation?: "worktree",
  schedule?: string
}

Prompt

markdown
---
# 不写则取正文第一条非空行,最多 60 字符
description: Review staged git changes
argument-hint: '[focus]'
---

Review staged changes.

Focus: $ARGUMENTS
  • Review $1 with $ARGUMENTS
    • /review 789 XYZ

markdown
<project_context>

Project-specific instructions and guidelines:

<project_instructions path="/path/to/AGENTS.md">
...文件内容...
</project_instructions>

</project_context>

<available_skills>
<skill>
<name>pi-dev-guide</name>
<description>Use when modifying...</description>
<location>/path/to/SKILL.md</location>
</skill>
</available_skills>

<skill name="foo" location="/path/to/SKILL.md">
References are relative to /path/to/skill-dir.

...SKILL.md 正文,去掉 frontmatter...
</skill>

args

Version

v0.74

  • repo 变更为 badlogic/pi-mono -> earendil-works/pi
  • npm @mariozechner/pi-coding-agent -> @earendil-works/pi-coding-agent
bash
pi update
pi update --self

FAQ

bash
# 修复会话 cwd
cd /new/project/path
pi --fork /path/to/old/session.jsonl

图片输入

text
Current model does not support images. The image will be omitted from this request.

配置模型

json
{
  "input": ["text", "image"]
}

关联信息

反向链接、本文链接的其他页面和外部资料。

References

GitHub16 条
其他外链2 条
最近更新commit 2c5cb2fEdit

On this page