内容
<div align="center">
<h1>我的 AI 家园</h1>
<p>用于管理 Claude Code 技能、MCP 服务器和项目配置的本地控制中心。</p>
</div>
<p align="center">
<img alt="Python" src="https://img.shields.io/badge/python-3.11%2B-blue">
<img alt="状态" src="https://img.shields.io/badge/status-alpha-orange">
<img alt="许可证" src="https://img.shields.io/badge/license-MIT-green">
</p>
`my-ai-home` 安装 `myai` 命令。它帮助您在单个 `MY_AI_ROOT` 工作空间中管理可重复使用的 AI 代理功能,然后将选定的技能和 MCP 服务器安装到每个 Claude Code 项目中。
> [!NOTE]
> 该项目目前处于 alpha 阶段。虽然可用,但命令行为和注册表详细信息可能会发生变化。
## 亮点
- 在 `<project>/.claude/skills/` 中管理项目技能。
- 在 `<project>/.mcp.json` 中管理项目 MCP 服务器。
- 从现有全局配置启动个人 `MY_AI_ROOT` 工作空间。
- 定义包含常用技能和 MCP 的配置文件。
- 在写入之前预览计划;未管理的项目条目不会被覆盖。
- 检测已从父项目或全局配置中可见的功能,并避免在本地重新安装它们。
- 使用 `myai global` 保持用户/全局范围明确。
## 快速入门
```bash
uv tool install my-ai-home
myai migrate --target ~/my_ai
export MY_AI_ROOT=~/my_ai
myai registry check
cd /path/to/project
myai plan --profile coding
myai apply --profile coding
```
在项目目录中运行交互式 TUI:
```bash
myai
```
## 安装
从 PyPI:
```bash
uv tool install my-ai-home
myai --help
```
从源码:
```bash
git clone https://github.com/Cookie-HOO/my-ai-home.git
cd my-ai-home
uv tool install -e .
```
要求:Python `>=3.11`;推荐使用 `uv`。
## 核心模型
### 工作空间
`MY_AI_ROOT` 指向您的个人 AI 工作流工作空间:
```text
my_ai/
skills/registry.yaml
mcps/registry.yaml
profiles/registry.yaml
```
这些 YAML 注册表是机器的真实来源。Markdown 清单仅用于文档。
### 范围
| 命令 | 范围 | 目的 |
| --- | --- | --- |
| `myai` | 当前项目 | 安装项目技能/MCP。 |
| `myai migrate` | 引导 | 创建或更新 `MY_AI_ROOT` 工作空间。 |
| `myai global` | 用户/全局 | 显式管理 Claude Code 全局范围配置。 |
项目模式拒绝在 `~/.claude` 中运行;请在那里使用 `myai migrate` 或 `myai global`。
### 可见性和所有权
Claude Code 可以从当前项目、父项目目录和全局/用户配置中看到功能。`myai` 遵循该模型:
- 当前项目条目显示为本地状态,
- 父项目条目显示为 `parent`,
- 全局/用户条目显示为 `global`,
- 技能在链接到 `MY_AI_ROOT` 时进行管理,
- MCP 条目在携带 `MYAI_*` 标记环境键时进行管理,
- 可见的父/全局条目满足配置文件要求,不会在本地重新安装。
## 命令
```bash
myai # 打开 TUI 或在非交互式 shell 中打印摘要
myai doctor # 检查当前项目状态
myai list skills # 列出已注册的技能
myai list mcps # 列出已注册的 MCP 服务器
myai list profiles # 列出配置文件
myai plan --profile coding # 预览更改
myai apply --profile coding # 在确认后应用
myai registry check # 验证注册表
```
全局范围:
```bash
myai global
myai global doctor
myai global plan --profile coding
```
迁移:
```bash
myai migrate --target ~/my_ai --dry-run
myai migrate --target ~/my_ai
```
使用 `--help` 获取生成的 CLI 帮助:
```bash
myai --help
myai plan --help
myai migrate --help
```
## 注册表草图
### 技能
```yaml
version: 1
skills:
readme-writing-polish:
name: readme-writing-polish
path: skills/custom/readme-writing-polish
sourceType: custom
install: {type: symlink}
description: README 编写和润色。
recommendedFor: [coding, docs]
tags: [readme, writing]
sensitivity: normal
status: active
```
路径相对于 `MY_AI_ROOT` 且必须包含 `SKILL.md`。
### MCP
```yaml
version: 1
servers:
fetch:
name: fetch
description: 获取 URL 内容。
config:
type: stdio
command: uvx
args: [mcp-server-fetch]
requires:
externalTools: [uv]
env: []
auth: []
files: []
safety:
network: true
opensBrowser: false
writesFiles: false
externalService: true
```
不要在 MCP 注册表中存储令牌、cookie、API 密钥或私有环境文件内容。
### 配置文件
```yaml
version: 1
profiles:
coding:
name: coding
title: 编程项目
skills:
required: [brainstorming]
recommended: [modern-python]
optional: [readme-writing-polish]
mcps:
required: [fetch]
recommended: []
optional: [playwright]
```
`required` 和 `recommended` 是默认选择,而不是硬性策略;用户可以在 TUI 中取消选择它们。
## 安全
- 项目模式仅写入目标项目中的 `.claude/skills/` 和 `.mcp.json`。
- 技能是符号链接的,而不是复制的。
- 现有项目拥有的 MCP 条目不会被隐式覆盖。
- 默认情况下,父/全局范围中可见的功能不会被复制到当前项目中。
- `myai migrate` 不会删除或修改旧的全局 Claude Code 配置。
- 全局更改需要显式的 `myai global` 命令。
## 开发
```bash
uv sync --all-groups
uv run ruff check .
uv run pytest
uv run ty check src/
uv build
```
## 发布
发布使用 PyPI 受信任的发布:
- 仓库:`Cookie-HOO/my-ai-home`
- 工作流:`.github/workflows/pypi-publish.yml`
- 环境:`pypi`
- 触发器:GitHub 发布或手动工作流调度
## 许可证
MIT