feat(coding-agent): add --verbose CLI flag to override quietStartup setting

This commit is contained in:
Sviatoslav Abakumov 2026-01-22 17:02:00 +04:00
parent d89f6e08ce
commit 07e2444b9b
No known key found for this signature in database
5 changed files with 19 additions and 3 deletions

View file

@ -38,6 +38,7 @@ export interface Args {
themes?: string[];
noThemes?: boolean;
listModels?: string | true;
verbose?: boolean;
messages: string[];
fileArgs: string[];
/** Unknown flags (potentially extension flags) - map of flag name to value */
@ -148,6 +149,8 @@ export function parseArgs(args: string[], extensionFlags?: Map<string, { type: "
} else {
result.listModels = true;
}
} else if (arg === "--verbose") {
result.verbose = true;
} else if (arg.startsWith("@")) {
result.fileArgs.push(arg.slice(1)); // Remove @ prefix
} else if (arg.startsWith("--") && extensionFlags) {
@ -211,6 +214,7 @@ ${chalk.bold("Options:")}
--no-themes Disable theme discovery and loading
--export <file> Export session file to HTML and exit
--list-models [search] List available models (with optional fuzzy search)
--verbose Force verbose startup (overrides quietStartup setting)
--help, -h Show this help
--version, -v Show version number

View file

@ -582,7 +582,7 @@ export async function main(args: string[]) {
if (mode === "rpc") {
await runRpcMode(session);
} else if (isInteractive) {
if (scopedModels.length > 0 && !settingsManager.getQuietStartup()) {
if (scopedModels.length > 0 && (parsed.verbose || !settingsManager.getQuietStartup())) {
const modelList = scopedModels
.map((sm) => {
const thinkingStr = sm.thinkingLevel ? `:${sm.thinkingLevel}` : "";
@ -599,6 +599,7 @@ export async function main(args: string[]) {
initialMessage,
initialImages,
initialMessages: parsed.messages,
verbose: parsed.verbose,
});
await mode.run();
} else {

View file

@ -137,6 +137,8 @@ export interface InteractiveModeOptions {
initialImages?: ImageContent[];
/** Additional messages to send after the initial message */
initialMessages?: string[];
/** Force verbose startup (overrides quietStartup setting) */
verbose?: boolean;
}
export class InteractiveMode {
@ -372,7 +374,7 @@ export class InteractiveMode {
this.setupAutocomplete(this.fdPath);
// Add header with keybindings from config (unless silenced)
if (!this.settingsManager.getQuietStartup()) {
if (this.options.verbose || !this.settingsManager.getQuietStartup()) {
const logo = theme.bold(theme.fg("accent", APP_NAME)) + theme.fg("dim", ` v${this.version}`);
// Build startup instructions using keybinding hint helpers
@ -641,7 +643,7 @@ export class InteractiveMode {
}
private showLoadedResources(options?: { extensionPaths?: string[]; force?: boolean }): void {
const shouldShow = options?.force || !this.settingsManager.getQuietStartup();
const shouldShow = options?.force || this.options.verbose || !this.settingsManager.getQuietStartup();
if (!shouldShow) {
return;
}