canifi
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCanifi LifeOS Core Skill
Canifi LifeOS 核心Skill
Setup
配置
Before using this skill, configure the following environment variables via :
canifi-envbash
undefined在使用该Skill前,请通过配置以下环境变量:
canifi-envbash
undefinedRequired
必填
canifi-env set CANIFI_GOOGLE_EMAIL "your-email@gmail.com"
canifi-env set CANIFI_GOOGLE_PASSWORD "your-password"
canifi-env set CANIFI_NOTION_TOKEN "ntn_your_token_here"
canifi-env set CANIFI_IMESSAGE_CONTACTS "+18001234567,+18009876543,email@example.com"
canifi-env set CANIFI_GOOGLE_EMAIL "your-email@gmail.com"
canifi-env set CANIFI_GOOGLE_PASSWORD "your-password"
canifi-env set CANIFI_NOTION_TOKEN "ntn_your_token_here"
canifi-env set CANIFI_IMESSAGE_CONTACTS "+18001234567,+18009876543,email@example.com"
Optional
可选
canifi-env set CANIFI_NOTION_WORKSPACE "Your Workspace Name"
canifi-env set CANIFI_SCRIPTS_PATH "~/canifi"
You will also need to:
1. Set up your Notion databases (see Database Setup section)
2. Install iMessage scripts to `$CANIFI_SCRIPTS_PATH`
3. Configure Playwright MCP in your Claude settings
4. Configure Notion MCP with your token
---canifi-env set CANIFI_NOTION_WORKSPACE "Your Workspace Name"
canifi-env set CANIFI_SCRIPTS_PATH "~/canifi"
你还需要完成以下操作:
1. 配置你的Notion数据库(请查看数据库配置章节)
2. 将iMessage脚本安装到`$CANIFI_SCRIPTS_PATH`路径下
3. 在Claude设置中配置Playwright MCP
4. 使用你的令牌配置Notion MCP
---Privacy & Authentication
隐私与认证
Your credentials, your choice. Canifi LifeOS respects your privacy.
你的凭据,由你掌控。Canifi LifeOS尊重你的隐私。
Option 1: Manual Browser Login (Recommended)
选项1:手动浏览器登录(推荐)
If you prefer not to share credentials with Claude Code:
- Complete the Browser Automation Setup using CDP mode
- Login to the service manually in the Playwright-controlled Chrome window
- Claude will use your authenticated session without ever seeing your password
如果你不想与Claude Code共享凭据:
- 使用CDP模式完成浏览器自动化配置
- 在Playwright控制的Chrome窗口中手动登录服务
- Claude将使用你的已认证会话,且绝不会获取你的密码
Option 2: Environment Variables
选项2:环境变量
If you're comfortable sharing credentials, you can store them locally:
bash
canifi-env set SERVICE_EMAIL "your-email"
canifi-env set SERVICE_PASSWORD "your-password"Note: Credentials stored in canifi-env are only accessible locally on your machine and are never transmitted.
如果你愿意共享凭据,可以将其存储在本地:
bash
canifi-env set SERVICE_EMAIL "your-email"
canifi-env set SERVICE_PASSWORD "your-password"注意:存储在canifi-env中的凭据仅能在你的本地设备上访问,绝不会被传输。
Activation Trigger
激活触发条件
When a prompt starts with "canifi" (case-insensitive), engage LifeOS mode immediately.
Examples:
- "canifi, research best productivity systems"
- "canifi add a new goal"
- "Canifi, what's on my calendar?"
当提示以"canifi"开头(不区分大小写)时,立即进入LifeOS模式。
示例:
- "canifi, 研究最佳生产力系统"
- "canifi 添加新目标"
- "Canifi, 我的日历上有什么安排?"
Core Workflow
核心工作流
1. RESEARCH (if needed) --> Gemini Deep Research via Playwright MCP
2. SYNTHESIZE --> Claude processes and structures the information
3. STORE --> Save to appropriate Notion database via MCP
4. CONFIRM --> Report what was accomplished and where it was stored1. 研究(如需) --> 通过Playwright MCP进行Gemini深度研究
2. 信息整合 --> Claude处理并结构化信息
3. 存储 --> 通过MCP保存至对应的Notion数据库
4. 确认 --> 报告已完成的操作及存储位置Authentication & Credentials
认证与凭据
Google Account (Playwright Auth)
Google账号(Playwright认证)
- Email:
$CANIFI_GOOGLE_EMAIL - Password:
$CANIFI_GOOGLE_PASSWORD - Playwright handles all login flows automatically
- Used for: Gmail, Gemini, Google Drive, Firebase, all Google services
- 邮箱:
$CANIFI_GOOGLE_EMAIL - 密码:
$CANIFI_GOOGLE_PASSWORD - Playwright会自动处理所有登录流程
- 用途:Gmail、Gemini、Google Drive、Firebase及所有Google服务
Notion API
Notion API
- Token:
$CANIFI_NOTION_TOKEN - Workspace:
$CANIFI_NOTION_WORKSPACE - Always prefer MCP tools () over browser automation
mcp__notion__*
- 令牌:
$CANIFI_NOTION_TOKEN - 工作区:
$CANIFI_NOTION_WORKSPACE - 始终优先使用MCP工具()而非浏览器自动化
mcp__notion__*
iMessage Whitelisted Contacts
iMessage白名单联系人
Contacts are defined in as a comma-separated list.
$CANIFI_IMESSAGE_CONTACTSNEVER message anyone outside the whitelist without explicit permission.
联系人以逗号分隔的列表形式定义在中。
$CANIFI_IMESSAGE_CONTACTS未经明确许可,绝不向白名单以外的任何人发送消息。
Tool Routing
工具路由
Playwright MCP (mcp__playwright__*
) - PRIMARY for Browser Tasks
mcp__playwright__*Playwright MCP(mcp__playwright__*
)- 浏览器任务的首选工具
mcp__playwright__*Use for:
- Gemini Deep Research (gemini.google.com) - MANDATORY for all LifeOS research
- Gmail/email checking and management
- NotebookLM access
- CLI command browser interactions (firebase login, etc.)
- Any Google service authentication
- Nano Banana image generation
- Notion tasks that MCP cannot handle
用于:
- Gemini深度研究(gemini.google.com)- 所有LifeOS研究的强制工具
- Gmail/邮件查看与管理
- NotebookLM访问
- CLI命令的浏览器交互(如firebase login等)
- 任何Google服务的认证
- Nano Banana图片生成
- MCP无法处理的Notion任务
Notion MCP (mcp__notion__*
) - PRIMARY for Database Operations
mcp__notion__*Notion MCP(mcp__notion__*
)- 数据库操作的首选工具
mcp__notion__*Use for:
- Creating pages/entries
- Updating existing content
- Searching Notion workspace
- All database CRUD operations
NEVER use WebSearch for LifeOS research tasks.
用于:
- 创建页面/条目
- 更新现有内容
- 搜索Notion工作区
- 所有数据库CRUD操作
绝不使用WebSearch执行LifeOS研究任务。
iMessage Scripts ($CANIFI_SCRIPTS_PATH/
)
$CANIFI_SCRIPTS_PATH/iMessage脚本($CANIFI_SCRIPTS_PATH/
)
$CANIFI_SCRIPTS_PATH/Use for:
- Sending messages to whitelisted contacts
- Checking message status
- Live streaming Claude output
用于:
- 向白名单联系人发送消息
- 检查消息状态
- 实时流式传输Claude输出
Gemini Deep Research Protocol
Gemini深度研究协议
ALL LifeOS research MUST use Gemini Deep Research at gemini.google.com
所有LifeOS研究必须使用Gemini深度研究,访问地址为gemini.google.com
Process
流程
- Navigate to gemini.google.com via Playwright MCP
- Authenticate automatically (Playwright handles Google login with )
$CANIFI_GOOGLE_EMAIL - Start Deep Research query
- Deep Research takes up to 20 minutes - use one of these strategies:
- Launch research in a background agent and continue other work
- Use with 10-minute intervals to check completion
browser_wait_for - Sleep/wait periodically (10 min at a time) while research runs
- Check periodically for completion (every 5-10 minutes)
- Extract and synthesize findings once complete
- Store synthesized results in appropriate Notion database
- 通过Playwright MCP导航至gemini.google.com
- 自动认证(Playwright使用处理Google登录)
$CANIFI_GOOGLE_EMAIL - 启动深度研究查询
- 深度研究最长需要20分钟 - 可使用以下策略之一:
- 在后台Agent中启动研究,继续其他工作
- 使用并设置10分钟间隔检查完成状态
browser_wait_for - 定期休眠/等待(每次10分钟)直至研究完成
- 定期检查完成状态(每5-10分钟一次)
- 完成后提取并整合研究结果
- 将整合后的结果保存至对应的Notion数据库
Handling Long Waits
处理长时间等待
Option A: Background Agent
- Launch Deep Research in background Task agent
- Continue other work in main thread
- Check back for results
Option B: Periodic Polling
- Start research
- Wait 10 minutes
- Take snapshot to check status
- Repeat until complete选项A:后台Agent
- 在后台Task Agent中启动深度研究
- 在主线程中继续其他工作
- 稍后查看结果
选项B:定期轮询
- 启动研究
- 等待10分钟
- 截图检查状态
- 重复直至完成Database Setup
数据库配置
You need to create these databases in your Notion workspace and configure their IDs.
你需要在Notion工作区中创建以下数据库并配置其ID。
Recommended Database Structure
推荐数据库结构
Create a configuration file or environment variable with your database IDs:
CANIFI_DATABASE_IDSundefined创建配置文件或环境变量,填入你的数据库ID:
CANIFI_DATABASE_IDSundefinedCore Structure
核心结构
CAPTURE_INBOX=<your-capture-page-id>
COMMAND_CENTER=<your-command-center-id>
CAPTURE_INBOX=<your-capture-page-id>
COMMAND_CENTER=<your-command-center-id>
Daily
日常
HABITS=<your-habits-db-id>
JOURNAL=<your-journal-db-id>
WEEKLY_REVIEW=<your-weekly-review-db-id>
HABITS=<your-habits-db-id>
JOURNAL=<your-journal-db-id>
WEEKLY_REVIEW=<your-weekly-review-db-id>
Work
工作
GOALS=<your-goals-db-id>
TASKS=<your-tasks-db-id>
PROJECTS=<your-projects-db-id>
GOALS=<your-goals-db-id>
TASKS=<your-tasks-db-id>
PROJECTS=<your-projects-db-id>
Mind
知识
IDEAS=<your-ideas-db-id>
CONCEPTS=<your-concepts-db-id>
RESEARCH_HUB=<your-research-hub-db-id>
MEDIA_LIBRARY=<your-media-library-db-id>
READING_LIST=<your-reading-list-db-id>
ENTERTAINMENT=<your-entertainment-db-id>
PERSONAL_DEVELOPMENT=<your-personal-dev-db-id>
BLOGS=<your-blogs-db-id>
IDEAS=<your-ideas-db-id>
CONCEPTS=<your-concepts-db-id>
RESEARCH_HUB=<your-research-hub-db-id>
MEDIA_LIBRARY=<your-media-library-db-id>
READING_LIST=<your-reading-list-db-id>
ENTERTAINMENT=<your-entertainment-db-id>
PERSONAL_DEVELOPMENT=<your-personal-dev-db-id>
BLOGS=<your-blogs-db-id>
Health
健康
EXERCISE_LIBRARY=<your-exercise-library-db-id>
WORKOUT_LOG=<your-workout-log-db-id>
SLEEP_LOG=<your-sleep-log-db-id>
BODY_METRICS=<your-body-metrics-db-id>
SUPPLEMENTS=<your-supplements-db-id>
NUTRITION=<your-nutrition-db-id>
RECIPES=<your-recipes-db-id>
MEAL_PLANS=<your-meal-plans-db-id>
GROCERY_LISTS=<your-grocery-lists-db-id>
EXERCISE_LIBRARY=<your-exercise-library-db-id>
WORKOUT_LOG=<your-workout-log-db-id>
SLEEP_LOG=<your-sleep-log-db-id>
BODY_METRICS=<your-body-metrics-db-id>
SUPPLEMENTS=<your-supplements-db-id>
NUTRITION=<your-nutrition-db-id>
RECIPES=<your-recipes-db-id>
MEAL_PLANS=<your-meal-plans-db-id>
GROCERY_LISTS=<your-grocery-lists-db-id>
Relationships
人际关系
PERSONAL_CRM=<your-crm-db-id>
GIFT_IDEAS=<your-gift-ideas-db-id>
PERSONAL_CRM=<your-crm-db-id>
GIFT_IDEAS=<your-gift-ideas-db-id>
Environment
生活环境
WARDROBE=<your-wardrobe-db-id>
TRIPS=<your-trips-db-id>
WARDROBE=<your-wardrobe-db-id>
TRIPS=<your-trips-db-id>
Finance
财务
SUBSCRIPTIONS=<your-subscriptions-db-id>
BUDGETS=<your-budgets-db-id>
---SUBSCRIPTIONS=<your-subscriptions-db-id>
BUDGETS=<your-budgets-db-id>
---Database Routing Rules
数据库路由规则
When adding new content, use this decision tree:
- Is it a task/action item? --> Tasks database
- Is it a goal/objective? --> Goals database
- Is it a habit to track? --> Habits database
- Is it health-related?
- Workout --> Workout Log
- Exercise definition --> Exercise Library
- Food/meal --> Nutrition or Recipes
- Sleep --> Sleep Log
- Supplements --> Supplements
- Body measurement --> Body Metrics
- Is it knowledge/learning?
- Book/article --> Reading List
- Mental model/framework --> Concepts
- Research project --> Research Hub
- Course/skill --> Personal Development
- Podcast/video --> Media Library
- Movie/TV/Game --> Entertainment
- Random idea --> Ideas
- Blog post --> Blogs
- Is it a person? --> Personal CRM
- Is it travel-related? --> Trips
- Is it clothing? --> Wardrobe
- Is it a subscription/recurring payment? --> Subscriptions
- Is it budget/spending? --> Budgets
- Unsure? --> Capture inbox, then route later
添加新内容时,请遵循以下决策树:
- 是否为任务/行动项? --> 任务数据库
- 是否为目标/宗旨? --> 目标数据库
- 是否为需要追踪的习惯? --> 习惯数据库
- 是否与健康相关?
- 健身记录 --> 健身日志
- 运动定义 --> 运动库
- 食物/餐食 --> 营养或食谱数据库
- 睡眠 --> 睡眠日志
- 补剂 --> 补剂数据库
- 身体指标 --> 身体指标数据库
- 是否为知识/学习内容?
- 书籍/文章 --> 阅读清单
- 思维模型/框架 --> 概念数据库
- 研究项目 --> 研究中心
- 课程/技能 --> 个人发展数据库
- 播客/视频 --> 媒体库
- 电影/电视/游戏 --> 娱乐数据库
- 随机想法 --> 创意数据库
- 博客文章 --> 博客数据库
- 是否为联系人? --> 个人CRM数据库
- 是否与旅行相关? --> 旅行数据库
- 是否为衣物? --> 衣橱数据库
- 是否为订阅/ recurring支付? --> 订阅数据库
- 是否为预算/支出? --> 预算数据库
- 不确定? --> 捕获收件箱,稍后再路由
iMessage Commands
iMessage命令
Command Reference
命令参考
| Command | Action | Script |
|---|---|---|
| Show help | canifi-help.sh |
| Continue conversation | canifi-send.sh |
| Clear and start fresh | canifi-send.sh --clear |
| Stop generation | canifi-abort.sh |
| Send escape key | tmux send-keys Escape |
| Show session state | canifi-status.sh |
| Get conversation summary | canifi-send.sh |
| Pause live stream | canifi-pause.sh |
| Resume live stream | canifi-resume.sh |
| Show commands | canifi-help.sh |
| 命令 | 操作 | 脚本 |
|---|---|---|
| 显示帮助 | canifi-help.sh |
| 继续对话 | canifi-send.sh |
| 清空并重新开始 | canifi-send.sh --clear |
| 停止生成 | canifi-abort.sh |
| 发送ESC键 | tmux send-keys Escape |
| 显示会话状态 | canifi-status.sh |
| 获取对话摘要 | canifi-send.sh |
| 暂停实时流 | canifi-pause.sh |
| 恢复实时流 | canifi-resume.sh |
| 显示命令列表 | canifi-help.sh |
Script Locations
脚本位置
All LifeOS scripts should be installed in (default: ):
$CANIFI_SCRIPTS_PATH~/canifi/- canifi-send.sh
- canifi-imessage-monitor.sh
- canifi-help.sh
- canifi-status.sh
- canifi-stream.sh
- canifi-pause.sh
- canifi-resume.sh
- canifi-send-image.sh
- canifi-abort.sh
所有LifeOS脚本应安装在(默认:):
$CANIFI_SCRIPTS_PATH~/canifi/- canifi-send.sh
- canifi-imessage-monitor.sh
- canifi-help.sh
- canifi-status.sh
- canifi-stream.sh
- canifi-pause.sh
- canifi-resume.sh
- canifi-send-image.sh
- canifi-abort.sh
Sending Messages
发送消息
bash
undefinedbash
undefinedSend text message
发送文本消息
$CANIFI_SCRIPTS_PATH/canifi-send.sh "Your message here"
$CANIFI_SCRIPTS_PATH/canifi-send.sh "Your message here"
Send image
发送图片
$CANIFI_SCRIPTS_PATH/canifi-send-image.sh /path/to/image.png
$CANIFI_SCRIPTS_PATH/canifi-send-image.sh /path/to/image.png
Direct osascript (use +1 format for phone numbers)
直接使用osascript(电话号码使用+1格式)
osascript -e 'tell application "Messages" to send "Hello!" to buddy "+18001234567"'
undefinedosascript -e 'tell application "Messages" to send "Hello!" to buddy "+18001234567"'
undefinedValidating Contacts
验证联系人
Before sending any message, validate the recipient is in :
$CANIFI_IMESSAGE_CONTACTSbash
undefined发送任何消息前,请验证收件人是否在中:
$CANIFI_IMESSAGE_CONTACTSbash
undefinedParse whitelisted contacts
解析白名单联系人
IFS=',' read -ra CONTACTS <<< "$CANIFI_IMESSAGE_CONTACTS"
IFS=',' read -ra CONTACTS <<< "$CANIFI_IMESSAGE_CONTACTS"
Check if recipient is whitelisted
检查收件人是否在白名单中
is_whitelisted() {
local recipient="$1"
for contact in "${CONTACTS[@]}"; do
if [[ "$contact" == "$recipient" ]]; then
return 0
fi
done
return 1
}
undefinedis_whitelisted() {
local recipient="$1"
for contact in "${CONTACTS[@]}"; do
if [[ "$contact" == "$recipient" ]]; then
return 0
fi
done
return 1
}
undefinedConversation Behavior
对话行为
- Default behavior: Conversations continue (no automatic clearing)
- Use to explicitly start fresh
canifi clear - Session persists in tmux ()
canifilifeos
- 默认行为:对话持续进行(不会自动清空)
- 使用明确重新开始
canifi clear - 会话在tmux()中保持
canifilifeos
Live Streaming
实时流
- streams Claude output to iMessage in real-time
canifi-stream.sh - Output is cleaned (ANSI codes stripped) and batched for readability
- Use /
canifi pauseto control streamcanifi resume - Stream runs in background, doesn't affect Claude Code
- 将Claude输出实时流式传输到iMessage
canifi-stream.sh - 输出会被清理(移除ANSI代码)并分批处理以提升可读性
- 使用/
canifi pause控制流canifi resume - 流在后台运行,不影响Claude Code
MCP Popup Handling
MCP弹窗处理
When making external MCP calls (Notion, etc.), browser auth popups may appear. Since Claude blocks while waiting for MCP response:
- Launch a background Task agent with Playwright that monitors for new tabs/popups
- The background agent should loop: snapshot --> check for auth popups --> handle if found --> repeat every 5 seconds
- THEN make the MCP call (which may block/timeout)
- Background agent catches and handles any popup WHILE MCP is running
- After MCP completes (or fails), check background agent results
WHY: Popups appear AFTER MCP call starts, and Claude cannot check browser mid-call - background agent solves this.
当调用外部MCP(如Notion等)时,可能会出现浏览器认证弹窗。由于Claude会在等待MCP响应时阻塞:
- 启动一个后台Task Agent,通过Playwright监控新标签页/弹窗
- 后台Agent应循环执行:截图 --> 检查认证弹窗 --> 如有则处理 --> 每5秒重复一次
- 然后进行MCP调用(可能会阻塞/超时)
- 后台Agent在MCP运行期间捕获并处理任何弹窗
- MCP完成(或失败)后,检查后台Agent的结果
原因:弹窗会在MCP调用启动后出现,Claude无法在调用中途检查浏览器 - 后台Agent可解决此问题。
Universal Rules
通用规则
- Browser automation = Playwright MCP FIRST
- Playwright handles auth using /
$CANIFI_GOOGLE_EMAIL$CANIFI_GOOGLE_PASSWORD - No purchases - NEVER complete any financial transactions
- Notion = MCP first - always prefer Notion MCP tools over browser
- LifeOS research = Gemini ONLY - NEVER use WebSearch
- LifeOS flow - Research (Gemini) --> Synthesize (Claude) --> Store (Notion MCP)
- iMessage = whitelisted only - Only contacts in
$CANIFI_IMESSAGE_CONTACTS
- 浏览器自动化 = 优先使用Playwright MCP
- Playwright处理认证,使用/
$CANIFI_GOOGLE_EMAIL$CANIFI_GOOGLE_PASSWORD - 禁止购买 - 绝不完成任何金融交易
- Notion = 优先使用MCP - 始终优先使用Notion MCP工具而非浏览器
- LifeOS研究 = 仅使用Gemini - 绝不使用WebSearch
- LifeOS流程 - 研究(Gemini)--> 整合(Claude)--> 存储(Notion MCP)
- iMessage = 仅白名单联系人 - 仅联系中的联系人
$CANIFI_IMESSAGE_CONTACTS
Example Flows
示例流程
Research Request
研究请求
User: "canifi, research the best note-taking systems for developers"
1. Detect "canifi" trigger --> Engage LifeOS mode
2. Navigate to gemini.google.com via Playwright
3. Authenticate with $CANIFI_GOOGLE_EMAIL (automatic)
4. Start Deep Research: "best note-taking systems for developers 2024"
5. Wait/poll for completion (up to 20 min)
6. Extract and synthesize findings
7. Store in Research Hub database via Notion MCP
8. Confirm: "Research complete. Stored in Research Hub: [link]"用户:"canifi, 研究适合开发者的最佳笔记系统"
1. 检测到"canifi"触发词 --> 进入LifeOS模式
2. 通过Playwright导航至gemini.google.com
3. 使用`$CANIFI_GOOGLE_EMAIL`自动认证
4. 启动深度研究:"2024年适合开发者的最佳笔记系统"
5. 等待/轮询直至完成(最长20分钟)
6. 提取并整合研究结果
7. 通过Notion MCP保存至研究中心数据库
8. 确认:"研究完成。已存储至研究中心:[链接]"Quick Add
快速添加
User: "canifi add task: review quarterly goals"
1. Detect "canifi" trigger --> Engage LifeOS mode
2. Route: task --> Tasks database
3. Use Notion MCP to create task entry
4. Confirm: "Task added to Tasks: 'review quarterly goals'"用户:"canifi 添加任务:审阅季度目标"
1. 检测到"canifi"触发词 --> 进入LifeOS模式
2. 路由:任务 --> 任务数据库
3. 使用Notion MCP创建任务条目
4. 确认:"任务已添加至任务数据库:'审阅季度目标'"iMessage Notification
iMessage通知
After completing research:
1. Validate recipient is in $CANIFI_IMESSAGE_CONTACTS
2. Use canifi-send.sh to notify user
3. $CANIFI_SCRIPTS_PATH/canifi-send.sh "Research complete! Check your Research Hub."研究完成后:
1. 验证收件人是否在`$CANIFI_IMESSAGE_CONTACTS`中
2. 使用canifi-send.sh通知用户
3. $CANIFI_SCRIPTS_PATH/canifi-send.sh "研究完成!请查看你的研究中心。"Troubleshooting
故障排查
Google Authentication Issues
Google认证问题
- Verify and
$CANIFI_GOOGLE_EMAILare set correctly$CANIFI_GOOGLE_PASSWORD - Check for 2FA requirements on the Google account
- Playwright may need cookies/session from a previous login
- 验证和
$CANIFI_GOOGLE_EMAIL是否设置正确$CANIFI_GOOGLE_PASSWORD - 检查Google账号是否需要2FA
- Playwright可能需要之前登录的Cookie/会话
Notion MCP Not Working
Notion MCP无法工作
- Verify is valid and not expired
$CANIFI_NOTION_TOKEN - Check that the Notion integration has access to the required pages
- Ensure is configured in Claude settings
@notionhq/notion-mcp-server
- 验证是否有效且未过期
$CANIFI_NOTION_TOKEN - 检查Notion集成是否有权限访问所需页面
- 确保Claude设置中已配置
@notionhq/notion-mcp-server
iMessage Not Sending
iMessage无法发送
- Verify Messages.app is logged in on macOS
- Check that contacts are properly formatted (phone with +1, or valid email)
- Ensure scripts in have execute permissions
$CANIFI_SCRIPTS_PATH
- 验证macOS上的Messages.app是否已登录
- 检查联系人格式是否正确(电话号码使用+1格式,或有效的邮箱)
- 确保下的脚本具有执行权限
$CANIFI_SCRIPTS_PATH
Deep Research Timeout
深度研究超时
- Deep Research can take up to 20 minutes
- Use background agents or periodic polling
- Check Gemini status if research seems stuck
- 深度研究最长需要20分钟
- 使用后台Agent或定期轮询
- 如果研究似乎停滞,检查Gemini状态