使用说明
Claude代码配置
用于管理Claude Code配置文件的现代终端用户界面(TUI)应用程序(~/.claude.json).通过直观的分层界面简化MCP服务器、项目和对话的管理。
特性
MCP服务器管理
- 分层视图:以树形结构浏览全局和项目级MCP服务器
- 添加、编辑、删除:MCP服务器配置的完整CRUD操作
- 复制服务器:通过可视化剪贴板跟踪快速复制服务器配置
- 移动服务器:在全局范围和项目之间移动服务器
- 多范围支持:管理全局服务器和特定于项目的服务器
- 敏感值屏蔽:默认情况下掩盖API密钥和机密(按
V切换)
项目与对话管理
- 项目浏览器:查看您的所有Claude Code项目,包括服务器、对话和历史记录计数
- 真实对话管理:浏览、查看详细信息和删除实际
.jsonl来自文件系统的对话文件 - 对话统计:查看每个对话的消息计数、文件大小和年龄
- 对话清理:删除具有完整元数据可见性的旧对话
- 历史记录管理:在项目之间查看、删除和移动历史记录项
- 项目组织:查看每个项目配置了哪些MCP服务器
安全性和可靠性
- 自动备份:每次保存前创建带时间戳的备份
- 撤消/恢复系统:完全支持撤消/重做
Ctrl+Z/Ctrl+Y(最多50个动作) - JSON验证:确保您的配置保持有效
- 回滚支持:如果需要,可以轻松从备份中恢复
- 非破坏性操作:删除前确认
- 错误记录:具有导出功能的持久错误日志(按
l查看)
高级功能
- 环境变量支持:手柄
${VAR}服务器配置中的语法 - HTTP/SSE服务器:支持stdio、HTTP和SSE服务器类型,并支持标头
- 大文件处理:高效管理大型配置文件(处理多MB文件)
- 视觉导航:直观的基于树的导航和焦点管理
- 视觉变化指示器:使用查看未保存的更改
*在标题栏和橙色保存按钮中 - 增强剪贴板:复制/粘贴服务器和历史记录,并进行可视化状态跟踪
安装
来自PyPI
pip install claude-code-config
来源
git clone https://github.com/joeyism/claude-code-config.git
cd claude-code-config
pip install -e .
用法
启动TUI应用程序:
claude-config
# or use the short alias
ccm
键盘快捷键
导航
↑/↓或j/k:导航树Enter或Space:展开/折叠树节点Right/Left:展开/折叠节点
行动
a:添加新的MCP服务器或历史记录项e:编辑所选服务器或历史记录项d:删除所选项目(服务器、对话或历史记录)c:将所选服务器或历史记录项复制到剪贴板p:从剪贴板粘贴m:将服务器或历史记录项移动到其他项目v:查看粘贴的内容详细信息
文件操作
s:保存更改r:从磁盘重新加载q或Ctrl+C:退出(如果未保存更改,则确认)
高级功能
V:切换敏感值遮罩(显示/隐藏秘密)Ctrl+Z:撤消上次操作Ctrl+Y:重做操作u:查看撤消/重做历史记录l:查看错误日志x:清除剪贴板?:显示帮助
配置文件结构
该工具管理 ~/.claude.json,其中包括:
- mcpServers:全局MCP(模型上下文协议)服务器配置
- 项目:项目特定设置,包括:
- mcpServers:项目级MCP服务器配置
- 对话:每个项目的对话历史记录(注:实际对话为
.jsonl文件在~/.claude/projects/) - 历史:用户输入历史记录,便于快速访问
- 各种项目特定设置
- 其他设置:各种克劳德代码设置(保留)
层次结构
Claude Configuration
├── Global Servers (1)
│ └── 📡 terraform-cloud-mcp
└── Projects
├── 📁 delorean (3s, 15c, 14h)
│ ├── MCP Servers (3)
│ │ ├── 📡 mcp_server_mysql
│ │ ├── 📡 replicate_server
│ │ └── 📡 bigquery
│ ├── Conversations (15)
│ │ └── 💬 Implement user auth (4 days ago)
│ └── History (14)
│ └── 📝 ...
└── 📁 web (2s, 8c, 20h)
└── ...
MCP服务器格式
标准服务器:
{
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-example"],
"env": {
"API_KEY": "${API_KEY}"
}
}
HTTP服务器:
{
"type": "http",
"url": "https://api.example.com/mcp",
"headers": {
"Authorization": "Bearer ${API_TOKEN}"
}
}
发展
设置开发环境
# Clone the repository
git clone https://github.com/joeyism/claude-code-config.git
cd claude-code-config
# Install with development dependencies
pip install -e ".[dev]"
运行测试
# Run full test suite
pytest tests/
# Or run quick validation tests
python test_phase1_simple.py
代码格式化
black claude_code_config/
ruff check claude_code_config/
为什么使用Claude代码配置?
这 ~/.claude.json 文件可以增长到数百个项目和服务器的几兆字节。手动编辑变为:
- 容易出错:易于破解的JSON语法
- 困难:在各个项目中很难找到特定的服务器
- 冒险的:无自动备份
- 耗时的:导航大型嵌套结构
Claude Code Config通过以下方式解决了这些问题:
- 可视化树导航
- 具有验证和撤消/重做功能的安全编辑
- 自动备份
- 快速搜索和过滤
- 具有文件大小跟踪功能的会话管理
常见用例
- 清理旧对话:通过删除对话(包含文件大小信息和总统计数据)释放空间
- 管理历史记录项目:在项目之间查看、删除或移动历史条目(支持撤消)
- 组织MCP服务器:在全局范围和项目范围之间移动服务器
- 复制服务器配置:新项目的重复工作配置(带剪贴板跟踪)
- 审核服务器使用情况:查看哪些项目使用哪些MCP服务器
- 安全地编辑配置:使用撤消/重做安全网进行更改
- 保护秘密:在不公开API密钥的情况下浏览配置(自动屏蔽功能)
- 跟踪对话增长:监控对话文件大小并清理大型旧对话
最近的增强功能(2026年1月)
第一阶段:用户体验改进
撤消/恢复系统
- 具有完整的撤消/重做功能
Ctrl+Z(撤消)和Ctrl+Y(重做) - 在破坏性操作之前,使用自动快照存储多达50个先前状态
- 使用查看撤消/重做历史记录
u钥匙 - 保存/重新加载后的智能清算
- 为意外变更提供安全网
变化的视觉指示器
- 标题栏显示
*修改配置时 - 字幕显示“⚠ 当有未保存的修改时,显示“未保存的更改”
- 保存按钮从绿色变为橙色并显示
*当存在更改时 - 修改后自动更新
- 清晰的视觉反馈可防止意外数据丢失
增强剪贴板
- 顶部的状态栏显示剪贴板内容:服务器或历史记录项
- 带有图标的视觉反馈(📋) 以及彩色信息
- 新
x快速清除剪贴板的快捷方式 - 显示详细摘要:“服务器'name'|环境:2个变量|标头:1个项目”
- 类型感知剪贴板区分服务器和历史记录项
持续错误日志
- 按
l查看全面的错误日志 - 存储最近100个错误的完整详细信息(消息、回溯、上下文)
- 功能:浏览错误、导出到文件、清除日志、按严重程度过滤
- 具有15秒超时的增强通知包括错误日志提示
- 帮助解决问题,而不会丢失错误信息
改进对话
- 移动服务器对话框现在与移动历史对话框一致
- 清晰的目标选择界面
- 在项目之间移动项目的更好用户体验
新键盘快捷键:
Ctrl+Z:撤消上次操作Ctrl+Y:重做u:查看撤消/重做历史记录l:查看错误日志x:清除剪贴板
添加的文件:
claude_code_config/undo.py:撤消/重做管理器实施claude_code_config/error_log.py:错误记录系统tests/test_phase1.py:全面的测试套件
真实对话管理
发现
该工具最初在中查找对话 ~/.claude.json 在...之下 projects[path].conversations,但此字段始终为空。Claude Code实际上将对话存储为 .jsonl 文件在 ~/.claude/projects/<project-name>/。许多用户有数百个对话,但无法查看或管理它们!
已实施的解决方案:
-
会话文件模型 (
conversations.py)- 作语法分析
.jsonl来自文件系统的对话文件 - 提取丰富的元数据:标题(来自第一条用户消息)、创建日期、消息计数、文件大小
- 提供人类可读的年龄(“4天前”)和大小(KB/MB)格式化程序
- 支持删除实际对话文件
- 作语法分析
-
对话扫描仪 (
conversations.py)- 自动扫描
~/.claude/projects/启动时的目录 - 按项目对对话进行分组,以便有组织地显示
- 提供统计数据:总对话数、项目数、累计规模
- 高效扫描:只读取前50行进行元数据提取
- 针对大型对话文件进行了性能优化
- 自动扫描
-
增强的ConfigMgr (
config.py)- 集成ConversationScanner,用于实时文件系统扫描
- 新方法:
get_conversations(project_path)-检索特定项目的对话 - 新方法:
get_all_conversations()-按项目对所有对话进行分组 - 新方法:
get_conversation_stats()-获得全面的统计数据
-
TUI更新 (
tui.py)- 从文件系统而不是配置文件加载真实对话
- 树显示对话标题和年龄:“💬 实现用户身份验证(4天前)”
- 详细信息面板显示了全面的元数据:
- 全称
- 对话ID
- 消息计数
- 文件大小(KB/MB)
- 人类可读年龄
- 完整文件路径位置
- 删除功能现在删除实际
.jsonl磁盘文件 - 每个项目最多显示50个对话,以提高UI性能
用途:
查看对话:
- 发射
claude-config - 导航到树中的任何项目
- 展开项目节点以查看“对话(N)”
- 展开以查看所有标题和年龄的对话
- 选择对话以在右侧面板中查看完整详细信息
删除旧对话:
- 从树中选择对话
- 按
d删掉 - 在对话框中确认删除(显示对话标题)
- 这
.jsonl文件已从文件系统中永久删除
统计示例:
- 测试显示,12个项目中有302个对话
- 总大小:30.85 MB对话数据
- 顶级项目:
python-movie-maker86个对话
技术细节:
- 文件格式:
~/.claude/projects/<project-name>/<conversation-id>.jsonl - 文件中的每一行都是一个JSON对象(每行一条消息)
- 性能:仅读取元数据的前50行
- 显示限制:UI中显示的每个项目50个对话
安全:敏感值屏蔽
问题 在浏览MCP服务器时,诸如API密钥、令牌和机密之类的敏感值在环境变量和标题中以纯文本显示。这带来了肩上冲浪、意外截图、屏幕共享和剪贴板状态暴露等安全风险。
解决方案:
默认遮罩
- 默认情况下,为了安全起见,所有环境变量和标头值都会被屏蔽
- 节目
****而不是详细信息面板中的实际值 - 自动应用于全局和项目范围的服务器
- 每次启动应用程序时,屏蔽重置为启用状态(基于会话的安全性)
切换可见性
- 按
V(大写V)暂时打开/关闭遮罩 - 出现视觉通知:“🔒 敏感值被掩盖“或”👁 敏感值可见”
- 状态在会话期间持续存在,但在应用程序重新启动时重置为掩码
- 允许在需要时显示值,而不会影响默认安全性
遮蔽显示示例:
Environment Variables:
API_KEY = ****
SECRET_TOKEN = ****
Headers:
Authorization = ****
CONTEXT7_API_KEY = ****
Press 'e' to edit | [*****] (V to toggle)
未屏蔽显示(按V后):
Environment Variables:
API_KEY = sk-1234567890abcdef...
SECRET_TOKEN = token123...
Headers:
Authorization = Bearer xyz123...
CONTEXT7_API_KEY = ctx7sk-abc...
Press 'e' to edit | [SHOWN] (V to toggle)
受保护的剪贴板
- 剪贴板状态栏显示摘要而不是实际值
- 例子:
📋 Clipboard: Server 'context7' | Env: 2 vars | Headers: 1 items - 即使被复制,状态栏中也不会显示敏感数据
- 防止在屏幕共享过程中意外暴露
视觉指示器
[*****]值被屏蔽时显示的指示器(默认)[SHOWN]当值可见时,指示器出现- 指示器出现在带有切换指令的详细面板中
- 颜色编码通知(信息为屏蔽,警告为可见)
编辑表单行为
- 编辑服务器时(按
e),表单总是显示真实的未屏蔽值 - 编辑和保存配置更改所必需的
- 仅浏览视图使用屏蔽以确保安全
- 编辑表单独立操作,可以完全访问值
安全优势:
- 默认安全姿态(启动时屏蔽)
- 防止肩膀冲浪和未经授权的观看
- 屏幕截图和屏幕录制安全
- 在演示和屏幕共享会话期间受到保护
- 基于会话:自动重置为安全状态
实施:
- 修改了7个地点
tui.py - 添加约40条线,实现完整的遮蔽系统
- 性能影响:可忽略不计(每次操作<1ms)
- 修改的文件:
claude_code_config/tui.py
贡献
欢迎投稿!请随时提交拉取请求。
- 克隆该仓库
- 创建功能分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 推到分支(
git push origin feature/AmazingFeature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
支持
如果您遇到任何问题或有任何建议,请 打开一个问题 在GitHub上。
