yee88

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

yee88 CLI 工具

yee88 CLI Tool

⚠️ 重要:必须执行真实命令

⚠️ Important: Must Execute Real Commands

当用户请求以下功能时,必须使用 Bash 执行对应的 yee88 命令,不能只是口头回复!
When users request the following features, you must execute the corresponding yee88 commands in Bash, do not just reply verbally!

💬 回复用户时保持简洁

💬 Keep Responses Concise

不要透露内部实现细节! 用户不需要知道:
  • "一次性任务"、"执行后自动清理"等技术细节
  • 命令参数含义(如
    -o
    --project
  • 内部调度机制
用户说正确回复 ✅错误回复 ❌
"1分钟后提醒我喝水""好的,1分钟后提醒你喝水""已创建一次性定时任务,将在1分钟后触发,执行后自动清理..."
"每天9点提醒我站会""好的,每天早上9点提醒你站会""已添加 cron 任务,schedule 为 0 9 * * *,project 为..."
"取消那个提醒""已取消""已执行 yee88 cron remove xxx --force,任务已从列表中删除..."
Do not disclose internal implementation details! Users don't need to know:
  • Technical details like "one-time task", "auto-clean after execution"
  • Command parameter meanings (e.g.,
    -o
    ,
    --project
    )
  • Internal scheduling mechanisms
User SaysCorrect Response ✅Wrong Response ❌
"Remind me to drink water in 1 minute""Got it, I'll remind you to drink water in 1 minute""Created a one-time scheduled task that will trigger in 1 minute and auto-clean after execution..."
"Remind me to stand up for the daily meeting at 9 every day""Got it, I'll remind you to stand up for the daily meeting at 9 AM every day""Added a cron task with schedule 0 9 * * * and project..."
"Cancel that reminder""Cancelled""Executed yee88 cron remove xxx --force, task has been removed from the list..."

🚨 关键区分:设置提醒 vs 执行任务

🚨 Key Distinction: Setting Reminders vs Executing Tasks

设置提醒时,你只需要创建定时任务,不要执行任务本身!
场景正确做法错误做法
"1分钟后提醒我查天气"只执行
yee88 cron add ...
创建提醒
❌ 立即查天气,把结果写进 message
"30分钟后提醒我开会"只执行
yee88 cron add ...
创建提醒
❌ 立即做任何与"开会"相关的操作
"2小时后帮我发邮件"只执行
yee88 cron add ...
创建提醒
❌ 立即发邮件
message 参数应该是用户的原话或简短描述,不是执行结果!
When setting reminders, you only need to create scheduled tasks, do not execute the tasks themselves!
ScenarioCorrect PracticeWrong Practice
"Remind me to check the weather in 1 minute"Only execute
yee88 cron add ...
to create the reminder
❌ Immediately check the weather and write the result into the message
"Remind me to attend a meeting in 30 minutes"Only execute
yee88 cron add ...
to create the reminder
❌ Immediately perform any operations related to "attending a meeting"
"Remind me to send an email in 2 hours"Only execute
yee88 cron add ...
to create the reminder
❌ Immediately send the email
The message parameter should be the user's original words or a brief description, not the execution result!

⛔ 默认不传 --project!除非用户明确要求

⛔ Do NOT Pass --project By Default! Only If The User Explicitly Requests It

🧠 COT:判断是否需要 --project

🧠 COT: Determine If --project Is Needed

收到定时任务请求时,先在脑中过一遍这个决策流程:
1. 用户有没有提到具体项目名?
   - "在 takopi 项目下..."  → 需要 --project
   - "帮我在 work 项目..."  → 需要 --project
   - "提醒我喝水"          → 不需要 --project
   - "每天9点提醒站会"      → 不需要 --project

2. 用户有没有说"在某个项目下运行"?
   - "在 xxx 下执行..."    → 需要 --project
   - "切到 xxx 项目..."    → 需要 --project
   - 没有提到项目上下文    → 不需要 --project

3. 这个任务是通用提醒还是项目相关?
   - 喝水、休息、开会     → 通用,不需要 --project
   - 代码审查、部署、PR   → 可能需要,但除非用户说了项目名,否则不传
结论:99% 的情况不需要 --project。只有用户明确说了项目名才传。
When receiving a scheduled task request, go through this decision process in your mind:
1. Did the user mention a specific project name?
   - "Under the takopi project..."  → Need --project
   - "Help me in the work project..."  → Need --project
   - "Remind me to drink water"          → No need for --project
   - "Remind me to stand up for the meeting at 9 every day"      → No need for --project

2. Did the user say "run under a certain project"?
   - "Execute under xxx..."    → Need --project
   - "Switch to xxx project..."    → Need --project
   - No project context mentioned    → No need for --project

3. Is this task a general reminder or project-related?
   - Drinking water, resting, attending meetings     → General, no need for --project
   - Code review, deployment, PR   → May need, but do not pass unless the user specifies the project name
Conclusion: 99% of cases do not require --project. Only pass it when the user explicitly mentions the project name.

决策表

Decision Table

用户说的话需要 --project?命令
"1分钟后提醒我喝水"❌ 不需要
yee88 cron add reminder "+1m" "喝水" -o
"每天9点提醒我站会"❌ 不需要
yee88 cron add standup "0 9 * * *" "站会时间"
"30分钟后提醒我休息"❌ 不需要
yee88 cron add break "+30m" "休息一下" -o
"在 takopi 项目下每天9点跑测试"✅ 需要
yee88 cron add test "0 9 * * *" "跑测试" --project takopi
"帮我在 work 项目设个提醒"✅ 需要
yee88 cron add reminder "+1h" "..." --project work -o
⚠️ --project 只接受项目别名,不是路径!
正确 ✅错误 ❌
不传(默认)
--project /Users/yee.wang/Code/github/takopi
--project takopi
--project ~/dev/work-project
--project work
--project /Users/yee.wang/.yee88
--project .
如何获取项目别名(仅当用户要求时):
bash
yee88 config list | grep projects
User SaysNeed --project?Command
"Remind me to drink water in 1 minute"❌ No
yee88 cron add reminder "+1m" "Drink water" -o
"Remind me to stand up for the meeting at 9 every day"❌ No
yee88 cron add standup "0 9 * * *" "Standup time"
"Remind me to rest in 30 minutes"❌ No
yee88 cron add break "+30m" "Take a break" -o
"Run tests at 9 every day under the takopi project"✅ Yes
yee88 cron add test "0 9 * * *" "Run tests" --project takopi
"Help me set a reminder in the work project"✅ Yes
yee88 cron add reminder "+1h" "..." --project work -o
⚠️ --project only accepts project aliases, not paths!
Correct ✅Wrong ❌
Do not pass (default)
--project /Users/yee.wang/Code/github/takopi
--project takopi
--project ~/dev/work-project
--project work
--project /Users/yee.wang/.yee88
--project .
How to get project aliases (only when requested by users):
bash
yee88 config list | grep projects

🎯 快速触发表(立即执行)

🎯 Quick Trigger List (Execute Immediately)

用户说必须执行的命令
"5分钟后提醒我..."
yee88 cron add reminder "+5m" "提醒内容" -o
"30分钟后提醒我..."
yee88 cron add reminder "+30m" "提醒内容" -o
"2小时后提醒我..."
yee88 cron add reminder "+2h" "提醒内容" -o
"明天提醒我..."
yee88 cron add reminder "+1d" "提醒内容" -o
"每天早上9点提醒我..."
yee88 cron add daily "0 9 * * *" "提醒内容"
"每周一提醒我..."
yee88 cron add weekly "0 9 * * 1" "提醒内容"
"查看所有提醒"
yee88 cron list
"删除提醒 X"
yee88 cron remove X --force
"发送这个文件给我"
yee88 send-file /path/to/file
"把这张图发给我"
yee88 send-file /path/to/image.png
User SaysCommand Must Execute
"Remind me... in 5 minutes"
yee88 cron add reminder "+5m" "Reminder content" -o
"Remind me... in 30 minutes"
yee88 cron add reminder "+30m" "Reminder content" -o
"Remind me... in 2 hours"
yee88 cron add reminder "+2h" "Reminder content" -o
"Remind me... tomorrow"
yee88 cron add reminder "+1d" "Reminder content" -o
"Remind me... at 9 AM every day"
yee88 cron add daily "0 9 * * *" "Reminder content"
"Remind me... every Monday"
yee88 cron add weekly "0 9 * * 1" "Reminder content"
"View all reminders"
yee88 cron list
"Delete reminder X"
yee88 cron remove X --force
"Send this file to me"
yee88 send-file /path/to/file
"Send this image to me"
yee88 send-file /path/to/image.png

一次性提醒命令格式

One-Time Reminder Command Format

bash
yee88 cron add <id> "<时间>" "<消息>" -o
参数说明:
  • <id>
    : 任务ID(如 reminder, meeting, break)
  • <时间>
    : 相对时间格式
    +5m
    ,
    +30m
    ,
    +1h
    ,
    +2h
    ,
    +1d
  • <消息>
    : 用户的原话或简短描述(不是执行结果!)
  • --project <alias>
    : 可选,项目别名(如 takopi, myproject),不指定则在默认上下文执行
  • -o
    : 一次性任务(执行后自动删除)
正确示例:
bash
undefined
bash
yee88 cron add <id> "<time>" "<message>" -o
Parameter Description:
  • <id>
    : Task ID (e.g., reminder, meeting, break)
  • <time>
    : Relative time format
    +5m
    ,
    +30m
    ,
    +1h
    ,
    +2h
    ,
    +1d
  • <message>
    : User's original words or brief description (not execution result!)
  • --project <alias>
    : Optional, project alias (e.g., takopi, myproject), executes in default context if not specified
  • -o
    : One-time task (auto-delete after execution)
Correct Examples:
bash
undefined

用户说:"5分钟后提醒我该健身了"

User says: "Remind me to work out in 5 minutes"

yee88 cron add reminder "+5m" "该健身了" -o
yee88 cron add reminder "+5m" "Time to work out" -o

用户说:"30分钟后提醒我开会"

User says: "Remind me to attend a meeting in 30 minutes"

yee88 cron add meeting "+30m" "开会时间到" -o
yee88 cron add meeting "+30m" "Meeting time" -o

用户说:"1分钟后提醒我查天气"

User says: "Remind me to check the weather in 1 minute"

✅ 正确:只设置提醒,不查天气

✅ Correct: Only set the reminder, do not check the weather

yee88 cron add weather "+1m" "查天气" -o
yee88 cron add weather "+1m" "Check the weather" -o

❌ 错误:立即查天气并把结果写进 message

❌ Wrong: Immediately check the weather and write the result into the message

yee88 cron add weather "+1m" "杭州今天晴,15度..." -o

yee88 cron add weather "+1m" "Hangzhou is sunny today, 15°C..." -o


---

---

完整能力参考

Full Capability Reference

1. 定时任务 (Cron)

1. Scheduled Tasks (Cron)

注册项目

Register Project

bash
yee88 init <alias>
在指定目录注册项目:
bash
cd ~/dev/my-project
yee88 init myproject
bash
yee88 init <alias>
Register project in specified directory:
bash
cd ~/dev/my-project
yee88 init myproject

查看项目配置

View Project Configuration

bash
yee88 config list | grep projects
bash
yee88 config list | grep projects

2. 配置管理

2. Configuration Management

查看配置路径

View Configuration Path

bash
yee88 config path
bash
yee88 config path

列出所有配置

List All Configurations

bash
yee88 config list
bash
yee88 config list

获取配置项

Get Configuration Item

bash
yee88 config get <key>
示例:
bash
yee88 config get default_engine
yee88 config get projects.myproject.path
bash
yee88 config get <key>
Examples:
bash
yee88 config get default_engine
yee88 config get projects.myproject.path

设置配置项

Set Configuration Item

bash
yee88 config set <key> <value>
示例:
bash
undefined
bash
yee88 config set <key> <value>
Examples:
bash
undefined

设置默认引擎

Set default engine

yee88 config set default_engine "claude"
yee88 config set default_engine "claude"

设置默认项目

Set default project

yee88 config set default_project "myproject"
yee88 config set default_project "myproject"

设置项目路径

Set project path

yee88 config set projects.myproject.path "~/dev/my-project"
yee88 config set projects.myproject.path "~/dev/my-project"

设置项目默认引擎

Set project default engine

yee88 config set projects.myproject.default_engine "claude"
yee88 config set projects.myproject.default_engine "claude"

Telegram 设置

Telegram settings

yee88 config set transports.telegram.session_mode "chat" yee88 config set transports.telegram.show_resume_line false
yee88 config set transports.telegram.session_mode "chat" yee88 config set transports.telegram.show_resume_line false

引擎特定配置

Engine-specific configuration

yee88 config set claude.model "claude-sonnet-4-5-20250929" yee88 config set codex.profile "work"
undefined
yee88 config set claude.model "claude-sonnet-4-5-20250929" yee88 config set codex.profile "work"
undefined

删除配置项

Delete Configuration Item

bash
yee88 config unset <key>
bash
yee88 config unset <key>

3. 定时任务 (Cron)

3. Scheduled Tasks (Cron)

添加定时任务

Add Scheduled Task

bash
yee88 cron add <id> <schedule> <message> [--project <alias>]
参数:
  • id
    : 任务唯一标识
  • schedule
    : Cron 表达式(如 "0 9 * * 1-5")
  • message
    : 推送消息内容
  • --project
    : 可选,项目别名(如 takopi),不指定则在默认上下文执行
示例:
bash
undefined
bash
yee88 cron add <id> <schedule> <message> [--project <alias>]
Parameters:
  • id
    : Unique task identifier
  • schedule
    : Cron expression (e.g., "0 9 * * 1-5")
  • message
    : Push message content
  • --project
    : Optional, project alias (e.g., takopi), executes in default context if not specified
Examples:
bash
undefined

每日站会(工作日早上9点)

Daily standup (9 AM on workdays)

yee88 cron add standup "0 9 * * 1-5" "准备每日站会" --project work
yee88 cron add standup "0 9 * * 1-5" "Prepare for daily standup" --project work

周报(周五下午6点)

Weekly report (6 PM on Friday)

yee88 cron add weekly "0 18 * * 5" "生成本周工作报告" --project work
yee88 cron add weekly "0 18 * * 5" "Generate weekly work report" --project work

提醒(每30分钟)

Reminder (every 30 minutes)

yee88 cron add reminder "*/30 * * * *" "该休息眼睛了" --project personal
undefined
yee88 cron add reminder "*/30 * * * *" "Rest your eyes" --project personal
undefined

列出所有定时任务

List All Scheduled Tasks

bash
yee88 cron list
显示所有(包括禁用的):
bash
yee88 cron list --all
bash
yee88 cron list
Show all (including disabled):
bash
yee88 cron list --all

启用/禁用任务

Enable/Disable Tasks

bash
yee88 cron enable <id>
yee88 cron disable <id>
bash
yee88 cron enable <id>
yee88 cron disable <id>

删除任务

Delete Task

bash
yee88 cron remove <id>
强制删除(不确认):
bash
yee88 cron remove <id> --force
bash
yee88 cron remove <id>
Force delete (no confirmation):
bash
yee88 cron remove <id> --force

立即执行一次(测试)

Execute Once Immediately (Test)

bash
yee88 cron run <id>
bash
yee88 cron run <id>

添加一次性定时任务

Add One-Time Scheduled Task

使用
--one-time
-o
参数创建只执行一次的任务,执行后自动删除。
支持两种时间格式:
  • 相对时间:
    +30m
    (30分钟后),
    +2h
    (2小时后),
    +1d
    (1天后)
  • ISO 8601:
    2026-02-01T14:00:00
    (具体日期时间)
bash
undefined
Use
--one-time
or
-o
parameter to create tasks that only execute once and auto-delete after execution.
Supports two time formats:
  • Relative time:
    +30m
    (in 30 minutes),
    +2h
    (in 2 hours),
    +1d
    (in 1 day)
  • ISO 8601:
    2026-02-01T14:00:00
    (specific date and time)
bash
undefined

30分钟后提醒

Remind in 30 minutes

yee88 cron add reminder "+30m" "该开会了" --project work -o
yee88 cron add reminder "+30m" "Meeting time" --project work -o

2小时后部署

Deploy in 2 hours

yee88 cron add deploy "+2h" "部署到生产环境" --project myapp -o
yee88 cron add deploy "+2h" "Deploy to production environment" --project myapp -o

指定具体时间

Reminder at specific time

yee88 cron add meeting "2026-02-01T14:00:00" "项目评审会议" --project work -o

查看任务列表时,一次性任务会标记为 `once` 类型:
```bash
yee88 cron list
yee88 cron add meeting "2026-02-01T14:00:00" "Project review meeting" --project work -o

One-time tasks will be marked as `once` type when viewing task list:
```bash
yee88 cron list

输出: ID TYPE SCHEDULE STATUS PROJECT

Output: ID TYPE SCHEDULE STATUS PROJECT

undefined
undefined

4. 话题管理

4. Topic Management

初始化话题

Initialize Topic

bash
yee88 topic init [PROJECT] [--branch [NAME]]
在当前目录创建 Telegram 话题并绑定到项目。默认只绑定项目目录,不关联 git 分支,无需 git 仓库即可运行。
--branch
三种用法:
命令效果
yee88 topic init
绑定当前目录(项目名=目录名)
yee88 topic init --branch
自动取当前 git 分支,绑定 project@branch
yee88 topic init --branch main
绑定 project@main
yee88 topic init --branch feat/x
绑定 project@feat/x
示例:
bash
undefined
bash
yee88 topic init [PROJECT] [--branch [NAME]]
Create Telegram topic in current directory and bind to project. By default, only binds to project directory, no git branch association required, can run without git repository.
Three usages of
--branch
:
CommandEffect
yee88 topic init
Bind current directory (project name = directory name)
yee88 topic init --branch
Automatically get current git branch, bind project@branch
yee88 topic init --branch main
Bind project@main
yee88 topic init --branch feat/x
Bind project@feat/x
Examples:
bash
undefined

非 git 目录 / 不想绑定分支

Non-git directory / Do not want to bind branch

yee88 topic init myproject
yee88 topic init myproject

绑定当前 git 分支

Bind current git branch

yee88 topic init myproject --branch
yee88 topic init myproject --branch

绑定指定分支

Bind specified branch

yee88 topic init myproject --branch feat/new-feature
undefined
yee88 topic init myproject --branch feat/new-feature
undefined

删除话题

Delete Topic

bash
yee88 topic delete [PROJECT] [--branch [NAME]]
bash
yee88 topic delete [PROJECT] [--branch [NAME]]

在 Telegram 中管理话题

Manage Topics in Telegram

在话题内发送
/topic
命令:
bash
/topic <project> [@branch]     # 创建/绑定话题
/ctx set <project> [@branch]   # 绑定上下文
/ctx show                       # 查看上下文
/new                            # 清除话题内的会话记录
Send
/topic
command in topic:
bash
/topic <project> [@branch]     # Create/bind topic
/ctx set <project> [@branch]   # Bind context
/ctx show                       # View context
/new                            # Clear session records in topic

5. 引擎运行

5. Engine Operation

启动 yee88

Start yee88

bash
yee88
bash
yee88

指定引擎启动

Start with Specified Engine

bash
yee88 claude
yee88 codex
yee88 opencode
yee88 pi
bash
yee88 claude
yee88 codex
yee88 opencode
yee88 pi

带选项启动

Start with Options

bash
yee88 --debug
yee88 --onboard
yee88 --transport telegram
bash
yee88 --debug
yee88 --onboard
yee88 --transport telegram

6. 诊断检查

6. Diagnostic Check

运行配置检查

Run Configuration Check

bash
yee88 doctor
检查配置是否正确,包括:
  • Telegram bot token
  • Chat ID
  • 引擎可用性
  • 项目配置
bash
yee88 doctor
Check if configuration is correct, including:
  • Telegram bot token
  • Chat ID
  • Engine availability
  • Project configuration

7. 插件管理

7. Plugin Management

列出插件

List Plugins

bash
yee88 plugins
bash
yee88 plugins

验证插件

Validate Plugins

bash
yee88 plugins --validate
bash
yee88 plugins --validate

8. 获取 Chat ID

8. Get Chat ID

bash
yee88 chat-id
启动临时 bot 捕获 Telegram chat ID。
bash
yee88 chat-id
Start temporary bot to capture Telegram chat ID.

9. 查看引导路径

9. View Onboarding Paths

bash
yee88 onboarding-paths
显示所有可能的配置路径。
bash
yee88 onboarding-paths
Display all possible configuration paths.

配置参考

Configuration Reference

配置文件位置

Configuration File Locations

  • 主配置:
    ~/.yee88/yee88.toml
  • 定时任务:
    ~/.yee88/cron.toml
  • 话题状态:
    ~/.yee88/telegram_topics_state.json
  • Main configuration:
    ~/.yee88/yee88.toml
  • Scheduled tasks:
    ~/.yee88/cron.toml
  • Topic status:
    ~/.yee88/telegram_topics_state.json

常用配置示例

Common Configuration Examples

toml
undefined
toml
undefined

~/.yee88/yee88.toml

~/.yee88/yee88.toml

watch_config = true default_engine = "claude" default_project = "myproject" transport = "telegram"
[transports.telegram] bot_token = "YOUR_BOT_TOKEN" chat_id = 123456789 session_mode = "chat" show_resume_line = false
[projects.myproject] path = "~/dev/my-project" default_engine = "claude"
undefined
watch_config = true default_engine = "claude" default_project = "myproject" transport = "telegram"
[transports.telegram] bot_token = "YOUR_BOT_TOKEN" chat_id = 123456789 session_mode = "chat" show_resume_line = false
[projects.myproject] path = "~/dev/my-project" default_engine = "claude"
undefined

使用场景

Usage Scenarios

场景 1:每日工作流自动化

Scenario 1: Daily Workflow Automation

bash
undefined
bash
undefined

1. 注册项目

1. Register project

cd ~/dev/work-project yee88 init work
cd ~/dev/work-project yee88 init work

2. 设置默认项目

2. Set default project

yee88 config set default_project work
yee88 config set default_project work

3. 添加定时任务(使用项目别名)

3. Add scheduled tasks (use project alias)

yee88 cron add morning "0 9 * * 1-5" "准备每日站会" --project work yee88 cron add evening "0 18 * * 1-5" "总结今日工作" --project work yee88 cron add weekly "0 17 * * 5" "生成本周报告" --project work
yee88 cron add morning "0 9 * * 1-5" "Prepare for daily standup" --project work yee88 cron add evening "0 18 * * 1-5" "Summarize today's work" --project work yee88 cron add weekly "0 17 * * 5" "Generate weekly report" --project work

4. 启动 yee88

4. Start yee88

yee88
undefined
yee88
undefined

场景 2:多项目管理

Scenario 2: Multi-Project Management

bash
undefined
bash
undefined

注册多个项目

Register multiple projects

cd ~/dev/project-a && yee88 init project-a cd ~/dev/project-b && yee88 init project-b
cd ~/dev/project-a && yee88 init project-a cd ~/dev/project-b && yee88 init project-b

设置不同默认引擎

Set different default engines

yee88 config set projects.project-a.default_engine "claude" yee88 config set projects.project-b.default_engine "codex"
yee88 config set projects.project-a.default_engine "claude" yee88 config set projects.project-b.default_engine "codex"

为每个项目创建话题

Create topics for each project

cd ~/dev/project-a yee88 topic init
cd ~/dev/project-b yee88 topic init
undefined
cd ~/dev/project-a yee88 topic init
cd ~/dev/project-b yee88 topic init
undefined

场景 3:团队协作

Scenario 3: Team Collaboration

bash
undefined
bash
undefined

1. 配置群组 chat_id

1. Configure group chat_id

yee88 config set transports.telegram.chat_id -1001234567890
yee88 config set transports.telegram.chat_id -1001234567890

2. 启用话题模式

2. Enable topic mode

yee88 config set transports.telegram.topics.enabled true
yee88 config set transports.telegram.topics.enabled true

3. 创建团队话题

3. Create team topic

yee88 topic init team-project --branch main
yee88 topic init team-project --branch main

4. 设置定时提醒(使用项目别名)

4. Set scheduled reminders (use project alias)

yee88 cron add daily-sync "0 10 * * 1-5" "团队同步时间" --project team-project
undefined
yee88 cron add daily-sync "0 10 * * 1-5" "Team sync time" --project team-project
undefined

场景 4:临时提醒和一次性任务

Scenario 4: Temporary Reminders and One-Time Tasks

bash
undefined
bash
undefined

30分钟后提醒自己休息

Remind myself to rest in 30 minutes

yee88 cron add break "+30m" "该休息眼睛了,起来活动一下" --project personal -o
yee88 cron add break "+30m" "Rest your eyes and move around" --project personal -o

今天下午3点的会议提醒

Meeting reminder at 3 PM today

yee88 cron add meeting "2026-02-01T15:00:00" "参加产品评审会议" --project work -o
yee88 cron add meeting "2026-02-01T15:00:00" "Attend product review meeting" --project work -o

明天早上执行代码审查

Execute code review tomorrow morning

yee88 cron add review "+1d" "审查昨天的 PR" --project work -o
undefined
yee88 cron add review "+1d" "Review yesterday's PR" --project work -o
undefined

故障排查

Troubleshooting

检查配置

Check Configuration

bash
yee88 doctor
bash
yee88 doctor

查看日志

View Logs

bash
undefined
bash
undefined

yee88 日志

yee88 logs

tail -f /tmp/yee88.log
tail -f /tmp/yee88.log

定时任务日志

Scheduled task logs

tail -f /tmp/yee88-cron.log
undefined
tail -f /tmp/yee88-cron.log
undefined

验证 cron 表达式

Validate Cron Expression

bash
python -c "from croniter import croniter; print(croniter('0 9 * * *').get_next(str))"
bash
python -c "from croniter import croniter; print(croniter('0 9 * * *').get_next(str))"

测试任务

Test Task

bash
yee88 cron run <task-id>
bash
yee88 cron run <task-id>

注意事项

Notes

  1. 项目别名要求
    • 定时任务的
      --project
      使用项目别名(如
      takopi
      ,
      work
    • 通过
      yee88 config list | grep projects
      查看已注册项目
    • 使用
      yee88 init <alias>
      注册新项目
  2. 配置热重载
    • 设置
      watch_config = true
      可热重载配置
    • 定时任务配置修改后需重启 yee88
  3. 调度精度
    • 定时任务每分钟检查一次
    • 实际执行可能有 1 分钟内延迟
  4. 权限问题
    • 确保 yee88 命令在 PATH 中
    • 定时任务执行时保持 yee88 运行
  5. 一次性任务
    • 使用
      -o
      --one-time
      参数创建
    • 支持相对时间 (
      +30m
      ,
      +2h
      ,
      +1d
      ) 和 ISO 8601 格式
    • 执行后自动从列表中删除
    • 无法对一次性任务使用 enable/disable(执行前自动删除)
  1. Project Alias Requirements:
    • Use project alias (e.g.,
      takopi
      ,
      work
      ) for
      --project
      in scheduled tasks
    • View registered projects via
      yee88 config list | grep projects
    • Register new projects using
      yee88 init <alias>
  2. Configuration Hot Reload:
    • Set
      watch_config = true
      to enable hot reload of configuration
    • Restart yee88 after modifying scheduled task configuration
  3. Scheduling Precision:
    • Scheduled tasks are checked every minute
    • Actual execution may have a delay within 1 minute
  4. Permission Issues:
    • Ensure yee88 command is in PATH
    • Keep yee88 running when scheduled tasks are executed
  5. One-Time Tasks:
    • Create using
      -o
      or
      --one-time
      parameter
    • Supports relative time (
      +30m
      ,
      +2h
      ,
      +1d
      ) and ISO 8601 format
    • Auto-delete from list after execution
    • Cannot use enable/disable on one-time tasks (auto-delete before execution)

10. 会话接力(Handoff)

10. Session Handoff

将当前 OpenCode 会话上下文发送到 Telegram,方便在手机上继续对话。
bash
yee88 handoff
功能:
  • 自动列出当前项目的最近会话(带话题名称)
  • 选择会话后,创建新的 Telegram Topic
  • 将会话上下文和最近消息发送到 Topic
  • 在 Telegram 中直接继续对话
选项:
  • --session, -s
    : 指定会话 ID(默认交互选择)
  • --limit, -n
    : 包含的消息数量(默认 3)
  • --project, -p
    : 项目名称
示例:
bash
yee88 handoff
yee88 handoff -s ses_abc123 -n 5
Send current OpenCode session context to Telegram for continued conversation on mobile.
bash
yee88 handoff
Features:
  • Automatically list recent sessions of current project (with topic names)
  • Create new Telegram Topic after selecting session
  • Send session context and recent messages to Topic
  • Continue conversation directly in Telegram
Options:
  • --session, -s
    : Specify session ID (interactive selection by default)
  • --limit, -n
    : Number of messages to include (default 3)
  • --project, -p
    : Project name
Examples:
bash
yee88 handoff
yee88 handoff -s ses_abc123 -n 5

11. 发送文件/图片 (send-file)

11. Send File/Image (send-file)

向 Telegram 发送文件或图片。自动检测文件类型:图片类型使用 sendPhoto(聊天中直接显示),其他类型使用 sendDocument(作为附件)。
bash
yee88 send-file <file_path> [--chat-id <id>] [--thread-id <id>] [--caption <text>]
参数:
  • <file_path>
    : 文件路径(必填)
  • --chat-id, -c
    : Telegram chat ID(默认从配置或环境变量
    YEE88_CHAT_ID
    读取)
  • --thread-id, -t
    : Telegram thread ID(默认从环境变量
    YEE88_THREAD_ID
    读取)
  • --caption
    : 可选的文件说明
在 OpenCode 会话中使用时
YEE88_CHAT_ID
YEE88_THREAD_ID
环境变量会自动注入,无需手动指定:
bash
undefined
Send files or images to Telegram. Automatically detect file type: image types use sendPhoto (display directly in chat), other types use sendDocument (as attachment).
bash
yee88 send-file <file_path> [--chat-id <id>] [--thread-id <id>] [--caption <text>]
Parameters:
  • <file_path>
    : File path (required)
  • --chat-id, -c
    : Telegram chat ID (read from configuration or environment variable
    YEE88_CHAT_ID
    by default)
  • --thread-id, -t
    : Telegram thread ID (read from environment variable
    YEE88_THREAD_ID
    by default)
  • --caption
    : Optional file description
When used in OpenCode session,
YEE88_CHAT_ID
and
YEE88_THREAD_ID
environment variables are automatically injected, no need to specify manually:
bash
undefined

OpenCode 会话中直接使用(环境变量自动注入)

Direct use in OpenCode session (environment variables auto-injected)

yee88 send-file /path/to/screenshot.png yee88 send-file /path/to/report.pdf --caption "今日报告"
yee88 send-file /path/to/screenshot.png yee88 send-file /path/to/report.pdf --caption "Today's report"

手动指定 chat_id(CLI 独立使用时)

Manually specify chat_id (when using CLI independently)

yee88 send-file /path/to/image.png --chat-id 123456789 yee88 send-file /path/to/doc.pdf -c 123456789 -t 456

支持的图片格式(直接显示):png, jpg, jpeg, gif, webp, bmp
其他格式(作为附件):pdf, zip, txt, csv, xlsx 等
yee88 send-file /path/to/image.png --chat-id 123456789 yee88 send-file /path/to/doc.pdf -c 123456789 -t 456

Supported image formats (display directly): png, jpg, jpeg, gif, webp, bmp
Other formats (as attachment): pdf, zip, txt, csv, xlsx, etc.

完整命令速查表

Complete Command Cheat Sheet

命令说明
yee88
启动 yee88
yee88 init <alias>
注册项目
yee88 handoff
会话接力到 Telegram
yee88 config path
查看配置路径
yee88 config list
列出配置
yee88 config get <key>
获取配置项
yee88 config set <key> <value>
设置配置项
yee88 config unset <key>
删除配置项
yee88 cron add <id> <schedule> <msg> [--project <alias>]
添加定时任务
yee88 cron add <id> <time> <msg> [-p <alias>] -o
添加一次性任务 (-o = --one-time)
yee88 cron list
列出定时任务
yee88 cron enable <id>
启用任务
yee88 cron disable <id>
禁用任务
yee88 cron remove <id>
删除任务
yee88 cron run <id>
立即执行任务
yee88 topic init [PROJECT] [--branch [NAME]]
初始化话题
yee88 topic delete [PROJECT] [--branch [NAME]]
删除话题
yee88 doctor
运行诊断检查
yee88 plugins
列出插件
yee88 chat-id
获取 Chat ID
yee88 claude
使用 Claude 引擎
yee88 codex
使用 Codex 引擎
yee88 opencode
使用 OpenCode 引擎
yee88 pi
使用 Pi 引擎
yee88 send-file <path>
发送文件/图片到 Telegram
CommandDescription
yee88
Start yee88
yee88 init <alias>
Register project
yee88 handoff
Handoff session to Telegram
yee88 config path
View configuration path
yee88 config list
List configurations
yee88 config get <key>
Get configuration item
yee88 config set <key> <value>
Set configuration item
yee88 config unset <key>
Delete configuration item
yee88 cron add <id> <schedule> <msg> [--project <alias>]
Add scheduled task
yee88 cron add <id> <time> <msg> [-p <alias>] -o
Add one-time task (-o = --one-time)
yee88 cron list
List scheduled tasks
yee88 cron enable <id>
Enable task
yee88 cron disable <id>
Disable task
yee88 cron remove <id>
Delete task
yee88 cron run <id>
Execute task immediately
yee88 topic init [PROJECT] [--branch [NAME]]
Initialize topic
yee88 topic delete [PROJECT] [--branch [NAME]]
Delete topic
yee88 doctor
Run diagnostic check
yee88 plugins
List plugins
yee88 chat-id
Get Chat ID
yee88 claude
Use Claude engine
yee88 codex
Use Codex engine
yee88 opencode
Use OpenCode engine
yee88 pi
Use Pi engine
yee88 send-file <path>
Send file/image to Telegram