diff --git a/desktop/public/harness-logos/CREDITS.md b/desktop/public/harness-logos/CREDITS.md
index 716c43e1ae3..c6ac2c17dbf 100644
--- a/desktop/public/harness-logos/CREDITS.md
+++ b/desktop/public/harness-logos/CREDITS.md
@@ -15,6 +15,7 @@ license permits redistribution.
| `omp.svg` | [can1357/oh-my-pi](https://github.com/can1357/oh-my-pi) | `667111575ebba136dadfd6989379e7f67e0d40d9` | MIT © 2025 Mario Zechner; © 2025–2026 Can Bölük | `assets/icon.svg` | None |
| `kimi.png` | [MoonshotAI/kimi-cli](https://github.com/MoonshotAI/kimi-cli) | `4a550effdfcb29a25a5d325bf935296cc50cd417` | Apache-2.0; NOTICE: Kimi Code CLI © 2025 Moonshot AI | `web/public/logo.png` | None |
| `grok.svg` | [SpaceXAI brand guidelines](https://x.ai/legal/brand-guidelines) | Retrieved 2026-07-25 | xAI Brand Guidelines: marks may be used to accurately refer to xAI or its services; logos must be used exactly as provided | `SpaceXAI_Grok_Assets.zip` → `Grok_Logomark_Dark.svg` | None |
+| `pfterminal.svg` | [agtico/PfTerminal](https://github.com/agtico/PfTerminal) | `5731f16` | Apache-2.0 | `docs/assets/images/pfterminal-logo.svg` | Extracted the square Post Fiat glyph from the wide wordmark (the full lockup is 720×220 and would letterbox to nothing in a 32px square); dropped the outer frame and both text runs, retargeted the viewBox to the glyph's own 136×136 box, and renamed the glow filter id to avoid collisions when inlined. Colours unchanged; the mark carries its own dark plate so it stays legible in both app themes |
## Inline SVG marks (`RUNTIME_MARKS`)
diff --git a/desktop/public/harness-logos/pfterminal.svg b/desktop/public/harness-logos/pfterminal.svg
new file mode 100644
index 00000000000..d53ba2e38f9
--- /dev/null
+++ b/desktop/public/harness-logos/pfterminal.svg
@@ -0,0 +1,12 @@
+
diff --git a/desktop/src-tauri/src/managed_agents/discovery/presets.rs b/desktop/src-tauri/src/managed_agents/discovery/presets.rs
index d86e5f33f05..601240f4979 100644
--- a/desktop/src-tauri/src/managed_agents/discovery/presets.rs
+++ b/desktop/src-tauri/src/managed_agents/discovery/presets.rs
@@ -178,6 +178,15 @@ pub(super) const PRESET_HARNESSES: &[PresetHarness] = &[
Gateway's own environment separately.",
underlying_cli: None,
},
+ PresetHarness {
+ id: "pfterminal",
+ label: "PFTerminal",
+ command: "pfterminal-acp",
+ args: &[],
+ install_instructions_url: "https://github.com/agtico/PfTerminal",
+ install_hint: "Buzz talks to PFTerminal through the pfterminal-acp adapter, which ships with PFTerminal and relies on the codex-acp bridge. Install PFTerminal, then install the bridge with `npm install -g @agentclientprotocol/codex-acp`, so the pfterminal-acp command is on your PATH.",
+ underlying_cli: Some("pfterminal"),
+ },
];
/// Return preset definitions for the spawn/readiness registry.
diff --git a/desktop/src/features/onboarding/ui/RuntimeIcon.tsx b/desktop/src/features/onboarding/ui/RuntimeIcon.tsx
index 5b247c31f73..d60c5168945 100644
--- a/desktop/src/features/onboarding/ui/RuntimeIcon.tsx
+++ b/desktop/src/features/onboarding/ui/RuntimeIcon.tsx
@@ -25,6 +25,7 @@ export const PRESET_LOGOS: Record = {
amp: "/harness-logos/amp.png",
hermes: "/harness-logos/hermes.png",
openclaw: "/harness-logos/openclaw.svg",
+ pfterminal: "/harness-logos/pfterminal.svg",
};
function isBuzzRuntime(runtime: AcpRuntimeCatalogEntry): boolean {
diff --git a/desktop/src/features/settings/ui/harnessCatalogCopy.ts b/desktop/src/features/settings/ui/harnessCatalogCopy.ts
index 9a71ff70f92..d7741bef15c 100644
--- a/desktop/src/features/settings/ui/harnessCatalogCopy.ts
+++ b/desktop/src/features/settings/ui/harnessCatalogCopy.ts
@@ -43,6 +43,10 @@ const HARNESS_DESCRIPTIONS: Record = {
// Sources: https://github.com/openclaw/openclaw,
// https://docs.openclaw.ai/start/getting-started
openclaw: "A personal AI assistant that runs on your own devices.",
+ // Source: https://github.com/agtico/PfTerminal — "an open-source,
+ // multi-provider coding terminal built on the Codex CLI".
+ pfterminal:
+ "An open-source, multi-provider coding terminal built on the Codex CLI.",
};
/**