diff --git a/desktop/renderer/src/components/UsagePanel.vue b/desktop/renderer/src/components/UsagePanel.vue
index a6f855b..98f68dc 100644
--- a/desktop/renderer/src/components/UsagePanel.vue
+++ b/desktop/renderer/src/components/UsagePanel.vue
@@ -148,21 +148,6 @@
-
-
-
- {{ t("usage.skillsTitle") }}
-
-
-
-
- {{ s }}
-
- {{ t("usage.noSkills") }}
-
-
{{ t("usage.gatewayOffline") }}
@@ -171,9 +156,6 @@
-
@@ -197,11 +179,9 @@ const { isOpen, close } = useUsagePanel();
// --- State ---
const data = ref(null);
-const skills = ref>([]);
const loading = ref(false);
const modelErrored = ref(false);
-const MAX_SKILL_CHIPS = 9;
const agentName = computed(() => t("app.name"));
// --- Derived ---
@@ -265,19 +245,6 @@ const counts = computed(() => {
};
});
-const skillChips = computed(() =>
- skills.value
- .filter((s) => s.enabled !== false)
- .map((s) => s.name || s.id || "")
- .filter(Boolean)
- .slice(0, MAX_SKILL_CHIPS),
-);
-
-const hasMoreSkills = computed(() => {
- const enabledCount = skills.value.filter((s) => s.enabled !== false).length;
- return enabledCount > MAX_SKILL_CHIPS;
-});
-
// --- Helpers ---
function formatTokens(n: number): string {
if (!n && n !== 0) return "—";
@@ -301,24 +268,6 @@ async function loadData() {
}
}
-async function loadSkills() {
- try {
- const res = await (window as any).openclaw.skills.list();
- const all: any[] = [];
- if (Array.isArray(res?.builtin)) all.push(...res.builtin);
- if (Array.isArray(res?.custom)) all.push(...res.custom);
- if (Array.isArray(res?.managed)) all.push(...res.managed);
- skills.value = all;
- } catch {
- skills.value = [];
- }
-}
-
-function goSkillSettings() {
- close();
- router.push("/settings/skills");
-}
-
function goSettings() {
close();
router.push("/settings");
@@ -329,7 +278,6 @@ watch(isOpen, (open) => {
if (open) {
// Delay data loading until slide-in animation completes
setTimeout(() => {
- loadSkills();
if (!gatewayOffline.value) loadData();
}, 300);
}
@@ -340,7 +288,6 @@ const stopGatewayWatch = watch(
(online, wasOnline) => {
if (isOpen.value && online && !wasOnline) {
loadData();
- loadSkills();
}
},
);
@@ -736,54 +683,6 @@ html.dark .usage-backdrop {
color: var(--text-secondary);
}
-/* ── Skill grid ── */
-.skill-grid {
- display: flex;
- flex-wrap: wrap;
- gap: 6px;
-}
-
-.skill-chip {
- padding: 6px 12px;
- background: #f3f3f5;
- border: 1px solid #d8d8d8;
- border-radius: 999px;
- font-size: 12px;
- color: #1d1d1f;
- transition: background 0.15s;
-}
-
-.skill-chip:hover {
- background: var(--bg-tertiary);
-}
-
-.skill-empty {
- font-size: 12px;
- color: var(--text-muted);
- padding: 8px 0;
-}
-
-.view-more-btn {
- margin: 0 var(--usage-drawer-padding) var(--usage-drawer-padding);
- padding: 10px;
- background: var(--bg-secondary);
- border: 1px solid var(--border);
- border-radius: 12px;
- font-size: 13px;
- color: #555;
- flex-shrink: 0;
- cursor: pointer;
- transition:
- background 0.15s,
- color 0.15s;
- font-family: inherit;
-}
-
-.view-more-btn:hover {
- background: var(--bg-tertiary);
- color: var(--text-primary);
-}
-
/* ── Skeleton loading ── */
.skeleton {
display: inline-block;
@@ -904,19 +803,6 @@ html.dark .chip {
color: var(--text-secondary);
}
-html.dark .skill-chip {
- background: var(--bg-tertiary);
- border-color: var(--border);
- color: var(--text-primary);
-}
-html.dark .skill-chip:hover {
- background: var(--bg-hover, var(--bg-tertiary));
-}
-
-html.dark .view-more-btn {
- color: var(--text-secondary);
-}
-
html.dark .gateway-banner {
background: #1a1a1d;
color: #f5f5f5;
diff --git a/desktop/renderer/src/i18n/en-US.ts b/desktop/renderer/src/i18n/en-US.ts
index 579c463..a45d6b4 100644
--- a/desktop/renderer/src/i18n/en-US.ts
+++ b/desktop/renderer/src/i18n/en-US.ts
@@ -230,31 +230,9 @@ export default {
"settings.callsSuffix": "calls",
"settings.inputSuffix": "input",
"settings.outputSuffix": "output",
- "settings.skillManagement": "Skill Management",
- "settings.builtinSkills": "Built-in Skills",
- "settings.enabledCount": "enabled",
"settings.windowsAdapt": "Windows",
"settings.otherPlatforms": "Other Platforms",
- "settings.noBuiltinSkills": "No built-in skills detected",
- "settings.skillUnavailable": "Unavailable",
- "settings.skillMissingDeps": "Disabled — requires {bins} (not installed on this machine)",
- "settings.skillUnavailablePrefix": "Unavailable —",
- "settings.skillMissingBins": "requires {bins} (not installed on this machine)",
- "settings.skillMissingAnyBins": "requires one of {bins} (none installed)",
- "settings.skillMissingEnv": "requires environment variable(s) {env}",
- "settings.skillMissingConfig": "requires configuration: {config}",
- "settings.skillOsMismatch": "only supported on {os}",
- "settings.askAgent": "Ask Agent",
- "settings.askAgentPrompt":
- 'The skill "{name}" is unavailable in MicroClaw: {reason}. How can I resolve this so the skill becomes available?',
- "settings.refreshSkills": "Refresh",
- "settings.skillsRefreshed": "Skills refreshed",
- "settings.skillsRefreshFailed": "Failed to refresh skills: {error}",
- "settings.managedSkills": "Managed Skills",
- "settings.customSkills": "Custom Skills",
"settings.notInstalled": "Not Installed",
- "settings.noManagedSkills": "No managed skills",
- "settings.noCustomSkills": "No custom skills",
"settings.connectionStatus": "Connection Status",
"settings.status": "Status",
"settings.privacy": "Data & Privacy",
@@ -347,10 +325,6 @@ export default {
"MicroClaw uses the configured provider for web search. The gateway restarts automatically after you save.",
"settings.getApiKey": "Get API key",
"settings.save": "Save",
- "settings.skillConfigUpdated": "Skill configuration updated",
- "settings.skillConfigFailed": "Failed to update skill config: {error}",
- "settings.managedSkillConfigUpdated": "Managed skill configuration updated",
- "settings.managedSkillConfigFailed": "Failed to update managed skill config: {error}",
"settings.configSaveFailed": "Failed to save configuration: {error}",
"settings.modelSwitched": "Model switched to {model}",
"settings.customModelAdded": "Custom model added",
@@ -379,7 +353,6 @@ export default {
"settings.menu.theme": "Appearance",
"settings.menu.usage": "Usage",
"settings.menu.models": "Models",
- "settings.menu.skills": "Skills",
"settings.menu.gateway": "Gateway",
"settings.menu.channels": "Channels",
"settings.menu.privacy": "Privacy",
@@ -633,10 +606,6 @@ export default {
"usage.requestsLabel": "requests",
"usage.sessionsLabel": "sessions",
"usage.toolCallsLabel": "tool calls",
- "usage.viewMoreSkills": "View more",
- "usage.skillsTitle": "Skills",
- "usage.openSkills": "Manage skills",
- "usage.noSkills": "No skills installed",
"usage.modelOfflineTitle": "Model not connected — agent paused",
"usage.modelOfflineHint":
"Check the model configuration in Settings. Usage data will refresh once the connection is restored.",
diff --git a/desktop/renderer/src/i18n/zh-CN.ts b/desktop/renderer/src/i18n/zh-CN.ts
index 5b23978..5a0277b 100644
--- a/desktop/renderer/src/i18n/zh-CN.ts
+++ b/desktop/renderer/src/i18n/zh-CN.ts
@@ -218,31 +218,9 @@ export default {
"settings.callsSuffix": "次调用",
"settings.inputSuffix": "输入",
"settings.outputSuffix": "输出",
- "settings.skillManagement": "技能管理",
- "settings.builtinSkills": "内置技能",
- "settings.enabledCount": "已启用",
"settings.windowsAdapt": "Windows 适配",
"settings.otherPlatforms": "其他平台",
- "settings.noBuiltinSkills": "未检测到内置技能",
- "settings.skillUnavailable": "不可用",
- "settings.skillMissingDeps": "已禁用 — 需要 {bins}(本机未安装)",
- "settings.skillUnavailablePrefix": "不可用 —",
- "settings.skillMissingBins": "需要 {bins}(本机未安装)",
- "settings.skillMissingAnyBins": "需要以下之一 {bins}(均未安装)",
- "settings.skillMissingEnv": "需要环境变量 {env}",
- "settings.skillMissingConfig": "需要配置项:{config}",
- "settings.skillOsMismatch": "仅支持 {os}",
- "settings.askAgent": "询问助手",
- "settings.askAgentPrompt":
- "技能“{name}”在 MicroClaw 中当前不可用:{reason}。我该如何解决才能启用该技能?",
- "settings.refreshSkills": "刷新",
- "settings.skillsRefreshed": "技能已刷新",
- "settings.skillsRefreshFailed": "刷新技能失败:{error}",
- "settings.managedSkills": "托管技能",
- "settings.customSkills": "自定义技能",
"settings.notInstalled": "未安装",
- "settings.noManagedSkills": "暂无托管技能",
- "settings.noCustomSkills": "暂无自定义技能",
"settings.connectionStatus": "连接状态",
"settings.status": "状态",
"settings.privacy": "数据与隐私",
@@ -329,10 +307,6 @@ export default {
"settings.webSearchDesc": "MicroClaw 使用已配置的提供商进行联网搜索。保存后网关将自动重启生效。",
"settings.getApiKey": "获取 API 密钥",
"settings.save": "保存",
- "settings.skillConfigUpdated": "技能配置已更新",
- "settings.skillConfigFailed": "技能配置更新失败: {error}",
- "settings.managedSkillConfigUpdated": "托管技能配置已更新",
- "settings.managedSkillConfigFailed": "托管技能配置更新失败: {error}",
"settings.configSaveFailed": "配置保存失败: {error}",
"settings.modelSwitched": "模型已切换为 {model}",
"settings.customModelAdded": "自定义模型已添加",
@@ -360,7 +334,6 @@ export default {
"settings.menu.theme": "外观",
"settings.menu.usage": "用量",
"settings.menu.models": "模型",
- "settings.menu.skills": "技能",
"settings.menu.gateway": "网关",
"settings.menu.channels": "频道",
"settings.menu.privacy": "隐私",
@@ -608,10 +581,6 @@ export default {
"usage.requestsLabel": "请求",
"usage.sessionsLabel": "会话",
"usage.toolCallsLabel": "工具调用",
- "usage.viewMoreSkills": "查看更多",
- "usage.skillsTitle": "技能",
- "usage.openSkills": "技能管理",
- "usage.noSkills": "暂未安装技能",
"usage.modelOfflineTitle": "模型未连接,Agent 暂停服务",
"usage.modelOfflineHint": "请在「设置」中检查模型配置,连接恢复后会自动刷新用量数据。",
"usage.openSettings": "打开设置",
diff --git a/desktop/renderer/src/views/SettingsView.vue b/desktop/renderer/src/views/SettingsView.vue
index 7245148..01b08d4 100644
--- a/desktop/renderer/src/views/SettingsView.vue
+++ b/desktop/renderer/src/views/SettingsView.vue
@@ -262,106 +262,6 @@
-
-
-
{{ t("settings.skillManagement") }}
-
-
-
- {{ t("settings.builtinSkills") }} ({{ builtinSkills.length }})
- {{ enabledCount }}/{{ builtinSkills.length }} {{ t("settings.enabledCount") }}
-
-
-
-
-
-
- {{ skill.name }}
-
- {{ t("settings.skillUnavailable") }}
-
-
-
{{ skill.description }}
-
-
- {{ t("settings.askAgent") }}
-
-
toggleBuiltinSkill(skill, val)"
- />
-
-
-
-
-
- {{ t("settings.noBuiltinSkills") }}
-
-
-
-
-
{{ t("settings.customSkills") }} ({{ customSkills.length }})
-
-
-
-
-
- {{ skill.name }}
-
- {{ t("settings.skillUnavailable") }}
-
-
-
{{ skill.description }}
-
-
- {{ t("settings.askAgent") }}
-
-
toggleCustomSkill(skill.id, val)"
- />
-
-
-
- {{ t("settings.noCustomSkills") }}
-
-
-
-
{{ t("settings.connectionStatus") }}
@@ -892,10 +792,9 @@