pi-using
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChinesePi — Using & Customizing
Pi — 使用与自定义
Two halves of "using pi":
| Concern | Section |
|---|---|
| Workspace, sessions, /commands, providers, models, tmux/Termux/Windows | Workspace |
| Themes, keybindings, prompt templates, SYSTEM.md overrides | Customization |
Workspace
工作区
Pi CLI and workspace
Pi CLI与工作区
Answer only from sources listed below. If something is not in the tree, say you cannot confirm from the corpus.
pi-mono/仅从下方列出的源文件中获取答案。如果内容不在该目录结构中,请说明无法从现有资料中确认。
pi-mono/Grounding (read in order)
参考依据(按顺序阅读)
- — product surface, commands, customization.
pi-mono/packages/coding-agent/README.md - — skill locations,
pi-mono/packages/coding-agent/docs/skills.md, frontmatter, collisions./skill:name - — settings locations and keys.
pi-mono/packages/coding-agent/docs/settings.md - — maintainer rules when editing pi-mono itself.
pi-mono/AGENTS.md - — auto-compaction triggers, cut-point algorithm,
pi-mono/packages/coding-agent/docs/compaction.md/reserveTokenssettings, chained compactions, branch summarization.keepRecentTokens - — JSONL session format,
pi-mono/packages/coding-agent/docs/session.mdpaths, entry types (message, compaction, branch_summary, custom, label),~/.pi/agent/sessions/assembly.buildSessionContext() - —
pi-mono/packages/coding-agent/docs/tree.mdvs/tree, branch navigation, summarization options, tree UI keybindings./fork - — subscription OAuth (
pi-mono/packages/coding-agent/docs/providers.md), API-key providers,/login, env-var credential table, cloud providers (Azure, Bedrock, Vertex).auth.json - —
pi-mono/packages/coding-agent/docs/models.mdfor Ollama/vLLM/LM Studio,models.jsonflags,compat, provider-level config.modelOverrides - — extension-registered providers via
pi-mono/packages/coding-agent/docs/custom-provider.md, OAuth flows, proxy patterns.registerProvider() - — Kitty keyboard protocol, Ghostty/iTerm/terminal keybinding caveats.
pi-mono/packages/coding-agent/docs/terminal-setup.md - — tmux
pi-mono/packages/coding-agent/docs/tmux.md/extended-keysso modified keys work inside pi.csi-u - — Windows bash discovery order (
pi-mono/packages/coding-agent/docs/windows.mdsetting, Git Bash, PATH).shellPath - — running pi on Android via Termux (install, clipboard, storage).
pi-mono/packages/coding-agent/docs/termux.md - — non-interactive bash and
pi-mono/packages/coding-agent/docs/shell-aliases.mdto expand aliases from dotfiles.shellCommandPrefix - — local development setup,
pi-mono/packages/coding-agent/docs/development.md, fork/rebrand viapi-test.sh, test commands.piConfig - Implementation (for precedence and prompt wiring):
- —
pi-mono/packages/coding-agent/src/core/package-manager.tscomment block (ordering intent).resourcePrecedenceRank - —
pi-mono/packages/coding-agent/src/core/resource-loader.tsskill path merge (reload(),cliEnabledSkills,enabledSkills).additionalSkillPaths - —
pi-mono/packages/coding-agent/src/core/skills.ts,loadSkills, name collision handling.formatSkillsForPrompt - — default harness text and
pi-mono/packages/coding-agent/src/core/system-prompt.tsgate for skills XML.hasRead - —
pi-mono/packages/coding-agent/src/core/agent-session.tsinlines_expandSkillCommandbody./skill:name
- §Editor —
pi-mono/packages/coding-agent/README.mdfuzzy-search, Tab completion, Ctrl+V image paste,@/!bash commands.!! - §Message Queue — steering (Enter) vs follow-up (Alt+Enter),
pi-mono/packages/coding-agent/README.md/steeringMode/followUpModesettings.transport - §Modes, §CLI Reference — interactive,
pi-mono/packages/coding-agent/README.md/-p,--print,--mode json, piped stdin.--mode rpc - §CLI Reference — full flag table,
pi-mono/packages/coding-agent/README.md,@files,--tools,--no-tools,--no-extensions,--no-skills,--no-prompt-templates, resource control.--no-themes - §Environment Variables —
pi-mono/packages/coding-agent/README.md,PI_CODING_AGENT_DIR,PI_PACKAGE_DIR,PI_SKIP_VERSION_CHECK,PI_CACHE_RETENTION/VISUAL.EDITOR - §Philosophy — what core intentionally omits (no MCP, no sub-agents, no permission popups, no plan mode, no built-in todos, no background bash); everything buildable via extensions.
pi-mono/packages/coding-agent/README.md
- —— 产品界面、命令、自定义配置。
pi-mono/packages/coding-agent/README.md - —— 技能位置、
pi-mono/packages/coding-agent/docs/skills.md、前置内容、命名冲突。/skill:name - —— 设置文件位置及配置项。
pi-mono/packages/coding-agent/docs/settings.md - —— 维护者编辑pi-mono时需遵循的规则。
pi-mono/AGENTS.md - —— 自动压缩触发条件、分割点算法、
pi-mono/packages/coding-agent/docs/compaction.md/reserveTokens设置、链式压缩、分支摘要。keepRecentTokens - —— JSONL会话格式、
pi-mono/packages/coding-agent/docs/session.md路径、条目类型(消息、压缩、分支摘要、自定义、标签)、~/.pi/agent/sessions/组装逻辑。buildSessionContext() - ——
pi-mono/packages/coding-agent/docs/tree.md与/tree的区别、分支导航、摘要选项、树形UI按键绑定。/fork - —— 订阅OAuth(
pi-mono/packages/coding-agent/docs/providers.md)、API密钥提供商、/login、环境变量凭证表、云提供商(Azure、Bedrock、Vertex)。auth.json - —— 针对Ollama/vLLM/LM Studio的
pi-mono/packages/coding-agent/docs/models.md、models.json标志、compat、提供商级配置。modelOverrides - —— 通过
pi-mono/packages/coding-agent/docs/custom-provider.md注册的扩展提供商、OAuth流程、代理模式。registerProvider() - —— Kitty键盘协议、Ghostty/iTerm/终端按键绑定注意事项。
pi-mono/packages/coding-agent/docs/terminal-setup.md - —— tmux的
pi-mono/packages/coding-agent/docs/tmux.md/extended-keys配置,确保修改后的按键在pi中正常工作。csi-u - —— Windows下bash的发现顺序(
pi-mono/packages/coding-agent/docs/windows.md设置、Git Bash、PATH)。shellPath - —— 通过Termux在Android上运行pi(安装、剪贴板、存储)。
pi-mono/packages/coding-agent/docs/termux.md - —— 非交互式bash及
pi-mono/packages/coding-agent/docs/shell-aliases.md配置,用于从点文件中展开别名。shellCommandPrefix - —— 本地开发环境设置、
pi-mono/packages/coding-agent/docs/development.md、通过pi-test.sh进行复刻/重命名、测试命令。piConfig - 实现细节(优先级及提示词关联):
- ——
pi-mono/packages/coding-agent/src/core/package-manager.ts注释块(优先级顺序定义)。resourcePrecedenceRank - ——
pi-mono/packages/coding-agent/src/core/resource-loader.ts技能路径合并逻辑(reload()、cliEnabledSkills、enabledSkills)。additionalSkillPaths - ——
pi-mono/packages/coding-agent/src/core/skills.ts、loadSkills、命名冲突处理。formatSkillsForPrompt - —— 默认框架文本及技能XML的
pi-mono/packages/coding-agent/src/core/system-prompt.tsgate。hasRead - ——
pi-mono/packages/coding-agent/src/core/agent-session.ts内联_expandSkillCommand内容。/skill:name
- §编辑器 ——
pi-mono/packages/coding-agent/README.md模糊搜索、Tab补全、Ctrl+V图片粘贴、@/!bash命令。!! - §消息队列 —— 引导消息(Enter)与跟进消息(Alt+Enter)的区别、
pi-mono/packages/coding-agent/README.md/steeringMode/followUpMode设置。transport - §模式、§CLI参考 —— 交互式模式、
pi-mono/packages/coding-agent/README.md/-p、--print、--mode json、管道输入。--mode rpc - §CLI参考 —— 完整标志表、
pi-mono/packages/coding-agent/README.md、@files、--tools、--no-tools、--no-extensions、--no-skills、--no-prompt-templates、资源控制。--no-themes - §环境变量 ——
pi-mono/packages/coding-agent/README.md、PI_CODING_AGENT_DIR、PI_PACKAGE_DIR、PI_SKIP_VERSION_CHECK、PI_CACHE_RETENTION/VISUAL。EDITOR - §设计理念 —— 核心刻意省略的功能(无MCP、无子Agent、无权限弹窗、无计划模式、无内置待办事项、无后台bash);所有功能均可通过扩展实现。
pi-mono/packages/coding-agent/README.md
Invariants
固定规则
- Skill name collisions: first registered name wins; later paths emit collision diagnostics (). Path order is assembled in
pi-mono/packages/coding-agent/src/core/skills.tsthen fed toresource-loader.ts.loadSkills - Resource precedence rank (lower = earlier in sorted package-manager lists): project local (0), project auto (1), user local (2), user auto (3), package (4) — .
pi-mono/packages/coding-agent/src/core/package-manager.ts - Merged skill paths: — CLI paths appear before package-manager lists; see
mergePaths([...cliEnabledSkills, ...enabledSkills], additionalSkillPaths).pi-mono/packages/coding-agent/src/core/resource-loader.ts - is appended to the system prompt only when the
<available_skills>tool is among selected tools —read.pi-mono/packages/coding-agent/src/core/system-prompt.ts - Default system prompt already points models at packaged docs paths (,
readmePath, examples) —docsPath. This skill adds workspace and precedence detail, not a duplicate README.pi-mono/packages/coding-agent/src/core/system-prompt.ts - Session format version is v3 (tree-based /
id);parentIdassembles compaction summary + branch summary + messages after the compaction point — seebuildSessionContext.pi-mono/packages/coding-agent/docs/session.md - Compaction cut-point selection avoids splitting tool results; links chained compactions — see
firstKeptEntryId.pi-mono/packages/coding-agent/docs/compaction.md - Credential resolution order: flag >
--api-key> environment variables >auth.jsoncustom keys — seemodels.json.pi-mono/packages/coding-agent/docs/providers.md - SYSTEM.md / APPEND_SYSTEM.md: Replace the default system prompt with (project) or
.pi/SYSTEM.md(global). Append without replacing via~/.pi/agent/SYSTEM.mdat the same locations. Context files and skills are still appended after override —APPEND_SYSTEM.md§Context Files.pi-mono/packages/coding-agent/README.md - Message queue: Enter queues a steering message (delivered between tool calls); Alt+Enter queues a follow-up (delivered after the agent finishes all work). Escape aborts; Alt+Up retrieves queued messages. Settings: and
steeringMode(followUpModedefault vs"one-at-a-time");"all"(transport,"sse","websocket") —"auto"§Message Queue,pi-mono/packages/coding-agent/README.md.pi-mono/packages/coding-agent/docs/settings.md - Built-in tools: Default four: ,
read,bash,edit. Additional available:write,grep,find. Control vials(e.g.,--tools <list>for read-only) and--tools read,grep,find,ls(disables all built-in; extension tools still work) —--no-tools§Tool Options.pi-mono/packages/coding-agent/README.md - Editor features: fuzzy-searches project files; Tab completes paths; Ctrl+V pastes images (Alt+V on Windows);
@runs and sends output to LLM;!commandruns without sending —!!command§Editor,pi-mono/packages/coding-agent/README.md.pi-mono/packages/coding-agent/docs/keybindings.md - Print mode: /
-pfor non-interactive stdout output. Reads piped stdin:--print. Combine withcat README.md | pi -p "Summarize"for JSON-line output —--mode json§Modes.pi-mono/packages/coding-agent/README.md - CLI session flags: /
-c(most recent session),--continue/-r(browse/select),--resume(specific file or partial UUID),--session <path>(fork from CLI),--fork <path>(ephemeral),--no-session(custom storage) —--session-dir <dir>§Session Options.pi-mono/packages/coding-agent/README.md - @files CLI arguments: Prefix files with on CLI:
@,pi @screenshot.png "What's in this?". Included as part of the initial message —pi @code.ts @test.ts "Review"§File Arguments.pi-mono/packages/coding-agent/README.md - Resource control flags: ,
--no-extensions,--no-skills,--no-prompt-templatesdisable auto-discovery.--no-themes/-e,--extension,--skill,--prompt-templatefor explicit loading. Combine--themewith explicit flags for exact control (e.g.,--no-*) —--no-extensions -e ./my-ext.ts§Resource Options.pi-mono/packages/coding-agent/README.md - Model shorthand: (e.g.,
--model provider/id),openai/gpt-4o(e.g.,--model name:thinking),sonnet:highfor Ctrl+P cycling,--models <patterns>—--list-models§Model Options.pi-mono/packages/coding-agent/README.md - Slash commands (full interactive list): ,
/login,/logout,/model,/scoped-models,/settings,/resume,/new,/name,/session,/tree,/fork,/compact,/copy,/export,/share,/reload,/hotkeys,/changelog. Extensions register custom commands; skills expose/quit; prompt templates expand via/skill:name—/templatename§Commands.pi-mono/packages/coding-agent/README.md - Environment variables: (override config dir),
PI_CODING_AGENT_DIR(override package dir),PI_PACKAGE_DIR,PI_SKIP_VERSION_CHECK(PI_CACHE_RETENTIONfor extended prompt cache),long/VISUAL(external editor for Ctrl+G) —EDITOR§Environment Variables.pi-mono/packages/coding-agent/README.md - Philosophy (what pi intentionally omits): No MCP (use CLI tools or extensions), no sub-agents (use tmux or extensions), no permission popups (use container or extension), no plan mode (use files or extension), no built-in to-dos, no background bash (use tmux). Everything is buildable via extensions — §Philosophy.
pi-mono/packages/coding-agent/README.md
- 技能命名冲突:先注册的名称优先;后续路径会触发冲突诊断()。路径顺序由
pi-mono/packages/coding-agent/src/core/skills.ts组装后传入resource-loader.ts。loadSkills - 资源优先级排名(数值越小,在包管理器列表中越靠前):项目本地(0)、项目自动(1)、用户本地(2)、用户自动(3)、包内置(4)—— 详见。
pi-mono/packages/coding-agent/src/core/package-manager.ts - 合并后的技能路径:—— CLI路径出现在包管理器列表之前;详见
mergePaths([...cliEnabledSkills, ...enabledSkills], additionalSkillPaths)。pi-mono/packages/coding-agent/src/core/resource-loader.ts - 仅在**
<available_skills>工具**被选中时才会追加到系统提示词中 —— 详见read。pi-mono/packages/coding-agent/src/core/system-prompt.ts - 默认系统提示词已指向打包文档路径(、
readmePath、示例)—— 详见docsPath。本技能补充工作区及优先级细节,并非重复README内容。pi-mono/packages/coding-agent/src/core/system-prompt.ts - 会话格式版本为v3(基于树形结构的/
id);parentId会组装压缩摘要 + 分支摘要 + 压缩点之后的消息 —— 详见buildSessionContext。pi-mono/packages/coding-agent/docs/session.md - 压缩分割点选择会避免拆分工具结果;关联链式压缩 —— 详见
firstKeptEntryId。pi-mono/packages/coding-agent/docs/compaction.md - 凭证解析顺序:标志 >
--api-key> 环境变量 >auth.json自定义密钥 —— 详见models.json。pi-mono/packages/coding-agent/docs/providers.md - SYSTEM.md / APPEND_SYSTEM.md:使用项目目录下的或全局的
.pi/SYSTEM.md替换默认系统提示词。使用相同位置的~/.pi/agent/SYSTEM.md可追加内容而非替换。覆盖后仍会追加上下文文件和技能 —— 详见APPEND_SYSTEM.md§上下文文件。pi-mono/packages/coding-agent/README.md - 消息队列:Enter键将消息加入引导队列(在工具调用之间传递);Alt+Enter将消息加入跟进队列(在Agent完成所有工作后传递)。Escape键中止;Alt+Up键检索已排队消息。设置项:和
steeringMode(默认followUpModevs"one-at-a-time");"all"(transport、"sse"、"websocket")—— 详见"auto"§消息队列、pi-mono/packages/coding-agent/README.md。pi-mono/packages/coding-agent/docs/settings.md - 内置工具:默认四个工具:、
read、bash、edit。额外可用工具:write、grep、find。可通过ls(例如--tools <列表>启用只读模式)和--tools read,grep,find,ls(禁用所有内置工具;扩展工具仍可使用)控制 —— 详见--no-tools§工具选项。pi-mono/packages/coding-agent/README.md - 编辑器功能:模糊搜索项目文件;Tab键补全路径;Ctrl+V粘贴图片(Windows下为Alt+V);
@运行命令并将输出发送给LLM;!command运行命令但不发送输出 —— 详见!!command§编辑器、pi-mono/packages/coding-agent/README.md。pi-mono/packages/coding-agent/docs/keybindings.md - 打印模式:/
-p用于非交互式标准输出。支持管道输入:--print。结合cat README.md | pi -p "Summarize"可输出JSON行格式 —— 详见--mode json§模式。pi-mono/packages/coding-agent/README.md - CLI会话标志:/
-c(最近会话)、--continue/-r(浏览/选择会话)、--resume(指定文件或部分UUID)、--session <路径>(从CLI复刻会话)、--fork <路径>(临时会话)、--no-session(自定义存储目录)—— 详见--session-dir <目录>§会话选项。pi-mono/packages/coding-agent/README.md - @files CLI参数:在CLI中用前缀指定文件:
@、pi @screenshot.png "What's in this?"。文件内容会作为初始消息的一部分传入 —— 详见pi @code.ts @test.ts "Review"§文件参数。pi-mono/packages/coding-agent/README.md - 资源控制标志:、
--no-extensions、--no-skills、--no-prompt-templates禁用自动发现。--no-themes/-e、--extension、--skill、--prompt-template用于显式加载。结合--theme与显式标志可实现精确控制(例如--no-*)—— 详见--no-extensions -e ./my-ext.ts§资源选项。pi-mono/packages/coding-agent/README.md - 模型简写:(例如
--model provider/id)、openai/gpt-4o(例如--model name:thinking)、sonnet:high用于Ctrl+P循环切换、--models <模式>列出所有模型 —— 详见--list-models§模型选项。pi-mono/packages/coding-agent/README.md - 斜杠命令(完整交互式列表):、
/login、/logout、/model、/scoped-models、/settings、/resume、/new、/name、/session、/tree、/fork、/compact、/copy、/export、/share、/reload、/hotkeys、/changelog。扩展可注册自定义命令;技能可暴露/quit;提示词模板可通过/skill:name展开 —— 详见/templatename§命令。pi-mono/packages/coding-agent/README.md - 环境变量:(覆盖配置目录)、
PI_CODING_AGENT_DIR(覆盖包目录)、PI_PACKAGE_DIR、PI_SKIP_VERSION_CHECK(PI_CACHE_RETENTION表示扩展提示词缓存)、long/VISUAL(Ctrl+G调用的外部编辑器)—— 详见EDITOR§环境变量。pi-mono/packages/coding-agent/README.md - 设计理念(pi刻意省略的功能):无MCP(使用CLI工具或扩展)、无子Agent(使用tmux或扩展)、无权限弹窗(使用容器或扩展)、无计划模式(使用文件或扩展)、无内置待办事项、无后台bash(使用tmux)。所有功能均可通过扩展实现 —— 详见§设计理念。
pi-mono/packages/coding-agent/README.md
Workflows
工作流程
- Find where a skill is discovered: Walk locations, then cross-check
docs/skills.mdauto-discovery andpackage-manager.tssettings.jsonarrays.skills - Explain shadowing: Combine ordering with
resourcePrecedenceRank/mergePaths"first name wins" using file citations only.loadSkills - User forced load: expansion —
/skill:name.pi-mono/packages/coding-agent/src/core/agent-session.ts - Debug compaction: Read algorithm; check
compaction.md/reserveTokensinkeepRecentTokens; trace chained compactions viasettings.json.firstKeptEntryId - Add custom model: Follow minimal example for Ollama/vLLM/LM Studio; check
models.mdflags for non-standard OpenAI-compatible servers.compat - Session archaeology: Parse using the switch example in
.jsonl; navigate branches viasession.mdper/tree.tree.md - Configure providers: Check for subscription OAuth (
providers.md) vs API-key flow; see/loginlayout and env-var table.auth.json - Platform setup: For tmux, read (
tmux.md); for Windows,extended-keys(windows.md); for Android,shellPath; for terminal quirks,termux.md.terminal-setup.md - Shell aliases: Read for
shell-aliases.mdto make pi's bash tool see dotfile aliases.shellCommandPrefix - Develop pi from source: Read for clone/build/test and
development.mdrunner.pi-test.sh - Control tools: Use for read-only mode;
--tools read,grep,find,lsto disable all built-in tools (extension tools still work). Default is--no-tools.read,bash,edit,write - Non-interactive mode: or
pi -p "prompt"for CI/scripts. Combine withcat file | pi -p "Summarize"for machine-readable JSON-line output.--mode json - Custom system prompt: Place in a project or
.pi/SYSTEM.mdglobally to replace the default prompt. Use~/.pi/agent/SYSTEM.mdat the same locations to append without replacing.APPEND_SYSTEM.md
- 查找技能发现位置:查看中的位置,然后交叉验证
docs/skills.md中的自动发现逻辑和package-manager.ts中的settings.json数组。skills - 解释阴影覆盖:结合排序与
resourcePrecedenceRank/mergePaths的“先注册名称优先”规则,仅引用文件说明。loadSkills - 用户强制加载:展开逻辑 —— 详见
/skill:name。pi-mono/packages/coding-agent/src/core/agent-session.ts - 调试压缩功能:阅读中的算法;检查
compaction.md中的settings.json/reserveTokens设置;通过keepRecentTokens追踪链式压缩。firstKeptEntryId - 添加自定义模型:按照中的最简示例配置Ollama/vLLM/LM Studio;为非标准OpenAI兼容服务器检查
models.md标志。compat - 会话溯源:使用中的示例解析
session.md文件;通过.jsonl按照/tree中的说明导航分支。tree.md - 配置提供商:查看中的订阅OAuth(
providers.md)与API密钥流程;参考/login结构和环境变量表。auth.json - 平台设置:tmux参考(
tmux.md);Windows参考extended-keys(windows.md);Android参考shellPath;终端兼容性参考termux.md。terminal-setup.md - Shell别名:阅读中的
shell-aliases.md配置,使pi的bash工具能识别点文件中的别名。shellCommandPrefix - 从源码开发pi:阅读中的克隆/构建/测试步骤及
development.md运行器。pi-test.sh - 控制工具:使用启用只读模式;使用
--tools read,grep,find,ls禁用所有内置工具(扩展工具仍可使用)。默认工具为--no-tools。read,bash,edit,write - 非交互式模式:或
pi -p "prompt"适用于CI/脚本场景。结合cat file | pi -p "Summarize"可输出机器可读的JSON行格式。--mode json - 自定义系统提示词:在项目目录下创建或全局创建
.pi/SYSTEM.md以替换默认提示词。使用相同位置的~/.pi/agent/SYSTEM.md可追加自定义指令而非替换。APPEND_SYSTEM.md
Anti-patterns
反模式
- Do not invent MCP or sub-agent behavior as "built into core"; check philosophy section for what core omits.
pi-mono/packages/coding-agent/README.md - Do not claim exact merge behavior without citing and
resource-loader.ts.skills.ts - Do not describe compaction cut-point behavior from memory; cite algorithm section.
compaction.md - Do not guess credential resolution order; cite for the exact precedence.
providers.md
- 不要将MCP或子Agent行为描述为“核心内置”;查看中的设计理念部分了解核心省略的功能。
pi-mono/packages/coding-agent/README.md - 不要在未引用和
resource-loader.ts的情况下描述合并行为。skills.ts - 不要凭记忆描述压缩分割点行为;引用中的算法部分。
compaction.md - 不要猜测凭证解析顺序;引用中的精确优先级。
providers.md
Customization
自定义
Pi Customization
Pi自定义配置
Grounding
参考依据
- — theme JSON format (
pi-mono/packages/coding-agent/docs/themes.md, optionalname, required 51varstokens), locations (colors,~/.pi/agent/themes/*.json, packages, settings, CLI.pi/themes/*.json), hot reload, color value formats.--theme - — customization via
pi-mono/packages/coding-agent/docs/keybindings.md, namespaced action IDs (~/.pi/agent/keybindings.json,tui.input.submit,tui.editor.cursorUp, etc.), key format (app.interrupt), full action tables.modifier+key - — Markdown snippets invoked via
pi-mono/packages/coding-agent/docs/prompt-templates.md, locations (/name,~/.pi/agent/prompts/*.md, packages), positional arguments (.pi/prompts/*.md,$1,$2,$@), YAML frontmatter with optional${@:N}.description - — Context Files section for
pi-mono/packages/coding-agent/README.md,.pi/SYSTEM.md, and~/.pi/agent/SYSTEM.md.APPEND_SYSTEM.md - — the overall
pi-mono/packages/coding-agent/docs/settings.mdstructure for tying these together.settings.json
- —— 主题JSON格式(
pi-mono/packages/coding-agent/docs/themes.md、可选name、必填51个vars令牌)、位置(colors、~/.pi/agent/themes/*.json、包内置、设置、CLI.pi/themes/*.json)、热重载、颜色值格式。--theme - —— 通过
pi-mono/packages/coding-agent/docs/keybindings.md自定义、命名空间化的动作ID(~/.pi/agent/keybindings.json、tui.input.submit、tui.editor.cursorUp等)、按键格式(app.interrupt)、完整动作表。modifier+key - —— 通过
pi-mono/packages/coding-agent/docs/prompt-templates.md调用的Markdown片段、位置(/name、~/.pi/agent/prompts/*.md、包内置)、位置参数(.pi/prompts/*.md、$1、$2、$@)、带可选${@:N}的YAML前置内容。description - —— 上下文文件章节,介绍
pi-mono/packages/coding-agent/README.md、.pi/SYSTEM.md和~/.pi/agent/SYSTEM.md。APPEND_SYSTEM.md - —— 整合所有配置的
pi-mono/packages/coding-agent/docs/settings.md整体结构。settings.json
Invariants
固定规则
- Theme Format: Themes define (required, unique), optional
namefor reusable color aliases, and all 51varstokens. There is nocolors,type,ui, orsyntaxtop-level key — everything is underborders. Loaded fromcolors(global) and~/.pi/agent/themes/*.json(project)..pi/themes/*.json - Keybinding Config: Keybindings are configured in (not
~/.pi/agent/keybindings.json). IDs are namespaced:settings.json(submit),tui.input.submit,tui.editor.cursorUp, etc. Runapp.interruptto apply changes without restarting./reload - Prompt Template Arguments: Templates use ,
$1,$2,$@positional syntax — not${@:N}or{variable}. The filename (minus<include>) becomes the.mdcommand./name - System Prompt Override: Replace the default system prompt with (project) or
.pi/SYSTEM.md(global). Use~/.pi/agent/SYSTEM.mdto append instead of replace. Context files and skills are still appended after the override.APPEND_SYSTEM.md
- 主题格式:主题需定义(必填,唯一)、可选的
name(用于可复用颜色别名),以及全部51个vars令牌。不存在colors、type、ui或syntax顶级键 —— 所有内容均在borders下。加载位置为colors(全局)和~/.pi/agent/themes/*.json(项目)。.pi/themes/*.json - 按键绑定配置:按键绑定在中配置(而非
~/.pi/agent/keybindings.json)。ID为命名空间格式:settings.json(提交)、tui.input.submit、tui.editor.cursorUp等。运行app.interrupt可无需重启应用即可应用更改。/reload - 提示词模板参数:模板使用、
$1、$2、$@位置语法 —— 不支持${@:N}或{variable}语法。文件名(去除<include>后缀)即为.md命令。/name - 系统提示词覆盖:使用项目目录下的或全局的
.pi/SYSTEM.md替换默认系统提示词。使用~/.pi/agent/SYSTEM.md可追加内容而非替换。覆盖后仍会追加上下文文件和技能。APPEND_SYSTEM.md
Workflows
工作流程
- Create a Theme: Copy from
dark.json, customize color values under thepackages/coding-agent/src/modes/interactive/theme/key, place it incolors, and select via~/.pi/agent/themes/or/settings.pi --theme <name> - Override Keys: Create or edit mapping action IDs to key arrays (e.g.,
~/.pi/agent/keybindings.json). Run"tui.input.submit": ["ctrl+enter"]to apply./reload - Create a Prompt Template: Write a file in
.mdwith optional YAML frontmatter (~/.pi/agent/prompts/); usedescription,$1for arguments. Invoke with$@in the editor./filename - Override the System Prompt: Create in the project or
.pi/SYSTEM.mdglobally to replace the default system prompt. Use~/.pi/agent/SYSTEM.mdat the same locations if you want to append custom instructions instead.APPEND_SYSTEM.md
- 创建主题:复制中的
packages/coding-agent/src/modes/interactive/theme/,自定义dark.json下的颜色值,将其放入colors,然后通过~/.pi/agent/themes/或/settings选择。pi --theme <名称> - 覆盖按键绑定:创建或编辑,将动作ID映射到按键数组(例如
~/.pi/agent/keybindings.json)。运行"tui.input.submit": ["ctrl+enter"]应用更改。/reload - 创建提示词模板:在中创建
~/.pi/agent/prompts/文件,可添加可选的YAML前置内容(.md);使用description、$1定义参数。在编辑器中通过$@调用。/filename - 覆盖系统提示词:在项目目录下创建或全局创建
.pi/SYSTEM.md以替换默认系统提示词。如果希望追加自定义指令而非替换,可使用相同位置的~/.pi/agent/SYSTEM.md。APPEND_SYSTEM.md
Anti-patterns
反模式
- Do not hardcode keybindings into agent component source code — use the configurable namespaces from .
keybindings.md - Do not put keybindings in — keybindings have their own file (
settings.json).~/.pi/agent/keybindings.json - Do not use or
{variable}syntax in prompt templates — the actual syntax is<include src="...">,$1,$@.${@:N}
- 不要将按键绑定硬编码到Agent组件源码中 —— 使用中的可配置命名空间。
keybindings.md - 不要将按键绑定放在中 —— 按键绑定有独立的配置文件(
settings.json)。~/.pi/agent/keybindings.json - 不要在提示词模板中使用或
{variable}语法 —— 正确语法为<include src="...">、$1、$@。${@:N}
See also (related skills — Pi family)
另请参阅(相关技能 — Pi系列)
If your issue relates to:
- extending Pi: TypeScript extensions, npm packages, JSON-RPC SDK, pi_agent_rust internals — check if appropriate.
pi-extending
如果你的问题涉及:
- 扩展Pi:TypeScript扩展、npm包、JSON-RPC SDK、pi_agent_rust内部实现 —— 请查看技能(如有)。
pi-extending
",