diff --git a/README.md b/README.md
index ddeb90f..3abfb6b 100644
--- a/README.md
+++ b/README.md
@@ -193,7 +193,7 @@ Actions that can change local state include:
- creating, updating, syncing, importing, or deleting a slash command
- changing harness support settings
-App-owned files live under `~/Library/Application Support/skill-manager` on macOS and XDG base directories on Linux.
+App-owned files live under `~/.skill-manager` on macOS (with a legacy fallback to `~/Library/Application Support/skill-manager` if it already exists) and XDG base directories on Linux.
## How it works
@@ -242,17 +242,17 @@ CLI marketplace entries are preview-only.
## Configuration
-On macOS, app-owned files live under `~/Library/Application Support/skill-manager`. On Linux, app-owned files use XDG base directories.
+On macOS, app-owned files live under `~/.skill-manager` (with a legacy fallback to `~/Library/Application Support/skill-manager` if it already exists). On Linux, app-owned files use XDG base directories.
Useful macOS paths:
-- shared skills store: `~/Library/Application Support/skill-manager/shared`
-- MCP manifest: `~/Library/Application Support/skill-manager/mcp/manifest.json`
-- slash command library: `~/Library/Application Support/skill-manager/slash-commands/commands`
-- slash command sync state: `~/Library/Application Support/skill-manager/slash-commands/sync-state.json`
-- marketplace cache: `~/Library/Application Support/skill-manager/marketplace`
-- app database and LLM scan configs: `~/Library/Application Support/skill-manager/skill-manager.db`
-- app settings: `~/Library/Application Support/skill-manager/settings.json`
+- shared skills store: `~/.skill-manager/shared`
+- MCP manifest: `~/.skill-manager/mcp/manifest.json`
+- slash command library: `~/.skill-manager/slash-commands/commands`
+- slash command sync state: `~/.skill-manager/slash-commands/sync-state.json`
+- marketplace cache: `~/.skill-manager/marketplace`
+- app database and LLM scan configs: `~/.skill-manager/skill-manager.db`
+- app settings: `~/.skill-manager/settings.json`
Useful Linux paths:
diff --git a/README.zh-CN.md b/README.zh-CN.md
index c69a46b..9b3da48 100644
--- a/README.zh-CN.md
+++ b/README.zh-CN.md
@@ -163,7 +163,7 @@ Skill Manager 是本地配置管理工具。它在你的机器上运行,并读
- 创建、更新、同步、导入或删除 slash command
- 修改 harness 支持设置
-在 macOS 上,应用拥有的文件位于 `~/Library/Application Support/skill-manager`;在 Linux 上使用 XDG base directories。
+在 macOS 上,应用拥有的文件位于 `~/.skill-manager`(如果已存在,则回退到 `~/Library/Application Support/skill-manager`);在 Linux 上使用 XDG base directories。
## 工作方式
@@ -212,17 +212,17 @@ CLI marketplace 条目仅用于预览。
## 配置
-在 macOS 上,应用拥有的文件位于 `~/Library/Application Support/skill-manager`;在 Linux 上使用 XDG base directories。
+在 macOS 上,应用拥有的文件位于 `~/.skill-manager`(如果已存在,则回退到 `~/Library/Application Support/skill-manager`);在 Linux 上使用 XDG base directories。
常用 macOS 路径:
-- 共享 Skill 存储:`~/Library/Application Support/skill-manager/shared`
-- MCP manifest:`~/Library/Application Support/skill-manager/mcp/manifest.json`
-- slash command 库:`~/Library/Application Support/skill-manager/slash-commands/commands`
-- slash command 同步状态:`~/Library/Application Support/skill-manager/slash-commands/sync-state.json`
-- 商城缓存:`~/Library/Application Support/skill-manager/marketplace`
-- 应用数据库和 LLM 扫描配置:`~/Library/Application Support/skill-manager/skill-manager.db`
-- 应用设置:`~/Library/Application Support/skill-manager/settings.json`
+- 共享 Skill 存储:`~/.skill-manager/shared`
+- MCP manifest:`~/.skill-manager/mcp/manifest.json`
+- slash command 库:`~/.skill-manager/slash-commands/commands`
+- slash command 同步状态:`~/.skill-manager/slash-commands/sync-state.json`
+- 商城缓存:`~/.skill-manager/marketplace`
+- 应用数据库和 LLM 扫描配置:`~/.skill-manager/skill-manager.db`
+- 应用设置:`~/.skill-manager/settings.json`
常用 Linux 路径:
diff --git a/assets/harness-logos/agy-logo.svg b/assets/harness-logos/agy-logo.svg
new file mode 100644
index 0000000..fe5fd4c
--- /dev/null
+++ b/assets/harness-logos/agy-logo.svg
@@ -0,0 +1,9 @@
+
diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx
index d94b43d..678fab2 100644
--- a/frontend/src/App.tsx
+++ b/frontend/src/App.tsx
@@ -14,6 +14,8 @@ import ScanConfigPage from "./features/skills/screens/ScanConfigPage";
import SkillsWorkspacePage from "./features/skills/screens/SkillsWorkspacePage";
import { LocaleProvider, useCommonCopy } from "./i18n";
+import { ThemeProvider } from "./lib/theme";
+
const MarketplaceLayout = lazy(() => import("./features/marketplace/components/MarketplaceLayout"));
const OverviewPage = lazy(() => import("./features/overview/screens/OverviewPage"));
const SettingsPage = lazy(() => import("./features/settings/screens/SettingsPage"));
@@ -36,13 +38,15 @@ export function App() {
return (
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
);
}
diff --git a/frontend/src/assets/harness-logos/agy-logo.svg b/frontend/src/assets/harness-logos/agy-logo.svg
new file mode 100644
index 0000000..fe5fd4c
--- /dev/null
+++ b/frontend/src/assets/harness-logos/agy-logo.svg
@@ -0,0 +1,9 @@
+
diff --git a/frontend/src/components/Sidebar.tsx b/frontend/src/components/Sidebar.tsx
index 051b1b3..6443c65 100644
--- a/frontend/src/components/Sidebar.tsx
+++ b/frontend/src/components/Sidebar.tsx
@@ -15,6 +15,7 @@ import {
Command,
Languages,
LayoutDashboard,
+ Moon,
RefreshCw,
Settings,
Store,
@@ -27,6 +28,7 @@ import { useSidebarModel, type SidebarIconKey } from "../app/capability-registry
import { LoadingSpinner } from "./LoadingSpinner";
import { useToast } from "./Toast";
import { useCommonCopy, useLocale } from "../i18n";
+import { useTheme } from "../lib/theme";
interface SidebarProps {
onRefresh: () => void | Promise;
@@ -37,6 +39,7 @@ export function Sidebar({ onRefresh, refreshPending }: SidebarProps) {
const model = useSidebarModel();
const { toast } = useToast();
const common = useCommonCopy();
+ const { theme, toggleTheme } = useTheme();
return (