cozi

TotalClaw 作者 totalclaw

与 Cozi Family Organizer 互动(购物清单、待办事项清单、项目管理)。用于家庭组织的非官方 API 客户端。

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~angusthefuzz-cozi
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~angusthefuzz-cozi/file -o angusthefuzz-cozi.md
# Cozi Skill

Unofficial client for Cozi Family Organizer API. Manage shopping lists and todo lists.

⚠️ **Important:** This uses an unofficial API (reverse-engineered). Cozi may change it at any time.

## Environment Variables

Set these in your agent's `.env` (`~/.openclaw/.env`) or create a skill-level `.env` at `~/.openclaw/skills/cozi/.env`:

- `COZI_EMAIL` — Your Cozi account email
- `COZI_PASSWORD` — Your Cozi account password

The script only reads `COZI_EMAIL` and `COZI_PASSWORD` from `.env` files — other variables are ignored.

## Commands

```bash
# Lists
node ~/.openclaw/skills/cozi/scripts/cozi.js lists                    # Show all lists
node ~/.openclaw/skills/cozi/scripts/cozi.js list <listId>            # Show specific list
node ~/.openclaw/skills/cozi/scripts/cozi.js add <listId> "item text"  # Add item
node ~/.openclaw/skills/cozi/scripts/cozi.js check <listId> <itemId>   # Mark complete
node ~/.openclaw/skills/cozi/scripts/cozi.js uncheck <listId> <itemId> # Mark incomplete
node ~/.openclaw/skills/cozi/scripts/cozi.js remove <listId> <itemId>  # Remove item
node ~/.openclaw/skills/cozi/scripts/cozi.js new-list "title" [type]   # Create list (shopping|todo)
node ~/.openclaw/skills/cozi/scripts/cozi.js delete-list <listId>      # Delete list

# Calendar
node ~/.openclaw/skills/cozi/scripts/cozi.js calendar [year] [month]   # Show month (defaults to current)
node ~/.openclaw/skills/cozi/scripts/cozi.js cal [year] [month]         # Alias
node ~/.openclaw/skills/cozi/scripts/cozi.js add-appt YYYY-MM-DD HH:MM HH:MM "subject" [location] [notes]
node ~/.openclaw/skills/cozi/scripts/cozi.js remove-appt <year> <month> <apptId>
```

## Examples

```bash
# See all lists and their items
node ~/.openclaw/skills/cozi/scripts/cozi.js lists

# Add milk to the shopping list
node ~/.openclaw/skills/cozi/scripts/cozi.js add abc123 "Organic milk"

# Mark item as bought
node ~/.openclaw/skills/cozi/scripts/cozi.js check abc123 item456

# Create a new todo list
node ~/.openclaw/skills/cozi/scripts/cozi.js new-list "Weekend chores" todo

# View this month's calendar
node ~/.openclaw/skills/cozi/scripts/cozi.js cal

# View specific month
node ~/.openclaw/skills/cozi/scripts/cozi.js cal 2026 3

# Add an appointment
node ~/.openclaw/skills/cozi/scripts/cozi.js add-appt 2026-02-20 14:00 15:30 "Doctor appointment" "Rochester General"
```

## Session Caching

The script caches your session token in `~/.openclaw/skills/cozi/.session.json` to avoid re-authenticating every call. Tokens expire — it will re-auth when needed.

## API Details

- Base URL: `https://rest.cozi.com/api/ext/2207`
- Auth: Bearer token from username/password login
- Lists endpoint: `/api/ext/2004/{accountId}/list/`

Based on [cozi-api-client](https://github.com/BrandCast-Signage/cozi-api-client) and [py-cozi](https://github.com/Wetzel402/py-cozi).

---

## 中文说明

# Cozi Skill

Cozi Family Organizer API 的非官方客户端。管理购物清单和待办清单。

⚠️ **重要:** 此技能使用非官方 API(逆向工程得来)。Cozi 可能随时更改它。

## 环境变量

在你的代理的 `.env`(`~/.openclaw/.env`)中设置这些变量,或在 `~/.openclaw/skills/cozi/.env` 创建一个技能级 `.env`:

- `COZI_EMAIL` — 你的 Cozi 账户邮箱
- `COZI_PASSWORD` — 你的 Cozi 账户密码

脚本仅从 `.env` 文件读取 `COZI_EMAIL` 和 `COZI_PASSWORD` — 其他变量会被忽略。

## 命令

```bash
# Lists
node ~/.openclaw/skills/cozi/scripts/cozi.js lists                    # Show all lists
node ~/.openclaw/skills/cozi/scripts/cozi.js list <listId>            # Show specific list
node ~/.openclaw/skills/cozi/scripts/cozi.js add <listId> "item text"  # Add item
node ~/.openclaw/skills/cozi/scripts/cozi.js check <listId> <itemId>   # Mark complete
node ~/.openclaw/skills/cozi/scripts/cozi.js uncheck <listId> <itemId> # Mark incomplete
node ~/.openclaw/skills/cozi/scripts/cozi.js remove <listId> <itemId>  # Remove item
node ~/.openclaw/skills/cozi/scripts/cozi.js new-list "title" [type]   # Create list (shopping|todo)
node ~/.openclaw/skills/cozi/scripts/cozi.js delete-list <listId>      # Delete list

# Calendar
node ~/.openclaw/skills/cozi/scripts/cozi.js calendar [year] [month]   # Show month (defaults to current)
node ~/.openclaw/skills/cozi/scripts/cozi.js cal [year] [month]         # Alias
node ~/.openclaw/skills/cozi/scripts/cozi.js add-appt YYYY-MM-DD HH:MM HH:MM "subject" [location] [notes]
node ~/.openclaw/skills/cozi/scripts/cozi.js remove-appt <year> <month> <apptId>
```

## 示例

```bash
# See all lists and their items
node ~/.openclaw/skills/cozi/scripts/cozi.js lists

# Add milk to the shopping list
node ~/.openclaw/skills/cozi/scripts/cozi.js add abc123 "Organic milk"

# Mark item as bought
node ~/.openclaw/skills/cozi/scripts/cozi.js check abc123 item456

# Create a new todo list
node ~/.openclaw/skills/cozi/scripts/cozi.js new-list "Weekend chores" todo

# View this month's calendar
node ~/.openclaw/skills/cozi/scripts/cozi.js cal

# View specific month
node ~/.openclaw/skills/cozi/scripts/cozi.js cal 2026 3

# Add an appointment
node ~/.openclaw/skills/cozi/scripts/cozi.js add-appt 2026-02-20 14:00 15:30 "Doctor appointment" "Rochester General"
```

## 会话缓存

脚本会将你的会话令牌缓存在 `~/.openclaw/skills/cozi/.session.json` 中,以避免每次调用都重新认证。令牌会过期 — 需要时它会重新认证。

## API 详情

- 基础 URL:`https://rest.cozi.com/api/ext/2207`
- 认证:通过用户名/密码登录获取的 Bearer 令牌
- 清单端点:`/api/ext/2004/{accountId}/list/`

基于 [cozi-api-client](https://github.com/BrandCast-Signage/cozi-api-client) 和 [py-cozi](https://github.com/Wetzel402/py-cozi)。