npm package: @jutiai/cli
Description: jutiai 命令行工具 — 快速发布笔记到 jutiai.com
Author: jutiai
Latest version: 0.1.0

# jutiai CLI & Open API 使用说明

命令行工具 + 开放 API，快速发布 Markdown 笔记到巨梯AI平台。

---

## 一、CLI 命令行工具

### 安装

```bash
cd packages/cli
pnpm install
pnpm build
```

### 配置

#### 1. 创建 API Key

登录后访问 `/app/api-keys` 页面，点击「创建 API Key」并复制。

#### 2. 登录

```bash
jutiai login -k jai_你的key                              # 默认服务器
jutiai login -k jai_你的key -s http://localhost:5002      # 本地开发
```

#### 3. 查看配置

```bash
jutiai whoami
```

配置文件保存在 `~/.jutiai/config.json`。

---

### 快速上手

```bash
# 发布文件（标题自动取文件名）
jutiai publish note.md

# 指定知识库
jutiai publish note.md -w AI教程

# 指定标题
jutiai publish note.md -t "自定义标题"

# 直接传内容（不需要文件）
jutiai publish -t "标题" -c "# Hello World\n\n内容"

# 管道输入
cat note.md | jutiai publish -t "我的笔记"

# 公开发布
jutiai publish note.md -p

# JSON 输出
jutiai publish note.md -f json
```

> 所有短标志（如 `-t`）也支持完整写法（如 `--title`），两种都可以用。

---

### 命令参考

#### `publish` — 发布笔记

```bash
jutiai publish [file] [options]
```

| 短标志 | 完整写法 | 说明 |
|------|------|------|
| `-t` | `--title` | 笔记标题（默认取文件名） |
| `-c` | `--content` | 笔记内容（Markdown） |
| `-w` | `--wiki` | 知识库名称（模糊匹配，不存在自动创建） |
| `-p` | `--public` | 公开发布（默认私有） |
| `-f` | `--format` | 输出格式：`text`（默认）/ `json` |
| | `--wiki-id` | 知识库 ID（精确匹配） |

**内容来源优先级：** 文件 > `-c` > stdin 管道

**知识库解析：** 指定 `-w` → 模糊匹配，不存在自动创建。不指定 → 默认「快速笔记」

#### `wikis` — 查看知识库

```bash
jutiai wikis
jutiai wikis -f json
```

#### `login` — 配置认证

| 短标志 | 完整写法 | 说明 |
|------|------|------|
| `-k` | `--key` | API Key |
| `-s` | `--server` | 服务器地址（默认 https://jutiai.com） |

#### `whoami` — 查看当前配置

---

### 开发模式

```bash
npx ts-node src/index.ts publish ./test/流程图框架分析.md
npx ts-node src/index.ts login -k jai_xxx -s http://localhost:5002
npx ts-node src/index.ts wikis
```

---

## 二、Open API 接口

通过 HTTP 接口直接调用，适用于脚本、MCP 工具、第三方集成。

**认证：** `Authorization: Bearer jai_xxx`

**Base URL：** `https://jutiai.com/api`（本地 `http://localhost:5002/api`）

---

### 1. 发布笔记

```
POST /api/open/notes/publish
```

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `title` | string | ✅ | 笔记标题 |
| `content` | string | 否 | Markdown 内容 |
| `format` | string | 否 | `markdown`（默认）/ `html` / `json` |
| `wiki` | string | 否 | 知识库名称（模糊匹配） |
| `wikiId` | string | 否 | 知识库 ID |
| `status` | string | 否 | `public` / `private`（默认） |
| `parentDocumentId` | string | 否 | 父文档 ID |
| `source` | string | 否 | `api` / `cli` / `mcp` / `skill` |

```bash
# 发布
curl -X POST http://localhost:5002/api/open/notes/publish \
  -H "Authorization: Bearer jai_xxx" \
  -H "Content-Type: application/json" \
  -d '{"title":"笔记","content":"# Hello"}'

# 指定知识库
curl -X POST http://localhost:5002/api/open/notes/publish \
  -H "Authorization: Bearer jai_xxx" \
  -H "Content-Type: application/json" \
  -d '{"title":"笔记","content":"# Hello","wiki":"AI教程"}'
```

**响应：**

```json
{
  "id": "doc-uuid",
  "title": "笔记",
  "wikiId": "wiki-uuid",
  "wikiName": "AI教程",
  "status": "private",
  "createdAt": "2026-03-24T01:00:00Z"
}
```

---

### 2. 查看知识库

```
GET /api/open/notes/wikis
```

```bash
curl http://localhost:5002/api/open/notes/wikis \
  -H "Authorization: Bearer jai_xxx"
```

---

### 3. 获取笔记

```
GET /api/open/notes/:id
```

---

### 4. 更新笔记

```
PUT /api/open/notes/:id
```

| 字段 | 类型 | 说明 |
|------|------|------|
| `title` | string | 新标题 |
| `content` | string | 新内容 |

---

### 5. 删除笔记

```
DELETE /api/open/notes/:id
```

> ⚠️ 需要 API Key 包含 `delete` 权限。

---

## 三、错误码

| 状态码 | 说明 |
|------|------|
| 201 | 发布成功 |
| 204 | 删除成功 |
| 400 | 参数错误 |
| 401 | API Key 无效 |
| 403 | 无权限 |
| 404 | 不存在 |