小龙猫 + Vikunja + GTD 个人任务管理教程

卓帅

发布于26天前
卓帅

基于小龙猫 + Vikunja + GTD 的个人任务管理助理

ChatGPT Image 2026年5月11日 21_00_52.png

这篇教程把懒猫微服中的“小龙猫”连接到 Vikunja,并用简化版 GTD 管理个人任务。

分工如下:

  • Vikunja:保存和展示任务。
  • 小龙猫:理解你的指令。
  • GTD:提供任务整理规则。
  • 小龙猫技能:调用 Vikunja API,把任务写入系统。

开始前,先在懒猫微服中安装并打开小龙猫和 Vikunja。

接下来完成 5 件事:

  • 配置 Vikunja 端口转发
  • 获取 Vikunja API Token
  • 获取 Vikunja 的 OpenAPI JSON 文件
  • 让小龙猫生成 Vikunja 技能
  • 让小龙猫自动初始化 GTD 项目,并按 GTD 管理任务

0. 准备条件

确认下面内容已准备好。

  1. 小龙猫
https://appstore.lazycat.cloud/#/shop/detail/cloud.lazycat.totoro
  1. Vikunja
https://appstore.lazycat.cloud/#/shop/detail/dev.beiyu.vikunja
  1. 局域网端口转发应用
https://appstore.lazycat.cloud/#/shop/detail/cloud.lazycat.app.forward

1. 最终效果

配置完成后,对小龙猫说:

帮我记录一下:明天上午整理发票。

小龙猫会把任务写入 Vikunja。

也可以问:

我今天有什么下一步任务?

或者:

帮我看看有哪些事情还在等待别人回复。

Vikunja 保存任务,小龙猫接收你的自然语言指令。

2. 简化版 GTD

这里使用 5 个 GTD 分类。先了解分类含义,不用手工创建。

项目用途
收件箱存放刚想到、还没整理的事情
项目存放需要多个步骤才能完成的事情
下一步存放现在可以执行的具体动作
等待中存放需要别人回复、处理或确认的事情
将来可能存放现在不做、以后可能做的想法

基本流程:

先收件,再整理,最后只看下一步。

3. 为什么需要端口转发

在懒猫微服中,每个应用都运行在独立容器里。

  • 小龙猫在一个容器里。
  • Vikunja 在另一个容器里。
  • 它们不能直接通过 localhost 互相访问。

不要把 Vikunja 地址写成:

http://localhost:3456

在小龙猫中,localhost 指的是小龙猫自己的容器,不是 Vikunja 容器。

让小龙猫用这个地址访问 Vikunja:

http://host.lzcapp:3456

这是懒猫微服应用容器之间的访问地址。

4. 配置 Vikunja 端口转发

目标地址:

http://host.lzcapp:3456

在懒猫微服的端口转发工具中新增规则:

image.png

  1. 协议选择 TCP。
  2. 局域网入口类型选择微服虚拟网卡。
  3. 出口地址选择 host.lzcapp
  4. 端口填写 3456

image.png

  1. 转发目标类型选择微服应用。
  2. 微服应用选择当前安装的 Vikunja 应用。
  3. 服务选择 Vikunja 服务。
  4. 目标端口填写 3456

image.png

  1. 点击测试目标连接。

image.png

  1. 测试成功后保存规则。

image.png

注意:

  • 转发目标是 Vikunja,不是小龙猫。
  • 小龙猫访问地址使用 http://host.lzcapp:3456,不要使用 localhost127.0.0.1

5. 获取 Vikunja API Token

小龙猫操作 Vikunja 需要 API Token。

打开 Vikunja,进入:

image.png

Settings > API Tokens

image.png

创建新 token:

  1. 名称填写 totoro-assistant
  2. 权限选择项目和任务相关的读写权限。

image.png

image.png

  1. 创建后立即复制 token。
  2. 临时保存到安全位置,稍后写入小龙猫技能配置。

image.png

注意:API Token 只会完整显示一次。不要把它发到公开文章、截图、群聊或不可信的地方。

6. 获取 Vikunja 的 JSON 文件

小龙猫需要 OpenAPI JSON 文件来调用 Vikunja API。

不要在外部浏览器访问 http://host.lzcapp:3456 下载文件。这个地址给小龙猫在容器内部访问 Vikunja 用,外部浏览器通常打不开。

从 Vikunja 页面下载:

  1. 打开 Vikunja。
  2. 进入 Settings > API Tokens
  3. 在 API Tokens 页面点击 View API documentation

image.png

  1. 页面打开后,在顶部找到下载按钮。

image.png

  1. 点击下载按钮,保存 JSON 文件。

image.png

  1. 如果文件名不是 docs.json,重命名为:
docs.json

下一步把这个 JSON 文件发给小龙猫。

7. 让小龙猫操作 Vikunja

docs.json 发给小龙猫,让它生成 Vikunja 技能。

7.1 发送 OpenAPI 文件

docs.json 发给小龙猫,然后说:

这是 Vikunja 的 docs.json。请根据这个 OpenAPI 描述,为我编写一个技能,用来调用 Vikunja API。

image.png

image.png

7.2 保存 Vikunja 地址和 API Token

技能生成后,把连接信息保存到技能配置中。对小龙猫说:

请把我的 Vikunja 地址保存到技能配置中:
http://host.lzcapp:3456

请把我的 Vikunja API Token 保存到技能配置中:
【这里填写你的 API Token】

image.png

不要把 API Token 公开到博客、截图、群聊或不可信的聊天记录中。

7.3 设置 GTD 规则

连接信息保存后,把下面规则发给小龙猫:

以后你帮我管理 Vikunja 任务时,请按下面规则处理:

