canifi

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Canifi LifeOS Core Skill

Canifi LifeOS 核心Skill

Setup

配置

Before using this skill, configure the following environment variables via
canifi-env
:
bash
undefined
在使用该Skill前,请通过
canifi-env
配置以下环境变量:
bash
undefined

Required

必填

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:
  1. Complete the Browser Automation Setup using CDP mode
  2. Login to the service manually in the Playwright-controlled Chrome window
  3. Claude will use your authenticated session without ever seeing your password
如果你不想与Claude Code共享凭据:
  1. 使用CDP模式完成浏览器自动化配置
  2. 在Playwright控制的Chrome窗口中手动登录服务
  3. 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 stored

1. 研究(如需) --> 通过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 (
    mcp__notion__*
    ) over browser automation
  • 令牌
    $CANIFI_NOTION_TOKEN
  • 工作区
    $CANIFI_NOTION_WORKSPACE
  • 始终优先使用MCP工具(
    mcp__notion__*
    )而非浏览器自动化

iMessage Whitelisted Contacts

iMessage白名单联系人

Contacts are defined in
$CANIFI_IMESSAGE_CONTACTS
as a comma-separated list.
NEVER message anyone outside the whitelist without explicit permission.

联系人以逗号分隔的列表形式定义在
$CANIFI_IMESSAGE_CONTACTS
中。
未经明确许可,绝不向白名单以外的任何人发送消息。

Tool Routing

工具路由

Playwright MCP (
mcp__playwright__*
) - PRIMARY for Browser Tasks

