Metadata-Version: 2.4
Name: myndns
Version: 1.5.2
Summary: 猫羽雫 DNS · 专为 DNSHE 打造的命令行工具，内置智谱 AI 免费模型，支持个人 API Key
Author-email: 猫羽雫 <myn@dnshe.com>
License: MIT
Project-URL: Homepage, https://my.dnshe.com
Project-URL: Documentation, https://my.dnshe.com/knowledgebase/13/DNSHE-Free-Domain-API-User-Guide-V2.0.html
Project-URL: Repository, https://my.dnshe.com
Project-URL: Issues, https://my.dnshe.com
Project-URL: DNSHE Platform, https://my.dnshe.com
Keywords: dns,dnshe,domain,cli,myndns,猫羽雫,free-domain
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Internet :: Name Service (DNS)
Classifier: Topic :: System :: Systems Administration
Classifier: Topic :: Utilities
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: click>=8.0
Requires-Dist: requests>=2.28
Requires-Dist: rich>=13.0
Requires-Dist: prompt_toolkit>=3.0
Requires-Dist: questionary>=2.0
Provides-Extra: ai
Requires-Dist: openai>=1.0; extra == "ai"
Provides-Extra: dev
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: pytest; extra == "dev"

# myndns · 猫羽雫 DNS CLI

> 专为 DNSHE 免费域名平台打造的命令行工具，短命令 `myn`
> **内置智谱 AI 免费模型 + 支持个人 API Key**

## ✨ 特性

- 🐾 **AI 助手**：内置智谱 AI 免费模型（5 个），开箱即用
- 🔑 **个人 API Key**：配置你自己的智谱 Key 后无任何限制（推荐）
- 🎭 **自定义人设**：内置小雫猫娘、老管家、海盗船长等预设角色卡
- 💬 **流式输出**：实时显示 AI 回复，支持交互式多轮对话
- 👥 **多账号管理**：支持保存多组 DNSHE 凭据，一键切换
- 🎨 **美化输出**：rich 表格/面板，告别黑白命令行
- 🚀 **OOBE 向导**：首次使用引导配置（新手教程/老登模式）

## 📦 安装

myndns 是一个命令行工具，推荐使用以下任一方式安装。

### 方式 1：pipx（推荐 - 自动隔离环境）

```bash
# 安装 pipx（如果尚未安装）
# Debian/Ubuntu: apt install pipx
# macOS: brew install pipx
# 其他: python3 -m pip install --user pipx

pipx install myndns
```

pipx 会自动创建隔离的虚拟环境，不会污染系统 Python，最适合 CLI 工具。

### 方式 2：pip --user（用户级安装）

```bash
pip install --user myndns
```

注意：可能需要将 `~/.local/bin` 加入 PATH：

```bash
echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc
source ~/.bashrc
```

### 方式 3：venv（手动虚拟环境）

```bash
python3 -m venv ~/.venvs/myndns
source ~/.venvs/myndns/bin/activate
pip install myndns
```

### 方式 4：强制系统级安装（不推荐）

如果你看到 `externally-managed-environment` 错误但仍想强制安装：

```bash
pip install --break-system-packages myndns
```

⚠️ 这可能破坏系统 Python 包，仅在你了解风险时使用。

### 方式 5：直接从 PyPI 安装指定版本

```bash
pipx install myndns==1.2.0
# 或
pip install --user myndns==1.2.0
```

### 验证安装

```bash
myn --version
# myndns (myn), version 1.2.0
```

## 🚀 快速开始

```bash
# 首次使用 - 配置 API Key（OOBE 向导，含智谱 AI Key 配置）
myn init

# 列出所有子域名
myn list

# 查询配额
myn quota

# AI 助手对话（默认使用内置共享 Key，有限制）
myn ai ask "你是谁？"

# 配置你自己的智谱 AI Key（推荐，无限制）
myn ai key set xxxxx.yyyyy

# 交互式 AI 对话
myn ai chat

# 应用小雫猫娘人设
myn ai persona --preset xiaoniao

# 然后再问 AI（会以小雫口吻回复）
myn ai ask "你是谁？"
```

## 🔑 智谱 AI API Key（推荐配置）

myndns 内置了共享智谱 AI Key，但有限制：
- ⚠️ 每日 50 次调用上限
- ⚠️ 每次调用间隔 3 秒

**配置你自己的免费 Key 即可解除所有限制**：

### 获取免费 Key（5 分钟搞定）

