Commit f131aa5994e2
Changed files (1)
dots
pi
agent
extensions
dots/pi/agent/extensions/prompt-editor.ts
@@ -1226,6 +1226,13 @@ function applyEditor(pi: ExtensionAPI, ctx: ExtensionContext) {
// =============================================================================
export default function (pi: ExtensionAPI) {
+ // Register --start-mode CLI flag
+ pi.registerFlag("start-mode", {
+ description: "Start with a specific mode from modes.json",
+ type: "string",
+ default: "",
+ });
+
pi.registerCommand("mode", {
description: "Select prompt mode",
handler: async (args, ctx) => {
@@ -1337,6 +1344,21 @@ export default function (pi: ExtensionAPI) {
customOverlay = null;
installEditorBorderPatch();
+ // Check --start-mode CLI flag — apply mode ephemerally without
+ // persisting provider/model to settings.json so subsequent launches
+ // aren't affected.
+ const startMode = pi.getFlag("start-mode") as string;
+ if (startMode) {
+ const settingsPath = path.join(getGlobalAgentDir(), "settings.json");
+ const savedSettings = await fs.readFile(settingsPath, "utf8").catch(() => null);
+ await applyMode(pi, ctx, startMode);
+ // Restore settings.json so defaultProvider/defaultModel aren't changed
+ if (savedSettings) {
+ await fs.writeFile(settingsPath, savedSettings, "utf8");
+ }
+ return;
+ }
+
const inferred = inferModeFromSelection(ctx, pi, runtime.data);
if (inferred) {
runtime.currentMode = inferred;