> ## Documentation Index
> Fetch the complete documentation index at: https://gnero.genetind.com/llms.txt
> Use this file to discover all available pages before exploring further.

# open-typeless

> 手把手教程：用 Trellis 开发 macOS 语音输入应用

# open-typeless

一个手把手教程，展示如何用 Trellis 从零开始构建 macOS 语音输入应用。

<Info>
  **源代码**: [github.com/mindfold-ai/open-typeless](https://github.com/mindfold-ai/open-typeless)
</Info>

## Step 1: 项目初始化

### 1.1 创建 Electron 项目

```bash theme={null}
npx create-electron-app@latest open-typeless --template=vite-typescript

cd open-typeless

# 删除 npm 生成的文件
rm -rf node_modules package-lock.json

# 创建 .npmrc (pnpm + Electron 必需)
cat > .npmrc << 'EOF'
node-linker=hoisted
shamefully-hoist=true
EOF

# 用 pnpm 重新安装
pnpm install
```

### 1.2 初始化 Trellis

```bash theme={null}
trellis init
```

<img src="https://mintcdn.com/genetind-32e49e31/_Iev2XFslXSK3lM6/images/use-cases/open-typeless/init.png?fit=max&auto=format&n=_Iev2XFslXSK3lM6&q=85&s=a19b7999e3370b1caf6d0340f1c0a0a5" alt="trellis init" width="1762" height="1350" data-path="images/use-cases/open-typeless/init.png" />

### 1.3 从旧项目复制 Spec

如果有类似项目的 spec，可以复制过来：

```bash theme={null}
cp -r /path/to/old-project/.trellis/spec ./
```

### 1.4 让 AI 填充 Spec

**Prompt:**

> 帮我从 electron-doc/ 里选择有用的 spec，整理到本项目的 .trellis/spec/ 里

AI 会分析并组织 spec：

<img src="https://mintcdn.com/genetind-32e49e31/_Iev2XFslXSK3lM6/images/use-cases/open-typeless/step1.png?fit=max&auto=format&n=_Iev2XFslXSK3lM6&q=85&s=fddf9a36e43c58eac864ec429dae043e" alt="spec selection" width="758" height="1590" data-path="images/use-cases/open-typeless/step1.png" />

## Step 2: 任务规划

### 2.1 让 AI 规划任务

**Prompt:**

> 我打算用火山引擎 ASR BigModel API 来做这个。帮我规划一下怎么拆分任务。

AI 创建基于批次的任务计划：

<img src="https://mintcdn.com/genetind-32e49e31/_Iev2XFslXSK3lM6/images/use-cases/open-typeless/step2-1.png?fit=max&auto=format&n=_Iev2XFslXSK3lM6&q=85&s=10aaa491ae6e9ac706af9a22afb1a29c" alt="task planning" width="1088" height="5446" data-path="images/use-cases/open-typeless/step2-1.png" />

### 2.2 创建任务

AI 把任务组织成批次：

| 批次      | 任务                                                                   | 目的             |
| ------- | -------------------------------------------------------------------- | -------------- |
| Batch 1 | `asr-infrastructure`                                                 | 基础设施（必须先完成）    |
| Batch 2 | `asr-audio-recorder`, `asr-volcengine-client`, `asr-floating-window` | 可以并行开发         |
| Batch 3 | `asr-integration`                                                    | 集成（依赖 Batch 2） |

<img src="https://mintcdn.com/genetind-32e49e31/_Iev2XFslXSK3lM6/images/use-cases/open-typeless/step2-2.png?fit=max&auto=format&n=_Iev2XFslXSK3lM6&q=85&s=532a95f802cd45cc35d7be8d1c3f9904" alt="tasks created" width="1116" height="1502" data-path="images/use-cases/open-typeless/step2-2.png" />

### 2.3 完成 Batch 1

Batch 1 完成后，验证并更新下游任务的 context：

<img src="https://mintcdn.com/genetind-32e49e31/_Iev2XFslXSK3lM6/images/use-cases/open-typeless/step2-3.png?fit=max&auto=format&n=_Iev2XFslXSK3lM6&q=85&s=a2cbddedeca63417f930fef22e5074f5" alt="batch 1 complete" width="1912" height="918" data-path="images/use-cases/open-typeless/step2-3.png" />

## Step 3: 并行开发

### 3.1 启动并行 Agent

**Prompt:** `/trellis:parallel`

AI 启动 3 个 worktree agent 开发 Batch 2，每个 agent 在隔离的 git worktree 中工作：

<img src="https://mintcdn.com/genetind-32e49e31/_Iev2XFslXSK3lM6/images/use-cases/open-typeless/step3-1.png?fit=max&auto=format&n=_Iev2XFslXSK3lM6&q=85&s=11db1490e6f6b6799aa23380fcc040cc" alt="parallel agents" width="2298" height="1646" data-path="images/use-cases/open-typeless/step3-1.png" />

## Step 4: 监控进度

### 4.1 查看 Agent 状态

AI 监控 agent 状态和任务进度：

<img src="https://mintcdn.com/genetind-32e49e31/_Iev2XFslXSK3lM6/images/use-cases/open-typeless/step4-1.png?fit=max&auto=format&n=_Iev2XFslXSK3lM6&q=85&s=d01d7b7c1f373dd34ddd368cc042c333" alt="agent status" width="2024" height="746" data-path="images/use-cases/open-typeless/step4-1.png" />

### 4.2 记录 Session

并行 agent 完成后会自动创建 PR：

<img src="https://mintcdn.com/genetind-32e49e31/_Iev2XFslXSK3lM6/images/use-cases/open-typeless/step3-4.png?fit=max&auto=format&n=_Iev2XFslXSK3lM6&q=85&s=809a844305c9f7b7082140225a75d406" alt="parallel PRs" width="2862" height="1068" data-path="images/use-cases/open-typeless/step3-4.png" />

合并并完成批次后，记录 session：

**Prompt:** `/trellis:record-session`

<img src="https://mintcdn.com/genetind-32e49e31/_Iev2XFslXSK3lM6/images/use-cases/open-typeless/step2-4.png?fit=max&auto=format&n=_Iev2XFslXSK3lM6&q=85&s=6fe17a637a2ce86b14a61e51497094bd" alt="record session" width="2032" height="1556" data-path="images/use-cases/open-typeless/step2-4.png" />

## Step 5: 继续开发

### 5.1 查看剩余任务

AI 显示当前项目的剩余任务：

<img src="https://mintcdn.com/genetind-32e49e31/_Iev2XFslXSK3lM6/images/use-cases/open-typeless/step5-1.png?fit=max&auto=format&n=_Iev2XFslXSK3lM6&q=85&s=b713c852f4b1d92c562984d3782684a9" alt="task list" width="1602" height="1240" data-path="images/use-cases/open-typeless/step5-1.png" />

### 5.2 实现下一个功能

选择下一个任务，AI 用 implement agent 然后 check agent：

<img src="https://mintcdn.com/genetind-32e49e31/_Iev2XFslXSK3lM6/images/use-cases/open-typeless/step5-2.png?fit=max&auto=format&n=_Iev2XFslXSK3lM6&q=85&s=4cd36ca2b77a6bb4828439d0370f1fe5" alt="implement and check" width="1498" height="1472" data-path="images/use-cases/open-typeless/step5-2.png" />

### 5.3 配置和测试

AI 帮助完成剩余设置（环境配置、权限）：

<img src="https://mintcdn.com/genetind-32e49e31/_Iev2XFslXSK3lM6/images/use-cases/open-typeless/step5-3.png?fit=max&auto=format&n=_Iev2XFslXSK3lM6&q=85&s=2064edaeb19fa66bb7cc72a646bf9c08" alt="final setup" width="2320" height="1694" data-path="images/use-cases/open-typeless/step5-3.png" />

## 总结

用 Trellis 构建 open-typeless：

| 步骤 | 做什么   | Trellis 功能                          |
| -- | ----- | ----------------------------------- |
| 1  | 初始化项目 | `trellis init`，spec 组织              |
| 2  | 规划任务  | AI 任务拆分，批次规划                        |
| 3  | 并行开发  | `/trellis:parallel`，worktree agents |
| 4  | 监控和记录 | `/trellis:record-session`           |
| 5  | 继续迭代  | Task hooks，implement/check agents   |

**结果：** 1 天完成完整 Electron 应用，有结构化的 spec 和文档化的进度。