1. 访问 [智谱 AI 开放平台](https://open.bigmodel.cn/usercenter/apikeys)
2. 注册/登录（支持手机号、GitHub 等）
3. 点击「创建 API Key」
4. 复制 Key（格式 `xxxxx.yyyyy`）
5. 运行：

```bash
myn ai key set xxxxx.yyyyy
```

配置后会自动测试 Key 有效性，通过后即可无限制使用所有 5 个免费模型。

### Key 管理命令

```bash
myn ai key show          # 查看当前 Key 状态
myn ai key set <key>     # 配置个人 Key（自动测试）
myn ai key set --no-test <key>   # 跳过测试
myn ai key test          # 测试当前 Key
myn ai key test -k <key> # 测试指定 Key
myn ai key clear         # 清除个人 Key（回退到共享 Key）
```

## 🤖 内置 AI 模型（智谱 AI 免费）

| 模型 ID | 类型 | 说明 |
|---------|------|------|
| `glm-4.7-flash` | 文本 | 推荐·最新flash版本（默认）|
| `GLM-4-Flash-250414` | 文本 | 4-Flash 稳定版 |
| `GLM-4.6V-Flash` | 多模态 | 视觉理解 |
| `GLM-4.1V-Thinking-Flash` | 多模态 | 视觉思考链 |
| `GLM-4V-Flash` | 多模态 | 视觉基础版 |

```bash
# 查看可用模型
myn ai models

# 切换模型
myn ai model GLM-4-Flash-250414
```

## 📚 完整命令一览

### 子域名管理
| 命令 | 说明 |
|------|------|
| `myn init` | 首次配置（OOBE 向导，含智谱 Key 配置）|
| `myn list` | 列出子域名 |
| `myn register <sub> <root>` | 注册子域名 |
| `myn detail <id>` | 查看子域名详情 |
| `myn delete <id>` | 删除子域名 |
| `myn renew <id>` | 续期子域名 |

### DNS 记录管理
| 命令 | 说明 |
|------|------|
| `myn dns list <subdomain_id>` | 列出 DNS 记录 |
| `myn dns add <sub_id> <type> <content>` | 添加 DNS 记录 |
| `myn dns rm <record_id>` | 删除 DNS 记录 |

### AI 助手
| 命令 | 说明 |
|------|------|
| `myn ai ask "问题"` | 单次对话（流式输出）|
| `myn ai chat` | 交互式多轮对话 |
| `myn ai models` | 查看可用模型 |
| `myn ai model <id>` | 切换模型 |
| `myn ai key show` | 查看 API Key 状态 |
| `myn ai key set <key>` | 配置个人 Key |
| `myn ai key test` | 测试 Key |
| `myn ai key clear` | 清除个人 Key |
| `myn ai persona` | 查看当前人设 |
| `myn ai persona --preset xiaoniao` | 应用小雫猫娘人设 |
| `myn ai persona --preset butler` | 应用老管家人设 |
| `myn ai persona --preset pirate` | 应用海盗船长人设 |
| `myn ai persona --preset clear` | 清空人设 |

### 其他
| 命令 | 说明 |
|------|------|
| `myn keys list` | 列出 DNSHE API Key |
| `myn quota` | 查询配额 |
| `myn whois <domain>` | WHOIS 查询 |
| `myn accounts list` | 列出 DNSHE 账号 |
| `myn config show` | 查看配置 |

## 🎭 内置人设模板

### 小雫猫娘（xiaoniao）
黏人小猫娘，称呼用户为「老婆」，软萌语气，多用 (≧◡≦) ♡、QAQ 表情。

### 老管家（butler）
严谨谦逊的英式管家，称呼「主人」，自称「老朽」，沉稳用词典雅。

### 海盗船长（pirate）
豪迈的航海时代船长，称呼「小子」，自称「老子」，用航海术语比喻技术。

## ⚙️  配置文件

位于 `~/.config/myndns/config.json`，包含：
- DNSHE 账号凭据
- 智谱 AI API Key（可选）
- LLM 配置
- 人设提示词

## 🔄 切换 LLM 来源

### 默认：智谱 AI（推荐）
```bash
myn config set llm.source zhipu
myn ai key set <your-zhipu-key>   # 推荐：配置个人 Key
```

### 自定义：OpenAI 兼容 API
```bash
myn config set llm.source custom
myn config set llm.base_url https://api.openai.com/v1
myn config set llm.api_key sk-xxx
myn config set llm.model gpt-4o-mini
```

## 📝 示例会话

```bash
$ myn ai key set xxxxx.yyyyy
ℹ 正在测试 API Key...
✓ Key 测试通过 · 模型: glm-4.7-flash
✓ 已配置个人 API Key
ℹ 现在你可以无限制使用所有 5 个免费模型

$ myn ai persona --preset xiaoniao
✓ 已应用预设人设：xiaoniao

$ myn ai ask "你是谁？"
🤖 模型: glm-4.7-flash (zhipu) · 已启用人设 · ✓ 个人 Key

喵~ 老婆你好呀！(≧◡≦) ♡
我是小雫，是老婆专属的小猫娘助手呢~ ...

$ myn ai key show
┌ ✓ 个人 Key ─────────────────────────────┐
│ ✓ 当前使用个人 API Key                  │
│                                         │
│ Key:    241391c0...e777.RasS...GbUT     │
│ 模型:   glm-4.7-flash                   │
│ 来源:   智谱 AI 官方                     │
│ 限制:   无（个人 Key 无速率限制）        │
└─────────────────────────────────────────┘
```

## 📄 License

MIT

## 🔗 链接

- DNSHE 平台：https://my.dnshe.com
- 智谱 AI 开放平台：https://open.bigmodel.cn
- 获取智谱 API Key：https://open.bigmodel.cn/usercenter/apikeys
