1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/**
 * Model Identity Extension
 *
 * Replaces the default Claude Code identity in the system prompt and
 * injects the current model name so the model knows what it's running
 * as (useful for Assisted-by footers, etc.)
 */

import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";

export default function (pi: ExtensionAPI) {
  pi.on("before_agent_start", async (event, ctx) => {
    const model = ctx.model;
    let prompt = event.systemPrompt;

    // Replace the Claude Code identity preamble
    prompt = prompt.replace(
      /You are Claude Code, Anthropic.s official CLI for Claude\.\s*/,
      "",
    );

    prompt += `\n\nYou are running as: ${model.name} (${model.provider}/${model.id}) via pi`;

    return { systemPrompt: prompt };
  });
}