canifi-backup

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Canifi Backup

Canifi Backup

Overview

概述

The Canifi Backup skill creates comprehensive backups of your entire LifeOS system with a single command. It packages your configuration, skills, and Claude settings into a timestamped ZIP file stored at your preferred destination.
Why This Skill is Required:
  • Protects your custom skills and configurations from loss
  • Enables easy migration to new machines
  • Provides restore points before major changes
  • Ensures your LifeOS investment is never lost

Canifi Backup skill只需一条命令就能为你的整个LifeOS系统创建完整备份。它会将你的配置、Skill和Claude设置打包成带时间戳的ZIP文件,并存储在你指定的位置。
为什么需要这个Skill:
  • 防止自定义Skill和配置丢失
  • 轻松迁移到新设备
  • 在重大变更前提供恢复点
  • 确保你在LifeOS上的投入不会付诸东流

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中的凭据仅能在你的本地设备上访问,绝不会被传输到外部。

What Gets Backed Up

备份内容

The backup includes three critical directories:
备份包含三个关键目录:

1. Claude Configuration (
~/.claude/
)

1. Claude配置(
~/.claude/

  • CLAUDE.md
    - Your global Claude instructions
  • settings.json
    - Claude Code settings
  • projects/
    - Project-specific configurations
  • All custom configurations
  • CLAUDE.md
    - 你的全局Claude指令
  • settings.json
    - Claude Code设置
  • projects/
    - 项目专属配置
  • 所有自定义配置

2. Global Skills (
~/.claude/skills/
)

2. 全局Skill(
~/.claude/skills/

  • All installed skills (including auto-generated ones)
  • Custom skill modifications
  • Skill configurations
  • 所有已安装的Skill(包括自动生成的)
  • 自定义Skill修改内容
  • Skill配置

3. Canifi Scripts (
~/canifi/
)

3. Canifi脚本(
~/canifi/

  • iMessage integration scripts
  • Helper scripts
  • Custom automation scripts

  • iMessage集成脚本
  • 辅助脚本
  • 自定义自动化脚本

First-Time Setup

首次设置

On your first backup request, Canifi will ask for your backup destination:
User: "canifi backup"

Canifi: "This is your first backup. Where would you like to store backups?

Please provide a full path, for example:
- ~/Backups/canifi
- ~/Documents/CanifiBackups
- /Volumes/ExternalDrive/Backups

I'll remember this location for future backups."

User: "~/Backups/canifi"

Canifi: "Got it! I'll store backups at ~/Backups/canifi

Saving this to your global CLAUDE.md...
Creating your first backup now..."
The destination is stored in your global
~/.claude/CLAUDE.md
file:
markdown
undefined
当你第一次请求备份时,Canifi会询问你的备份存储位置:
用户:"canifi backup"

Canifi:"这是你首次进行备份。你希望将备份存储在哪里?

请提供完整路径,例如:
- ~/Backups/canifi
- ~/Documents/CanifiBackups
- /Volumes/ExternalDrive/Backups

我会记住这个位置,供后续备份使用。"

用户:"~/Backups/canifi"

Canifi:"已记录!我会将备份存储在~/Backups/canifi

正在将此设置保存到你的全局CLAUDE.md中...
正在创建你的首次备份..."
该存储位置会被保存到你的全局
~/.claude/CLAUDE.md
文件中:
markdown
undefined

Canifi Backup Configuration

Canifi Backup Configuration

CANIFI_BACKUP_DESTINATION="~/Backups/canifi"

---
CANIFI_BACKUP_DESTINATION="~/Backups/canifi"

---

Usage

使用方法

Create a Backup

创建备份

canifi backup
Creates a timestamped backup at your configured destination:
~/Backups/canifi/canifi-backup-2026-01-09-143022.zip
canifi backup
会在你配置的位置创建一个带时间戳的备份:
~/Backups/canifi/canifi-backup-2026-01-09-143022.zip

Backup with Custom Name

使用自定义名称备份

canifi backup before-major-update
Creates:
~/Backups/canifi/canifi-backup-before-major-update-2026-01-09.zip
canifi backup before-major-update
会创建:
~/Backups/canifi/canifi-backup-before-major-update-2026-01-09.zip

Change Backup Destination

修改备份存储位置

canifi backup set destination ~/NewLocation/backups
Updates the destination in your global CLAUDE.md.
canifi backup set destination ~/NewLocation/backups
会更新全局CLAUDE.md中的存储位置。

List Recent Backups

列出最近的备份

canifi backup list
Shows recent backups with sizes and dates.
canifi backup list
会显示最近的备份及其大小和日期。

Restore from Backup

从备份恢复

canifi backup restore ~/Backups/canifi/canifi-backup-2026-01-09-143022.zip
Restores files from a backup (with confirmation prompts).

canifi backup restore ~/Backups/canifi/canifi-backup-2026-01-09-143022.zip
会从备份中恢复文件(需确认提示)。

Backup Workflow

备份流程

Step 1: Check for Destination

步骤1:检查存储位置

First, check if
CANIFI_BACKUP_DESTINATION
exists in
~/.claude/CLAUDE.md
:
bash
grep "CANIFI_BACKUP_DESTINATION" ~/.claude/CLAUDE.md
If not found, prompt user for destination.
首先,检查
~/.claude/CLAUDE.md
中是否存在
CANIFI_BACKUP_DESTINATION
bash
grep "CANIFI_BACKUP_DESTINATION" ~/.claude/CLAUDE.md
如果未找到,会提示用户提供存储位置。

Step 2: Store Destination (First Time Only)

步骤2:存储位置(仅首次)

Append to
~/.claude/CLAUDE.md
:
bash
cat >> ~/.claude/CLAUDE.md << 'EOF'
将配置追加到
~/.claude/CLAUDE.md
bash
cat >> ~/.claude/CLAUDE.md << 'EOF'

Canifi Backup Configuration

Canifi Backup Configuration

CANIFI_BACKUP_DESTINATION="[USER_PROVIDED_PATH]" EOF
undefined
CANIFI_BACKUP_DESTINATION="[USER_PROVIDED_PATH]" EOF
undefined

Step 3: Create Backup Directory

步骤3:创建备份目录

bash
mkdir -p "$CANIFI_BACKUP_DESTINATION"
bash
mkdir -p "$CANIFI_BACKUP_DESTINATION"

Step 4: Generate Timestamp

步骤4:生成时间戳

bash
TIMESTAMP=$(date +"%Y-%m-%d-%H%M%S")
BACKUP_NAME="canifi-backup-${TIMESTAMP}.zip"
bash
TIMESTAMP=$(date +"%Y-%m-%d-%H%M%S")
BACKUP_NAME="canifi-backup-${TIMESTAMP}.zip"

Step 5: Create ZIP Archive

步骤5:创建ZIP归档

bash
cd ~
zip -r "$CANIFI_BACKUP_DESTINATION/$BACKUP_NAME" \
  .claude/ \
  canifi/ \
  -x "*.DS_Store" \
  -x "*node_modules/*" \
  -x "*.git/*"
bash
cd ~
zip -r "$CANIFI_BACKUP_DESTINATION/$BACKUP_NAME" \
  .claude/ \
  canifi/ \
  -x "*.DS_Store" \
  -x "*node_modules/*" \
  -x "*.git/*"

Step 6: Verify and Report

步骤6:验证并报告

bash
undefined
bash
undefined

Check file was created

检查文件是否创建成功

ls -lh "$CANIFI_BACKUP_DESTINATION/$BACKUP_NAME"
ls -lh "$CANIFI_BACKUP_DESTINATION/$BACKUP_NAME"

Report to user

向用户报告结果

echo "Backup complete: $BACKUP_NAME" echo "Location: $CANIFI_BACKUP_DESTINATION" echo "Size: $(du -h "$CANIFI_BACKUP_DESTINATION/$BACKUP_NAME" | cut -f1)"

---
echo "Backup complete: $BACKUP_NAME" echo "Location: $CANIFI_BACKUP_DESTINATION" echo "Size: $(du -h "$CANIFI_BACKUP_DESTINATION/$BACKUP_NAME" | cut -f1)"

---

Restore Workflow

恢复流程

Step 1: Confirm with User

步骤1:与用户确认

WARNING: Restoring will overwrite existing files:
- ~/.claude/
- ~/canifi/

Current files will be backed up to ~/.canifi-restore-backup/ first.

Proceed? (yes/no)
警告:恢复操作将覆盖现有文件:
- ~/.claude/
- ~/canifi/

当前文件会先备份到~/.canifi-restore-backup/。

是否继续?(是/否)

Step 2: Backup Current State

步骤2:备份当前状态

bash
mkdir -p ~/.canifi-restore-backup
cp -r ~/.claude ~/.canifi-restore-backup/
cp -r ~/canifi ~/.canifi-restore-backup/
bash
mkdir -p ~/.canifi-restore-backup
cp -r ~/.claude ~/.canifi-restore-backup/
cp -r ~/canifi ~/.canifi-restore-backup/

Step 3: Extract Archive

步骤3:提取归档文件

bash
cd ~
unzip -o "$BACKUP_FILE"
bash
cd ~
unzip -o "$BACKUP_FILE"

Step 4: Verify Restore

步骤4:验证恢复结果

bash
echo "Restore complete!"
echo "Your previous configuration was backed up to ~/.canifi-restore-backup/"

bash
echo "Restore complete!"
echo "你的之前的配置已备份到~/.canifi-restore-backup/"

Backup Contents Structure

备份内容结构

canifi-backup-2026-01-09-143022.zip
├── .claude/
│   ├── CLAUDE.md
│   ├── settings.json
│   ├── projects/
│   │   └── [project-specific configs]
│   └── skills/
│       ├── canifi/
│       ├── canifi-skill-generator/
│       ├── canifi-backup/
│       └── [all other skills]
└── canifi/
    ├── canifi-send.sh
    ├── canifi-help.sh
    ├── canifi-status.sh
    ├── canifi-stream.sh
    ├── canifi-pause.sh
    ├── canifi-resume.sh
    ├── canifi-abort.sh
    └── canifi-imessage-monitor.sh

canifi-backup-2026-01-09-143022.zip
├── .claude/
│   ├── CLAUDE.md
│   ├── settings.json
│   ├── projects/
│   │   └── [project-specific configs]
│   └── skills/
│       ├── canifi/
│       ├── canifi-skill-generator/
│       ├── canifi-backup/
│       └── [all other skills]
└── canifi/
    ├── canifi-send.sh
    ├── canifi-help.sh
    ├── canifi-status.sh
    ├── canifi-stream.sh
    ├── canifi-pause.sh
    ├── canifi-resume.sh
    ├── canifi-abort.sh
    └── canifi-imessage-monitor.sh

Configuration in CLAUDE.md

CLAUDE.md中的配置

After first backup, your
~/.claude/CLAUDE.md
will include:
markdown
undefined
首次备份后,你的
~/.claude/CLAUDE.md
会包含以下内容:
markdown
undefined

Canifi Backup Configuration

Canifi Backup Configuration

CANIFI_BACKUP_DESTINATION="~/Backups/canifi"
CANIFI_BACKUP_DESTINATION="~/Backups/canifi"

Backup History

Backup History

  • Last backup: 2026-01-09 14:30:22
  • Total backups: 5
  • Oldest backup: 2026-01-01

---
  • Last backup: 2026-01-09 14:30:22
  • Total backups: 5
  • Oldest backup: 2026-01-01

---

Automatic Backup Triggers

自动备份触发

Consider setting up automatic backups:
可以设置自动备份:

Before Major Operations

重大操作前

The skill generator can trigger a backup before creating new skills:
"Creating new skill 'todoist'...
 Running pre-change backup first..."
Skill生成器可以在创建新Skill前触发备份:
"正在创建新Skill 'todoist'...
 先运行变更前备份..."

Scheduled Backups

定时备份

Add to your workflow:
canifi backup weekly
添加到你的工作流:
canifi backup weekly

Pre-Update Backups

更新前备份

Before updating Canifi LifeOS:
canifi backup pre-update

在更新Canifi LifeOS前:
canifi backup pre-update

Cloud Backup Destinations

云备份存储位置

You can set your backup destination to cloud-synced folders:
你可以将备份存储位置设置为云同步文件夹:

iCloud Drive (macOS)

iCloud Drive(macOS)

~/Library/Mobile Documents/com~apple~CloudDocs/Backups/canifi
~/Library/Mobile Documents/com~apple~CloudDocs/Backups/canifi

Dropbox

Dropbox

~/Dropbox/Backups/canifi
~/Dropbox/Backups/canifi

Google Drive

Google Drive

~/Google Drive/Backups/canifi
~/Google Drive/Backups/canifi

OneDrive

OneDrive

~/OneDrive/Backups/canifi
This way your backups are automatically synced to the cloud!

~/OneDrive/Backups/canifi
这样你的备份就会自动同步到云端!

Troubleshooting

故障排除

"Destination not found"

"Destination not found"

bash
undefined
bash
undefined

Create the directory

创建目录

mkdir -p ~/Backups/canifi
mkdir -p ~/Backups/canifi

Or change destination

或修改存储位置

canifi backup set destination ~/NewPath
undefined
canifi backup set destination ~/NewPath
undefined

"Permission denied"

"Permission denied"

bash
undefined
bash
undefined

Check permissions

检查权限

ls -la ~/Backups/
ls -la ~/Backups/

Fix if needed

如有需要修复权限

chmod 755 ~/Backups/canifi
undefined
chmod 755 ~/Backups/canifi
undefined

"Backup too large"

"Backup too large"

The backup excludes node_modules and .git by default. If still large:
bash
undefined
备份默认会排除node_modules和.git目录。如果仍然过大:
bash
undefined

Check what's taking space

检查占用空间的内容

du -sh ~/.claude/* ~/canifi/*
undefined
du -sh ~/.claude/* ~/canifi/*
undefined

"Cannot find CLAUDE.md"

"Cannot find CLAUDE.md"

bash
undefined
bash
undefined

Create if missing

如果缺失则创建

touch ~/.claude/CLAUDE.md

---
touch ~/.claude/CLAUDE.md

---

Example Session

示例会话

User: "canifi backup"

Canifi: "I notice this is your first backup request.
        Where would you like me to store your backups?

        Suggested locations:
        1. ~/Backups/canifi (local)
        2. ~/Dropbox/Backups/canifi (cloud-synced)
        3. Custom path

        Please provide your preferred backup destination."

User: "Use Dropbox"

Canifi: "Setting backup destination to: ~/Dropbox/Backups/canifi

        Updating ~/.claude/CLAUDE.md with backup configuration...
        Creating directory ~/Dropbox/Backups/canifi...

        Now creating your first backup...

        Backing up:
        ✓ ~/.claude/ (1.2 MB)
        ✓ ~/.claude/skills/ (4.8 MB)
        ✓ ~/canifi/ (52 KB)

        Backup complete!

        📦 canifi-backup-2026-01-09-143022.zip
        📍 ~/Dropbox/Backups/canifi/
        📊 Size: 6.1 MB

        Your LifeOS is now backed up and syncing to Dropbox."

用户:"canifi backup"

Canifi:"我注意到这是你首次请求备份。
        你希望将备份存储在哪里?

        推荐位置:
        1. ~/Backups/canifi(本地)
        2. ~/Dropbox/Backups/canifi(云同步)
        3. 自定义路径

        请提供你偏好的备份存储位置。"

用户:"使用Dropbox"

Canifi:"正在将备份存储位置设置为:~/Dropbox/Backups/canifi

        正在更新~/.claude/CLAUDE.md中的备份配置...
        正在创建目录~/Dropbox/Backups/canifi...

        现在正在创建你的首次备份...

        正在备份:
        ✓ ~/.claude/ (1.2 MB)
        ✓ ~/.claude/skills/ (4.8 MB)
        ✓ ~/canifi/ (52 KB)

        备份完成!

        📦 canifi-backup-2026-01-09-143022.zip
        📍 ~/Dropbox/Backups/canifi/
        📊 大小:6.1 MB

        你的LifeOS已完成备份,并将同步到Dropbox。"

Security Notes

安全说明

  1. Backups may contain sensitive data - Your CLAUDE.md might have API keys or credentials
  2. Encrypt sensitive backups - Consider using encrypted disk images for highly sensitive setups
  3. Cloud sync considerations - Cloud-synced folders upload your backup; ensure you trust the provider
  4. Exclude from git - Never commit backup ZIPs to version control
  1. 备份可能包含敏感数据 - 你的CLAUDE.md中可能包含API密钥或凭据
  2. 加密敏感备份 - 对于高度敏感的设置,建议使用加密磁盘镜像
  3. 云同步注意事项 - 云同步文件夹会上传你的备份;请确保你信任该云服务提供商
  4. 不要提交到git - 切勿将备份ZIP文件提交到版本控制系统