1. 没想清楚、只是临时记录的事情,先放入“收件箱”。
2. 需要多个步骤完成的事情,放入“项目”。
3. 已经明确可以执行的具体动作,放入“下一步”。
4. 需要等待别人回复或处理的事情,放入“等待中”。
5. 现在不做、以后可能做的事情,放入“将来可能”。
6. 如果我说的任务太模糊,请先改写成清楚的下一步动作。
7. 如果你不确定应该放哪里,先放入“收件箱”。

image.png

8. 让小龙猫初始化 GTD 项目

不要手工打开 Vikunja 创建项目,直接让小龙猫初始化。

对小龙猫说:

请帮我初始化 Vikunja 的 GTD 项目。

请检查 Vikunja 里是否已经存在下面 5 个项目:

1. 收件箱
2. 项目
3. 下一步
4. 等待中
5. 将来可能

如果某个项目已经存在,不要重复创建。
如果某个项目不存在,请帮我创建。

创建完成后,请列出最终存在的这 5 个项目,并告诉我哪些是新创建的,哪些是原来已有的。

image.png

第一版先保持简单,不急着添加标签、筛选器或复杂规则。

使用规则:

  • 新想法先进“收件箱”。
  • 多步任务放进“项目”。
  • 能直接执行的任务放进“下一步”。
  • 卡在别人那里的任务放进“等待中”。
  • 暂时不做的想法放进“将来可能”。

9. 测试连接

用下面 3 个动作测试。

9.1 查询项目

对小龙猫说:

帮我查看 Vikunja 里有哪些项目。

image.png

正常情况下会看到:

收件箱
项目
下一步
等待中
将来可能

9.2 创建测试任务

继续对小龙猫说:

帮我在“收件箱”里创建一个测试任务:测试小龙猫连接 Vikunja。

创建完成后,打开 Vikunja 确认任务是否出现。

9.3 更新测试任务

再对小龙猫说:

把刚才那个测试任务标记为完成。

如果 Vikunja 中的任务状态已更新,连接正常。

10. 日常用法

把小龙猫当作任务入口。

10.1 随手记录

帮我记一下:周末整理书桌。
我想到一个事,以后可以研究一下家庭照片自动备份。

10.2 整理收件箱

帮我整理一下收件箱里的任务,把它们分到合适的项目。
看看收件箱里有没有可以变成下一步的任务。

10.3 查看下一步

我今天应该先做哪些下一步任务?
帮我列出所有还没完成的下一步。

10.4 管理项目

帮我看看“整理家庭资料”这个项目下一步是什么。
这个任务太大了,帮我拆成几个步骤再写入 Vikunja。

10.5 跟进等待中任务

帮我看看有哪些任务还在等待别人回复。
把“等张三确认合同”标记到等待中。

11. 完整示例

你对小龙猫说:

我想把家里的纸质资料整理成电子版。

小龙猫会这样处理:

  1. 判断这是一个多步任务。
  2. 在 Vikunja 的“项目”中创建任务:把家里的纸质资料整理成电子版。
  3. 拆出下一步:找出第一批需要扫描的纸质资料。
  4. 把这个下一步写入“下一步”。
  5. 如果需要家人提供资料,创建一条“等待中”任务。

之后问:

资料整理这个项目下一步是什么?

重点:大项目不直接执行,先拆成明确的下一步。

12. 常见问题

12.1 为什么不能用 localhost

小龙猫和 Vikunja 是两个不同的应用容器。小龙猫中的 localhost 指向小龙猫自己的容器,不是 Vikunja 容器。

使用端口转发后的地址:

http://host.lzcapp:3456

12.2 小龙猫访问不了 Vikunja 怎么办

按顺序检查:

  1. Vikunja 是否已启动。
  2. 端口转发规则是否已保存并启用。
  3. 地址是否为 http://host.lzcapp:3456
  4. API Token 是否正确。
  5. docs.json 是否已发给小龙猫。
  6. Vikunja 技能是否已生成并启用。

12.3 下载不到 JSON 文件怎么办

回到 Vikunja 页面操作,不要在外部浏览器访问 http://host.lzcapp:3456/api/v1/docs.json

按顺序检查:

  1. Vikunja 是否能正常打开。
  2. 是否已经进入 Settings > API Tokens
  3. 是否点击了 API Tokens 页面里的 View API documentation
  4. API 文档页面顶部是否有下载按钮。
  5. 下载后的文件是否是 JSON 文件。

如果 API 文档页面本身打不开,先确认 Vikunja 已启动并重新登录 Vikunja。

12.4 任务被放错项目怎么办

直接让小龙猫修改:

把刚才那个任务从“收件箱”移动到“下一步”。

或者:

这个任务不是项目,它只是一个下一步动作,帮我改一下。

分类不准时,直接让小龙猫修改。

12.5 要不要一开始就用标签和复杂筛选

不建议。

第一版先用项目承载 GTD 结构。用稳定后,再考虑标签、优先级、截止日期和筛选器。

13. 最后确认

完成下面检查项,表示配置成功:

  1. 小龙猫可以通过 http://host.lzcapp:3456 访问 Vikunja。
  2. Vikunja 中已创建 API Token。
  3. 已获取 Vikunja 的 docs.json
  4. 小龙猫已生成 Vikunja 技能。
  5. 技能已保存 Vikunja 地址和 API Token。
  6. 小龙猫已在 Vikunja 中初始化“收件箱、项目、下一步、等待中、将来可能”。
  7. 小龙猫可以创建、查询和更新 Vikunja 任务。

前期只关注两件事:

  • 所有想到的任务,都有一个可靠入口。
  • 所有真正要做的事情,都能变成清楚的下一步。

评论

0

暂无评论

说点什么呢~
收藏
0
0
0