yee88

Original:🇨🇳 Chinese
Translated

Use this when the user says "remind me", "in X minutes/hours", "schedule", "daily/weekly", "set alarm", "register project", "switch engine", "create topic". yee88 Telegram bridge tool supports one-time reminders (+30m, +2h), scheduled tasks (cron), project management, topic management, and multi-engine switching. Operate directly via yee88 CLI commands.

17installs
Added on

NPX Install

npx skill4agent add yee94/yee88 yee88

Tags

Translated version includes tags in frontmatter

SKILL.md Content (Chinese)

View Translation Comparison →

yee88 CLI Tool

⚠️ Important: Must Execute Real Commands

When users request the following features, you must execute the corresponding yee88 commands in Bash, do not just reply verbally!

💬 Keep Responses Concise

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..."

🚨 Key Distinction: Setting Reminders vs Executing Tasks

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!

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

🧠 COT: Determine If --project Is Needed

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

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)

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> "<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
# User says: "Remind me to work out in 5 minutes"
yee88 cron add reminder "+5m" "Time to work out" -o

# User says: "Remind me to attend a meeting in 30 minutes"
yee88 cron add meeting "+30m" "Meeting time" -o

# 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" "Check the weather" -o

# ❌ Wrong: Immediately check the weather and write the result into the message
# yee88 cron add weather "+1m" "Hangzhou is sunny today, 15°C..." -o

Full Capability Reference

1. Scheduled Tasks (Cron)

Register Project

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

2. Configuration Management

View Configuration Path

bash
yee88 config path

List All Configurations

bash
yee88 config list

Get Configuration Item

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>
Examples:
bash
# Set default engine
yee88 config set default_engine "claude"

# Set default project
yee88 config set default_project "myproject"

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

# Set project default engine
yee88 config set projects.myproject.default_engine "claude"

# Telegram settings
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"

Delete Configuration Item

bash
yee88 config unset <key>

3. Scheduled Tasks (Cron)

Add Scheduled Task

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
# Daily standup (9 AM on workdays)
yee88 cron add standup "0 9 * * 1-5" "Prepare for daily standup" --project work

# Weekly report (6 PM on Friday)
yee88 cron add weekly "0 18 * * 5" "Generate weekly work report" --project work

# Reminder (every 30 minutes)
yee88 cron add reminder "*/30 * * * *" "Rest your eyes" --project personal

List All Scheduled Tasks

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>

Delete Task

bash
yee88 cron remove <id>
Force delete (no confirmation):
bash
yee88 cron remove <id> --force

Execute Once Immediately (Test)

bash
yee88 cron run <id>

Add One-Time Scheduled Task

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
# Remind in 30 minutes
yee88 cron add reminder "+30m" "Meeting time" --project work -o

# Deploy in 2 hours
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 review meeting" --project work -o
One-time tasks will be marked as
once
type when viewing task list:
bash
yee88 cron list
# Output: ID                   TYPE       SCHEDULE             STATUS     PROJECT

4. Topic Management

Initialize Topic

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
# Non-git directory / Do not want to bind branch
yee88 topic init myproject

# Bind current git branch
yee88 topic init myproject --branch

# Bind specified branch
yee88 topic init myproject --branch feat/new-feature

Delete Topic

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

Manage Topics in Telegram

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. Engine Operation

Start yee88

bash
yee88

Start with Specified Engine

bash
yee88 claude
yee88 codex
yee88 opencode
yee88 pi

Start with Options

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

6. Diagnostic Check

Run Configuration Check

bash
yee88 doctor
Check if configuration is correct, including:
  • Telegram bot token
  • Chat ID
  • Engine availability
  • Project configuration

7. Plugin Management

List Plugins

bash
yee88 plugins

Validate Plugins

bash
yee88 plugins --validate

8. Get Chat ID

bash
yee88 chat-id
Start temporary bot to capture Telegram chat ID.

9. View Onboarding Paths

bash
yee88 onboarding-paths
Display all possible configuration paths.

Configuration Reference

Configuration File Locations

  • Main configuration:
    ~/.yee88/yee88.toml
  • Scheduled tasks:
    ~/.yee88/cron.toml
  • Topic status:
    ~/.yee88/telegram_topics_state.json

Common Configuration Examples

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"

Usage Scenarios

Scenario 1: Daily Workflow Automation

bash
# 1. Register project
cd ~/dev/work-project
yee88 init work

# 2. Set default project
yee88 config set default_project work

# 3. Add scheduled tasks (use project alias)
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. Start yee88
yee88

Scenario 2: Multi-Project Management

bash
# Register multiple projects
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"

# Create topics for each project
cd ~/dev/project-a
yee88 topic init

cd ~/dev/project-b
yee88 topic init

Scenario 3: Team Collaboration

bash
# 1. Configure group chat_id
yee88 config set transports.telegram.chat_id -1001234567890

# 2. Enable topic mode
yee88 config set transports.telegram.topics.enabled true

# 3. Create team topic
yee88 topic init team-project --branch main

# 4. Set scheduled reminders (use project alias)
yee88 cron add daily-sync "0 10 * * 1-5" "Team sync time" --project team-project

Scenario 4: Temporary Reminders and One-Time Tasks

bash
# Remind myself to rest in 30 minutes
yee88 cron add break "+30m" "Rest your eyes and move around" --project personal -o

# Meeting reminder at 3 PM today
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" "Review yesterday's PR" --project work -o

Troubleshooting

Check Configuration

bash
yee88 doctor

View Logs

bash
# yee88 logs
tail -f /tmp/yee88.log

# Scheduled task logs
tail -f /tmp/yee88-cron.log

Validate Cron Expression

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

Test Task

bash
yee88 cron run <task-id>

Notes

  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. Session Handoff

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/Image (send-file)

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
# Direct use in OpenCode session (environment variables auto-injected)
yee88 send-file /path/to/screenshot.png
yee88 send-file /path/to/report.pdf --caption "Today's report"

# 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
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

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