Playwright MCP(
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

Notion MCP(
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/
)

iMessage脚本(
$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

流程

  1. Navigate to gemini.google.com via Playwright MCP
  2. Authenticate automatically (Playwright handles Google login with
    $CANIFI_GOOGLE_EMAIL
    )
  3. Start Deep Research query
  4. Deep Research takes up to 20 minutes - use one of these strategies:
    • Launch research in a background agent and continue other work
    • Use
      browser_wait_for
      with 10-minute intervals to check completion
    • Sleep/wait periodically (10 min at a time) while research runs
  5. Check periodically for completion (every 5-10 minutes)
  6. Extract and synthesize findings once complete
  7. Store synthesized results in appropriate Notion database
  1. 通过Playwright MCP导航至gemini.google.com
  2. 自动认证(Playwright使用
    $CANIFI_GOOGLE_EMAIL
    处理Google登录)
  3. 启动深度研究查询
  4. 深度研究最长需要20分钟 - 可使用以下策略之一:
    • 后台Agent中启动研究,继续其他工作
    • 使用
      browser_wait_for
      并设置10分钟间隔检查完成状态
    • 定期休眠/等待(每次10分钟)直至研究完成
  5. 定期检查完成状态(每5-10分钟一次)
  6. 完成后提取并整合研究结果
  7. 将整合后的结果保存至对应的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
CANIFI_DATABASE_IDS
configuration file or environment variable with your database IDs:
undefined
创建
CANIFI_DATABASE_IDS
配置文件或环境变量,填入你的数据库ID:
undefined

Core 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:
  1. Is it a task/action item? --> Tasks database
  2. Is it a goal/objective? --> Goals database
  3. Is it a habit to track? --> Habits database
  4. 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
  5. 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
  6. Is it a person? --> Personal CRM
  7. Is it travel-related? --> Trips
  8. Is it clothing? --> Wardrobe
  9. Is it a subscription/recurring payment? --> Subscriptions
  10. Is it budget/spending? --> Budgets
  11. Unsure? --> Capture inbox, then route later

添加新内容时,请遵循以下决策树:
  1. 是否为任务/行动项? --> 任务数据库
  2. 是否为目标/宗旨? --> 目标数据库
  3. 是否为需要追踪的习惯? --> 习惯数据库
  4. 是否与健康相关?
    • 健身记录 --> 健身日志
    • 运动定义 --> 运动库
    • 食物/餐食 --> 营养或食谱数据库
    • 睡眠 --> 睡眠日志
    • 补剂 --> 补剂数据库
    • 身体指标 --> 身体指标数据库
  5. 是否为知识/学习内容?
    • 书籍/文章 --> 阅读清单
    • 思维模型/框架 --> 概念数据库
    • 研究项目 --> 研究中心
    • 课程/技能 --> 个人发展数据库
    • 播客/视频 --> 媒体库
    • 电影/电视/游戏 --> 娱乐数据库
    • 随机想法 --> 创意数据库
    • 博客文章 --> 博客数据库
  6. 是否为联系人? --> 个人CRM数据库
  7. 是否与旅行相关? --> 旅行数据库
  8. 是否为衣物? --> 衣橱数据库
  9. 是否为订阅/ recurring支付? --> 订阅数据库
  10. 是否为预算/支出? --> 预算数据库
  11. 不确定? --> 捕获收件箱,稍后再路由

iMessage Commands

iMessage命令

Command Reference

命令参考

CommandActionScript
canifi
Show helpcanifi-help.sh
canifi [message]
Continue conversationcanifi-send.sh
canifi clear
Clear and start freshcanifi-send.sh --clear
canifi abort
Stop generationcanifi-abort.sh
canifi interrupt
Send escape keytmux send-keys Escape
canifi status
Show session statecanifi-status.sh
canifi summarize
Get conversation summarycanifi-send.sh
canifi pause
Pause live streamcanifi-pause.sh
canifi resume
Resume live streamcanifi-resume.sh
canifi help
Show commandscanifi-help.sh
命令操作脚本
canifi
显示帮助canifi-help.sh
canifi [message]
继续对话canifi-send.sh
canifi clear
清空并重新开始canifi-send.sh --clear
canifi abort
停止生成canifi-abort.sh
canifi interrupt
发送ESC键tmux send-keys Escape
canifi status
显示会话状态canifi-status.sh
canifi summarize
获取对话摘要canifi-send.sh
canifi pause
暂停实时流canifi-pause.sh
canifi resume
恢复实时流canifi-resume.sh
canifi help
显示命令列表canifi-help.sh

Script Locations

脚本位置

All LifeOS scripts should be installed in
$CANIFI_SCRIPTS_PATH
(default:
~/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
undefined
bash
undefined

Send 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"'
undefined
osascript -e 'tell application "Messages" to send "Hello!" to buddy "+18001234567"'
undefined

Validating Contacts

验证联系人

Before sending any message, validate the recipient is in
$CANIFI_IMESSAGE_CONTACTS
:
bash
undefined
发送任何消息前,请验证收件人是否在
$CANIFI_IMESSAGE_CONTACTS
中:
bash
undefined

Parse 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 }
undefined
is_whitelisted() { local recipient="$1" for contact in "${CONTACTS[@]}"; do if [[ "$contact" == "$recipient" ]]; then return 0 fi done return 1 }
undefined

Conversation Behavior

对话行为

  • Default behavior: Conversations continue (no automatic clearing)
  • Use
    canifi clear
    to explicitly start fresh
  • Session persists in tmux (
    canifilifeos
    )
  • 默认行为:对话持续进行(不会自动清空)
  • 使用
    canifi clear
    明确重新开始
  • 会话在tmux(
    canifilifeos
    )中保持

Live Streaming

实时流

  • canifi-stream.sh
    streams Claude output to iMessage in real-time
  • Output is cleaned (ANSI codes stripped) and batched for readability
  • Use
    canifi pause
    /
    canifi resume
    to control stream
  • Stream runs in background, doesn't affect Claude Code

  • canifi-stream.sh
    将Claude输出实时流式传输到iMessage
  • 输出会被清理(移除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:
  1. Launch a background Task agent with Playwright that monitors for new tabs/popups
  2. The background agent should loop: snapshot --> check for auth popups --> handle if found --> repeat every 5 seconds
  3. THEN make the MCP call (which may block/timeout)
  4. Background agent catches and handles any popup WHILE MCP is running
  5. 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响应时阻塞:
  1. 启动一个后台Task Agent,通过Playwright监控新标签页/弹窗
  2. 后台Agent应循环执行:截图 --> 检查认证弹窗 --> 如有则处理 --> 每5秒重复一次
  3. 然后进行MCP调用(可能会阻塞/超时)
  4. 后台Agent在MCP运行期间捕获并处理任何弹窗
  5. MCP完成(或失败)后,检查后台Agent的结果
原因:弹窗会在MCP调用启动后出现,Claude无法在调用中途检查浏览器 - 后台Agent可解决此问题。

Universal Rules

通用规则

  1. Browser automation = Playwright MCP FIRST
  2. Playwright handles auth using
    $CANIFI_GOOGLE_EMAIL
    /
    $CANIFI_GOOGLE_PASSWORD
  3. No purchases - NEVER complete any financial transactions
  4. Notion = MCP first - always prefer Notion MCP tools over browser
  5. LifeOS research = Gemini ONLY - NEVER use WebSearch
  6. LifeOS flow - Research (Gemini) --> Synthesize (Claude) --> Store (Notion MCP)
  7. iMessage = whitelisted only - Only contacts in
    $CANIFI_IMESSAGE_CONTACTS

  1. 浏览器自动化 = 优先使用Playwright MCP
  2. Playwright处理认证,使用
    $CANIFI_GOOGLE_EMAIL
    /
    $CANIFI_GOOGLE_PASSWORD
  3. 禁止购买 - 绝不完成任何金融交易
  4. Notion = 优先使用MCP - 始终优先使用Notion MCP工具而非浏览器
  5. LifeOS研究 = 仅使用Gemini - 绝不使用WebSearch
  6. LifeOS流程 - 研究(Gemini)--> 整合(Claude)--> 存储(Notion MCP)
  7. 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
    $CANIFI_GOOGLE_EMAIL
    and
    $CANIFI_GOOGLE_PASSWORD
    are set correctly
  • 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
    $CANIFI_NOTION_TOKEN
    is valid and not expired
  • Check that the Notion integration has access to the required pages
  • Ensure
    @notionhq/notion-mcp-server
    is configured in Claude settings
  • 验证
    $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
    $CANIFI_SCRIPTS_PATH
    have execute permissions
  • 验证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状态