diff --git a/CHANGELOG.md b/CHANGELOG.md index a03039e26..96c2b7f35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## 2026.1.15 (unreleased) +- CLI: set process titles to `clawdbot-` for clearer process listings. - Heartbeat: tighten prompt guidance + suppress duplicate alerts for 24h. (#980) — thanks @voidserf. - Plugins: add provider auth registry + `clawdbot models auth login` for plugin-driven OAuth/API key flows. - Onboarding: switch channels setup to a single-select loop with per-channel actions and disabled hints in the picker. diff --git a/src/cli/program/preaction.ts b/src/cli/program/preaction.ts index 1c16dcd1a..0b5ce458f 100644 --- a/src/cli/program/preaction.ts +++ b/src/cli/program/preaction.ts @@ -11,8 +11,19 @@ import { autoMigrateLegacyState } from "../../infra/state-migrations.js"; import { defaultRuntime } from "../../runtime.js"; import { emitCliBanner } from "../banner.js"; +function setProcessTitleForCommand(actionCommand: Command) { + let current: Command = actionCommand; + while (current.parent && current.parent.parent) { + current = current.parent; + } + const name = current.name(); + if (!name || name === "clawdbot") return; + process.title = `clawdbot-${name}`; +} + export function registerPreActionHooks(program: Command, programVersion: string) { program.hook("preAction", async (_thisCommand, actionCommand) => { + setProcessTitleForCommand(actionCommand); emitCliBanner(programVersion); if (actionCommand.name() === "doctor") return; const snapshot = await readConfigFileSnapshot(); diff --git a/src/entry.ts b/src/entry.ts index b87af64b3..c94b6180c 100644 --- a/src/entry.ts +++ b/src/entry.ts @@ -5,6 +5,8 @@ import process from "node:process"; import { applyCliProfileEnv, parseCliProfileArgs } from "./cli/profile.js"; import { attachChildProcessBridge } from "./process/child-process-bridge.js"; +process.title = "clawdbot"; + if (process.argv.includes("--no-color")) { process.env.NO_COLOR = "1"; process.env.FORCE_COLOR = "0";