内容
# 克劳德配置
一款原生 macOS 应用,用于查看和编辑克劳德代码读取的每种配置表面 — 在一个地方,`settings.json` 跨越所有四个作用域,MCP 服务器,斜杠命令,子代理,`CLAUDE.md` 指令文件 — 采用纯 SwiftUI Liquid Glass 接口,针对 macOS 26(塔霍)。
目的是为克劳德代码高级用户提供一种清晰、安全的方式来检查和修改他们的配置,而无需遍历分散的 JSON 文件或记住哪个作用域优先。每次编辑都是原子的,每次保存都有备份,每次更改都可以通过应用内的历史记录查看器恢复。
## 功能
### 设置(`settings.json`)
- **所有四个作用域** 自动发现并在侧边栏中列出:用户全局,用户本地,项目全局,项目本地。
- **注解视图** — 目录中的每个键都渲染为一张卡片,包含摘要,描述,“影响”行,示例和从磁盘实时拉取的当前值。显示状态(`已设置` / `未设置`)并为任何未覆盖的键添加标签以便后续处理。
- **原始视图** — JSON 漂亮地打印并采用等宽编辑,智能引号 / 破折号自动纠正关闭,以便粘贴-编辑-保存往返不会静默损坏文件。
- **编辑模式** 带有工具栏中的保存 / 恢复 / 取消按钮。保存以粗体显示为主要操作;恢复是键盘快捷键感知的(Esc)。
- **搜索** — 工具栏中的浮动搜索字段根据键,摘要,描述或类别过滤注解行。
- **历史记录** — 每次保存都会将前一个版本快照到 `~/Library/Application Support/ClaudeConfig/history/` 下的每个文件文件夹中。点击工具栏中的时钟图标进行差异比较和恢复。
- **外部更改保护** — 基于 mtime 的过时写入检查在每次保存时进行;如果编辑器打开后文件被外部修改,则拒绝覆盖文件。
- **源代码控制徽章** 用于项目全局文件,以便您知道保存将污染存储库的工作目录。
### CLAUDE.md
- 用户作用域(`~/.claude/CLAUDE.md`)和项目作用域(`<project>/.claude/CLAUDE.md`)在侧边栏中列出。
- 纯文本编辑器(禁用智能引号)与 JSON 编辑器相同的保存 / 恢复 / 删除流程。
- 删除按钮具有破坏性确认,并在删除前将前一个版本存档到历史记录中。
### MCP 服务器(`.mcp.json`)
- 每个项目一个条目,列在项目的侧边栏组下。
- 每个服务器的基于表单的编辑器:名称,命令,参数,环境变量。
- 内联添加 / 删除服务器控件。
- 删除按钮删除整个 `.mcp.json`(需确认)。
### 斜杠命令和子代理
- 自动发现 `~/.claude/commands/*.md` 和 `~/.claude/agents/*.md` 用于用户作用域,以及每个项目 `.claude/` 下的相同路径用于项目作用域。
- 带有 frontmatter 解析的 Markdown 编辑器 — `name`,`description`,`tools`,`model` 渲染为表单在正文上方。
- 新建工作表,编辑,删除时存档历史记录。
### 参考曲面
- **备忘录** — “配置存储位置”,克劳德代码应用的优先级顺序以及来自 `anthropics/claude-code` GitHub 问题的已知问题的实时馈送。问题面板缓存带有 TTL,以便应用不会在每次刷新时命中 API。
- **模板** — 可以一键应用到项目的 `settings.json` 的精选预设。
- **有效设置** — 合并视图,显示在四个作用域分层后每个目录键的解析值,以便您可以查看克劳德代码实际使用的内容,而无需在脑海中进行优先级数学运算。
- **诊断** — 按项目划分的静态检查:缺少 CLAUDE.md,无权限,冲突的钩子等。严重性标记。
## Liquid Glass 用户界面
- 浮动 Liquid Glass 胶囊药丸在 macOS 窗口工具栏中,用于每个视图的上下文操作(注解 / 原始切换,搜索,历史记录,编辑 / 保存 / 恢复,删除)。通过 `ToolbarSpacer(.flexible)` 右对齐。注解 / 原始选择器的活动状态使用带有白色文本的强调色调胶囊。
- 软滚动边缘渐变,因此列表内容在工具栏边界处平滑渐变为背景,而不是硬剪辑。滚动条偏移到渐变区域下方,因此其顶部在静止时不会被渐变覆盖。
- 侧边栏选择 / 悬停状态与苹果的自动反转模式匹配 — 主文本在选择时变为白色,无需手动状态管理或动画黑客。
- 应用图标:白色克劳德符号,带有 Zoho 颜色辐射突发方形(红色 / 黄色 / 绿色 / 蓝色角落,背景为温暖奶油色),由 `release/build-icon.sh` 生成。
## 项目发现
- 自动在 `~/Documents/dev/...` 家族中查找项目(任何包含 `.claude/` 子目录的文件夹)。
- 用于添加不在自动发现根目录外的文件夹的项目选取器。
- 应用激活时刷新会拾取自您上次查看以来在应用外部修改的文件。
## 架构
四个 Swift 包管理器目标:
| 目标 | 角色 |
| --- | --- |
| `ConfigCore` | 模型,文件 I/O,原子写入,备份存储 |
| `ConfigCatalog` | 每个已文档记录的设置的捆绑 JSON 目录 |
| `ConfigUI` | 每个 SwiftUI 视图,设计令牌,图标 SVG |
| `ConfigApp` | `@main` 可执行文件,应用委托,`WindowGroup` |
堆栈:Swift 6 / `swift-tools-version: 6.0`,SwiftUI 在 macOS 26(塔霍),`@Observable` + `@Bindable` 用于状态,`@AppStorage` 用于用户偏好。无第三方依赖。
## 在本地运行
```sh
swift run ClaudeConfig
```
需要 Xcode 16 或匹配的 Swift 6 / macOS 26 SDK 命令行工具。
## 分发
两个路径,取决于您的受众:
### 内部团队(无 Apple 开发者计划)
```sh
./release/build-icon.sh # 一次性,当图标设计更改时
./release/build-unsigned.sh # 生成 dist/ClaudeConfig.zip
```
将 zip 文件和 `release/INSTALL.txt` 发送给收件人。他们将应用程序拖到 `/Applications` 并运行一个 `xattr -dr com.apple.quarantine` 命令来清除 Gatekeeper。请参阅 `release/INSTALL.txt` 以获取完整的使用者指南。
### 公开 / 更广泛的分发
需要付费的 Apple 开发者计划会员资格。
```sh
./release/build-app.sh # 使用开发者 ID 签名
./release/notarize.sh # 提交给苹果的 notarytool,订书钉
```
完整的设置(证书,应用特定密码,`notarytool store-credentials`)在 [`RELEASE.md`](./RELEASE.md) 中有记录。
## 文件布局
```
.
├── Package.swift
├── README.md # 本文件
├── RELEASE.md # 签名/公证构建流程
├── Sources/
│ ├── ConfigCore/ # 模型,I/O,历史记录
│ ├── ConfigCatalog/ # 捆绑的 catalog.json
│ ├── ConfigUI/ # SwiftUI 视图,设计令牌
│ └── ConfigApp/ # @main + 应用委托
└── release/
├── build-app.sh # 签名构建(开发者 ID)
├── build-unsigned.sh # 用于内部使用的未签名构建
├── build-icon.sh # 生成 AppIcon.icns
├── notarize.sh # 苹果 notarytool 提交 + 订书钉
├── INSTALL.txt # 面向收件人的安装步骤
├── Info.plist # 包属性列表
├── entitlements.plist # 代码签名授权
└── AppIcon.icns # 生成的图标
```
## 状态
v1.0 — 完全功能齐全,可对每种支持的配置表面进行读取和编辑。仅限 macOS 26(塔霍)。