mirror of
https://github.com/badlogic/pi-mono.git
synced 2026-11-05 23:37:25 +00:00
Adds a built-in mcp extension that reads mcp.json (agent dir, and .pi/mcp.json for trusted projects) in the common mcpServers format, connects stdio and streamable HTTP servers at session start, and registers their tools as mcp__<server>__<tool>. Calls go through the regular tool pipeline, so hooks and permission extensions apply. /mcp shows server status. By default a server's tools are codemode-only: the new nestedOnly tool flag keeps them executable for other tools but out of the model's tool declarations, and pi activates the codemode tool for them. "exposure": "direct" declares them to the model as well. structuredContent from tools with an outputSchema reaches codemode scripts as data.
47 lines
3.2 KiB
Markdown
47 lines
3.2 KiB
Markdown
# Configuration
|
||
|
||
Pi supports user-level and project configuration. User-level configuration lives in the agent directory, which defaults to `~/.pi/agent`. Project configuration lives in `.pi` under the working directory and loads after [project trust](security.md#understand-project-trust) is granted. The only exception is `sessionDir`, which Pi reads before resolving trust so it can locate sessions.
|
||
|
||
In interactive mode, use `/settings` to change common preferences. For other options, ask Pi to update the configuration or edit the relevant files directly. Run `/reload` after manually changing settings, keybindings, instructions, or resources.
|
||
|
||
## Agent directory
|
||
|
||
The agent directory is shown as `<agent-dir>` below. Set its location with the `PI_CODING_AGENT_DIR` environment variable or the SDK's [`agentDir`](sdk.md) option.
|
||
|
||
| Path | Responsibility |
|
||
|---|---|
|
||
| `<agent-dir>/settings.json` | User-level [settings](settings.md), including preferences, defaults, resource paths, and Pi package declarations. |
|
||
| `<agent-dir>/keybindings.json` | Custom terminal UI and application [keybindings](keybindings.md). |
|
||
| `<agent-dir>/mcp.json` | [MCP servers](mcp.md) available in every project. |
|
||
| `<agent-dir>/models.json` | [Compatible endpoints, models, and model overrides](models.md#configure-a-compatible-endpoint). |
|
||
| `<agent-dir>/auth.json` | Saved API keys and OAuth credentials. |
|
||
| `<agent-dir>/AGENTS.override.md`, `AGENTS.md`, `AGENTS.MD`, `CLAUDE.md`, or `CLAUDE.MD` | User instructions applied across working directories. |
|
||
| `<agent-dir>/SYSTEM.md` | Replaces Pi’s default system prompt. |
|
||
| `<agent-dir>/APPEND_SYSTEM.md` | Adds instructions to Pi’s system prompt. |
|
||
| `<agent-dir>/extensions/` | User [extensions](extensions.md). |
|
||
| `<agent-dir>/skills/` | User [skills](skills.md) and supporting files. |
|
||
| `<agent-dir>/prompts/` | User [prompt templates](prompt-templates.md) exposed as slash commands. |
|
||
| `<agent-dir>/themes/` | User [theme](themes.md) files. |
|
||
|
||
## Project `.pi` directory
|
||
|
||
| Path | Responsibility |
|
||
|---|---|
|
||
| `.pi/settings.json` | Project-level [settings](settings.md), resource paths, and Pi package declarations. |
|
||
| `.pi/mcp.json` | Project [MCP servers](mcp.md). |
|
||
| `.pi/SYSTEM.md` | Replaces the system prompt for the project. |
|
||
| `.pi/APPEND_SYSTEM.md` | Adds project-specific instructions to the system prompt. |
|
||
| `.pi/extensions/` | Project extensions. |
|
||
| `.pi/skills/` | Project skills and supporting files. |
|
||
| `.pi/prompts/` | Project prompt templates exposed as slash commands. |
|
||
| `.pi/themes/` | Project theme files. |
|
||
|
||
For `SYSTEM.md` and `APPEND_SYSTEM.md`, the trusted project file takes precedence over the corresponding agent-directory file. Files with the same name are not combined.
|
||
|
||
## Context files
|
||
|
||
Context files are separate from project `.pi` configuration. Pi loads them from the agent directory, the working directory, and its parent directories. A context file applies whenever Pi runs in its directory or anywhere below it.
|
||
|
||
An `AGENTS.override.md` replaces `AGENTS.md` or `CLAUDE.md` only in the same directory. It does not suppress context files from the agent directory or other directories.
|
||
|
||
Context-file discovery does not require project trust.
|