Replace default Claude Code identity in pi model-identity extension
Strip the built-in preamble so the model identifies as running via pi
rather than duplicating identities.
Assisted-by: Claude Opus 4.6 via pi
diff --git a/.pi/agent/extensions/model-identity.ts b/.pi/agent/extensions/model-identity.ts
index 4c0c6c4b..8dbfd9a0 100644
--- a/.pi/agent/extensions/model-identity.ts
+++ b/.pi/agent/extensions/model-identity.ts
@@ -1,8 +1,9 @@
/**
* Model Identity Extension
*
- * Injects the current model name into the system prompt so the model
- * knows what it's running as (useful for Assisted-by footers, etc.)
+ * 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 "@mariozechner/pi-coding-agent";
@@ -10,8 +11,16 @@ import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
export default function (pi: ExtensionAPI) {
pi.on("before_agent_start", async (event, ctx) => {
const model = ctx.model;
- return {
- systemPrompt: event.systemPrompt + `\n\nYou are running as: ${model.name} (${model.provider}/${model.id})`,
- };
+ 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 };
});
}
diff --git a/.pi/agent/settings.json b/.pi/agent/settings.json
index 02581e30..eeb197aa 100644
--- a/.pi/agent/settings.json
+++ b/.pi/agent/settings.json
@@ -1,5 +1,5 @@
{
- "lastChangelogVersion": "0.54.0",
+ "lastChangelogVersion": "0.55.0",
"defaultProvider": "anthropic",
"defaultModel": "claude-opus-4-6",
"skills": [
diff --git a/Brewfile b/Brewfile
index 6aba2955..2b2dd1c0 100644
--- a/Brewfile
+++ b/Brewfile
@@ -1,46 +1,33 @@
tap "kejadlen/tap", "https://git.kejadlen.dev/alpha/homebrew-tap.git"
brew "ansible"
-brew "bat"
brew "chruby"
brew "curl"
-brew "difftastic"
-brew "direnv"
brew "docker"
brew "dockutil"
brew "entr"
brew "eza"
-brew "fd"
brew "ffmpeg"
-brew "fzf"
brew "git"
-brew "git-lfs"
-brew "hyperfine"
brew "jj"
brew "luarocks"
brew "mas"
brew "restic"
-brew "ripgrep"
brew "ruby-install"
brew "syncthing", restart_service: :changed
brew "terraform"
brew "tmux"
brew "ykman"
-brew "yt-dlp"
brew "z3"
-brew "zoxide"
brew "zsh"
## editor things
brew "ansible-language-server"
brew "ansible-lint"
-brew "efm-langserver"
brew "fnlfmt"
-brew "shellcheck"
brew "terraform-ls"
brew "yaml-language-server"
-brew "yamlfmt"
brew "yamllint"
# install from head