# ArrivalCLI 安装说明（1 分钟版）

这份说明给内部同事使用。

目标：在本机快速安装 `arrivalcli`，并完成最小验证。

---

## 1. 安装 wheel

假设你已经拿到这个文件：

- `arrivalcli-0.1.2-py3-none-any.whl`

在终端执行：

```bash
python3 -m pip install ~/Downloads/arrivalcli-0.1.2-py3-none-any.whl --user
```

如果 wheel 不在 `~/Downloads`，请改成你自己的真实路径。

---

## 2. 初始化配置

安装完成后执行：

```bash
ARRIVALCLI_BIN="$(python3 -m site --user-base)/bin/arrivalcli"
"$ARRIVALCLI_BIN" init
"$ARRIVALCLI_BIN" config show
```

这会生成配置文件：

```text
~/.arrivalcli/config.json
```

---

## 3. 填写配置

打开这个文件：

```text
~/.arrivalcli/config.json
```

把下面两个值改成真实值：

- `base_url`
- `api_key`

示例：

```json
{
  "base_url": "http://43.108.15.8:9527",
  "timeout_sec": 20,
  "api_key": "你的真实APIKey"
}
```

---

## 4. 做最小验证

执行：

```bash
ARRIVALCLI_BIN="$(python3 -m site --user-base)/bin/arrivalcli"
"$ARRIVALCLI_BIN" requirements -c singapore
```

如果能正常返回新加坡资料要求，说明：

- 安装成功
- 配置成功
- 远程服务可访问

---

## 5. 可选：以后直接用 `arrivalcli`

如果你不想每次都写完整路径，执行：

```bash
echo 'export PATH="$HOME/Library/Python/3.9/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
```

之后就可以直接用：

```bash
arrivalcli init
arrivalcli requirements -c singapore
```

如果你不想依赖 PATH，后续所有命令也都可以继续用完整路径，例如：

```bash
ARRIVALCLI_BIN="$(python3 -m site --user-base)/bin/arrivalcli"
"$ARRIVALCLI_BIN" --help
```

---

## 6. 常见问题

### 找不到 `pip`

请用：

```bash
python3 -m pip install ~/Downloads/arrivalcli-0.1.2-py3-none-any.whl --user
```

### 找不到 `arrivalcli`

先直接用完整路径：

```bash
ARRIVALCLI_BIN="$(python3 -m site --user-base)/bin/arrivalcli"
"$ARRIVALCLI_BIN" --help
```

### 验证失败

优先检查：

1. `~/.arrivalcli/config.json` 里的 `base_url` 是否正确
2. `api_key` 是否正确
3. 当前电脑是否能访问服务端

---

## 7. 下一步

安装成功后，如果你本机已经有 Claude Code，还需要把 `arrival-card-api` skill 安装到 Claude Code 实际使用的 user skills 目录。

先在 Claude Code 里输入：

```text
/skills
```

查看这一行：

```text
User skills (实际目录)
```

然后执行：

```bash
arrivalcli setup-claude --skills-dir "实际目录"
```

如果你的机器正好使用默认目录，也可以直接：

```bash
arrivalcli setup-claude
```

如果 Claude Code 环境和终端的 PATH 不一致，建议直接安装 skill 时把 CLI 路径写进去：

```bash
ARRIVALCLI_BIN="$(python3 -m site --user-base)/bin/arrivalcli"
"$ARRIVALCLI_BIN" setup-claude --skills-dir "实际目录" --cli-command "$ARRIVALCLI_BIN"
```

然后在 Claude Code 里输入：

```text
/skills
```

如果能看到：

- `arrival-card-api`

再输入：

```text
/arrival-card-api
```

能正常进入，就说明 Claude Code 已经识别这个 skill。

补充说明：

- Claude Code 识别 `arrival-card-api`
  - 依赖 skill 被安装到正确的 user skills 目录
- Claude Code 能调用 `arrivalcli`
  - 依赖本机终端里 `arrivalcli --help` 可执行

之后就可以继续体验：

- 查资料要求
- 创建订单
- 查询状态
- 下载结果
