diff --git a/packages/coding-agent/CHANGELOG.md b/packages/coding-agent/CHANGELOG.md index ac58dcd9..1f8657e3 100644 --- a/packages/coding-agent/CHANGELOG.md +++ b/packages/coding-agent/CHANGELOG.md @@ -10,6 +10,8 @@ ### Added +- Display loaded skills on startup in interactive mode + ### Fixed ### Changed diff --git a/packages/coding-agent/src/modes/interactive/interactive-mode.ts b/packages/coding-agent/src/modes/interactive/interactive-mode.ts index 9fae0e05..3f73bee4 100644 --- a/packages/coding-agent/src/modes/interactive/interactive-mode.ts +++ b/packages/coding-agent/src/modes/interactive/interactive-mode.ts @@ -30,6 +30,7 @@ import { isBashExecutionMessage } from "../../core/messages.js"; import { invalidateOAuthCache } from "../../core/model-config.js"; import { listOAuthProviders, login, logout, type SupportedOAuthProvider } from "../../core/oauth/index.js"; import { getLatestCompactionEntry, SUMMARY_PREFIX, SUMMARY_SUFFIX } from "../../core/session-manager.js"; +import { loadSkills } from "../../core/skills.js"; import { loadProjectContextFiles } from "../../core/system-prompt.js"; import type { TruncationResult } from "../../core/tools/truncate.js"; import { getChangelogPath, parseChangelog } from "../../utils/changelog.js"; @@ -289,6 +290,14 @@ export class InteractiveMode { this.chatContainer.addChild(new Spacer(1)); } + // Show loaded skills + const skills = loadSkills(); + if (skills.length > 0) { + const skillList = skills.map((s) => theme.fg("dim", ` ${s.filePath}`)).join("\n"); + this.chatContainer.addChild(new Text(theme.fg("muted", "Loaded skills:\n") + skillList, 0, 0)); + this.chatContainer.addChild(new Spacer(1)); + } + const hookRunner = this.session.hookRunner; if (!hookRunner) { return; // No hooks loaded