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
Sourceyee94/yee88
Added on
NPX Install
npx skill4agent add yee94/yee88 yee88Tags
Translated version includes tags in frontmatterSKILL.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 Says | Correct 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!
| Scenario | Correct Practice | Wrong Practice |
|---|---|---|
| "Remind me to check the weather in 1 minute" | Only execute | ❌ Immediately check the weather and write the result into the message |
| "Remind me to attend a meeting in 30 minutes" | Only execute | ❌ Immediately perform any operations related to "attending a meeting" |
| "Remind me to send an email in 2 hours" | Only execute | ❌ 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 nameConclusion: 99% of cases do not require --project. Only pass it when the user explicitly mentions the project name.
Decision Table
| User Says | Need --project? | Command |
|---|---|---|
| "Remind me to drink water in 1 minute" | ❌ No | |
| "Remind me to stand up for the meeting at 9 every day" | ❌ No | |
| "Remind me to rest in 30 minutes" | ❌ No | |
| "Run tests at 9 every day under the takopi project" | ✅ Yes | |
| "Help me set a reminder in the work project" | ✅ Yes | |
⚠️ --project only accepts project aliases, not paths!
| Correct ✅ | Wrong ❌ |
|---|---|
| Do not pass (default) | |
| |
| |
|
How to get project aliases (only when requested by users):
bash
yee88 config list | grep projects🎯 Quick Trigger List (Execute Immediately)
| User Says | Command Must Execute |
|---|---|
| "Remind me... in 5 minutes" | |
| "Remind me... in 30 minutes" | |
| "Remind me... in 2 hours" | |
| "Remind me... tomorrow" | |
| "Remind me... at 9 AM every day" | |
| "Remind me... every Monday" | |
| "View all reminders" | |
| "Delete reminder X" | |
| "Send this file to me" | |
| "Send this image to me" | |
One-Time Reminder Command Format
bash
yee88 cron add <id> "<time>" "<message>" -oParameter Description:
- : Task ID (e.g., reminder, meeting, break)
<id> - : Relative time format
<time>,+5m,+30m,+1h,+2h+1d - : User's original words or brief description (not execution result!)
<message> - : Optional, project alias (e.g., takopi, myproject), executes in default context if not specified
--project <alias> - : One-time task (auto-delete after execution)
-o
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..." -oFull Capability Reference
1. Scheduled Tasks (Cron)
Register Project
bash
yee88 init <alias>Register project in specified directory:
bash
cd ~/dev/my-project
yee88 init myprojectView Project Configuration
bash
yee88 config list | grep projects2. Configuration Management
View Configuration Path
bash
yee88 config pathList All Configurations
bash
yee88 config listGet Configuration Item
bash
yee88 config get <key>Examples:
bash
yee88 config get default_engine
yee88 config get projects.myproject.pathSet 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:
- : Unique task identifier
id - : Cron expression (e.g., "0 9 * * 1-5")
schedule - : Push message content
message - : Optional, project alias (e.g., takopi), executes in default context if not specified
--project
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 personalList All Scheduled Tasks
bash
yee88 cron listShow all (including disabled):
bash
yee88 cron list --allEnable/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> --forceExecute Once Immediately (Test)
bash
yee88 cron run <id>Add One-Time Scheduled Task
Use or parameter to create tasks that only execute once and auto-delete after execution.
--one-time-oSupports two time formats:
- Relative time: (in 30 minutes),
+30m(in 2 hours),+2h(in 1 day)+1d - ISO 8601: (specific date and time)
2026-02-01T14:00:00
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 -oOne-time tasks will be marked as type when viewing task list:
oncebash
yee88 cron list
# Output: ID TYPE SCHEDULE STATUS PROJECT4. 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| Command | Effect |
|---|---|
| Bind current directory (project name = directory name) |
| Automatically get current git branch, bind project@branch |
| Bind project@main |
| 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-featureDelete Topic
bash
yee88 topic delete [PROJECT] [--branch [NAME]]Manage Topics in Telegram
Send command in topic:
/topicbash
/topic <project> [@branch] # Create/bind topic
/ctx set <project> [@branch] # Bind context
/ctx show # View context
/new # Clear session records in topic5. Engine Operation
Start yee88
bash
yee88Start with Specified Engine
bash
yee88 claude
yee88 codex
yee88 opencode
yee88 piStart with Options
bash
yee88 --debug
yee88 --onboard
yee88 --transport telegram6. Diagnostic Check
Run Configuration Check
bash
yee88 doctorCheck if configuration is correct, including:
- Telegram bot token
- Chat ID
- Engine availability
- Project configuration
7. Plugin Management
List Plugins
bash
yee88 pluginsValidate Plugins
bash
yee88 plugins --validate8. Get Chat ID
bash
yee88 chat-idStart temporary bot to capture Telegram chat ID.
9. View Onboarding Paths
bash
yee88 onboarding-pathsDisplay 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
yee88Scenario 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 initScenario 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-projectScenario 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 -oTroubleshooting
Check Configuration
bash
yee88 doctorView Logs
bash
# yee88 logs
tail -f /tmp/yee88.log
# Scheduled task logs
tail -f /tmp/yee88-cron.logValidate 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
-
Project Alias Requirements:
- Use project alias (e.g., ,
takopi) forworkin scheduled tasks--project - View registered projects via
yee88 config list | grep projects - Register new projects using
yee88 init <alias>
- Use project alias (e.g.,
-
Configuration Hot Reload:
- Set to enable hot reload of configuration
watch_config = true - Restart yee88 after modifying scheduled task configuration
- Set
-
Scheduling Precision:
- Scheduled tasks are checked every minute
- Actual execution may have a delay within 1 minute
-
Permission Issues:
- Ensure yee88 command is in PATH
- Keep yee88 running when scheduled tasks are executed
-
One-Time Tasks:
- Create using or
-oparameter--one-time - Supports relative time (,
+30m,+2h) and ISO 8601 format+1d - Auto-delete from list after execution
- Cannot use enable/disable on one-time tasks (auto-delete before execution)
- Create using
10. Session Handoff
Send current OpenCode session context to Telegram for continued conversation on mobile.
bash
yee88 handoffFeatures:
- 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:
- : Specify session ID (interactive selection by default)
--session, -s - : Number of messages to include (default 3)
--limit, -n - : Project name
--project, -p
Examples:
bash
yee88 handoff
yee88 handoff -s ses_abc123 -n 511. 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 (required)
<file_path> - : Telegram chat ID (read from configuration or environment variable
--chat-id, -cby default)YEE88_CHAT_ID - : Telegram thread ID (read from environment variable
--thread-id, -tby default)YEE88_THREAD_ID - : Optional file description
--caption
When used in OpenCode session, and environment variables are automatically injected, no need to specify manually:
YEE88_CHAT_IDYEE88_THREAD_IDbash
# 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 456Supported image formats (display directly): png, jpg, jpeg, gif, webp, bmp
Other formats (as attachment): pdf, zip, txt, csv, xlsx, etc.
Complete Command Cheat Sheet
| Command | Description |
|---|---|
| Start yee88 |
| Register project |
| Handoff session to Telegram |
| View configuration path |
| List configurations |
| Get configuration item |
| Set configuration item |
| Delete configuration item |
| Add scheduled task |
| Add one-time task (-o = --one-time) |
| List scheduled tasks |
| Enable task |
| Disable task |
| Delete task |
| Execute task immediately |
| Initialize topic |
| Delete topic |
| Run diagnostic check |
| List plugins |
| Get Chat ID |
| Use Claude engine |
| Use Codex engine |
| Use OpenCode engine |
| Use Pi engine |
| Send file/image to Telegram |