airtable

TotalClaw 作者 totalclaw

直接通过 Airtable API 读取 Airtable 基础、表格和记录。当您需要来自 Airtable 的电子表格/数据库数据时使用。直接调用 api.airtable.com,无需第三方代理。

安装 / 下载方式

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

Read bases, tables, and records directly via `api.airtable.com`.

## Setup (one-time)

1. Go to https://airtable.com/create/tokens
2. Click **+ Create new token**, give it a name
3. Add scopes:
   - `data.records:read`
   - `schema.bases:read`
4. Under **Access**, select which bases to grant access to (or all)
5. Copy the token — it starts with `pat`
6. Set the environment variable:
   ```
   AIRTABLE_PAT=pat_your_token_here
   ```

## Commands

### List all accessible bases
```bash
python3 /mnt/skills/user/airtable/scripts/airtable.py list-bases
```

### List tables in a base
```bash
python3 /mnt/skills/user/airtable/scripts/airtable.py list-tables <base_id>
```

### List records in a table
```bash
python3 /mnt/skills/user/airtable/scripts/airtable.py list-records <base_id> "Table Name"
python3 /mnt/skills/user/airtable/scripts/airtable.py list-records <base_id> "Table Name" --limit 50
```

### Filter records with a formula
```bash
python3 /mnt/skills/user/airtable/scripts/airtable.py list-records <base_id> "Tasks" --filter "{Status}='Done'"
python3 /mnt/skills/user/airtable/scripts/airtable.py list-records <base_id> "Contacts" --filter "NOT({Email}='')"
```

### Filter to specific fields only
```bash
python3 /mnt/skills/user/airtable/scripts/airtable.py list-records <base_id> "People" --fields "Name,Email,Company"
```

### Use a specific view
```bash
python3 /mnt/skills/user/airtable/scripts/airtable.py list-records <base_id> "Tasks" --view "Active Tasks"
```

### Get a specific record
```bash
python3 /mnt/skills/user/airtable/scripts/airtable.py get-record <base_id> "Table Name" <record_id>
```

### Search records
```bash
python3 /mnt/skills/user/airtable/scripts/airtable.py search-records <base_id> "Contacts" "Smith"
python3 /mnt/skills/user/airtable/scripts/airtable.py search-records <base_id> "Contacts" "smith@acme.com" --field "Email"
```

## Notes

- Free plan: unlimited bases, 1,000 records per base. API reads work on free.
- Base IDs start with `app`, record IDs start with `rec`.
- Table names are case-sensitive and must match exactly. Use quotes if the name has spaces.
- Airtable deprecated old API keys in Feb 2024. Only Personal Access Tokens (PAT) work now.

---

## 中文说明

# Airtable

直接通过 `api.airtable.com` 读取基础(base)、表格和记录。

## 设置(一次性)

1. 前往 https://airtable.com/create/tokens
2. 点击 **+ Create new token**,为其命名
3. 添加作用域(scopes):
   - `data.records:read`
   - `schema.bases:read`
4. 在 **Access** 下,选择要授予访问权限的基础(或全部)
5. 复制令牌 — 它以 `pat` 开头
6. 设置环境变量:
   ```
   AIRTABLE_PAT=pat_your_token_here
   ```

## 命令

### 列出所有可访问的基础
```bash
python3 /mnt/skills/user/airtable/scripts/airtable.py list-bases
```

### 列出某个基础中的表格
```bash
python3 /mnt/skills/user/airtable/scripts/airtable.py list-tables <base_id>
```

### 列出某个表格中的记录
```bash
python3 /mnt/skills/user/airtable/scripts/airtable.py list-records <base_id> "Table Name"
python3 /mnt/skills/user/airtable/scripts/airtable.py list-records <base_id> "Table Name" --limit 50
```

### 使用公式筛选记录
```bash
python3 /mnt/skills/user/airtable/scripts/airtable.py list-records <base_id> "Tasks" --filter "{Status}='Done'"
python3 /mnt/skills/user/airtable/scripts/airtable.py list-records <base_id> "Contacts" --filter "NOT({Email}='')"
```

### 仅筛选特定字段
```bash
python3 /mnt/skills/user/airtable/scripts/airtable.py list-records <base_id> "People" --fields "Name,Email,Company"
```

### 使用特定视图
```bash
python3 /mnt/skills/user/airtable/scripts/airtable.py list-records <base_id> "Tasks" --view "Active Tasks"
```

### 获取特定记录
```bash
python3 /mnt/skills/user/airtable/scripts/airtable.py get-record <base_id> "Table Name" <record_id>
```

### 搜索记录
```bash
python3 /mnt/skills/user/airtable/scripts/airtable.py search-records <base_id> "Contacts" "Smith"
python3 /mnt/skills/user/airtable/scripts/airtable.py search-records <base_id> "Contacts" "smith@acme.com" --field "Email"
```

## 注意事项

- 免费套餐:无限基础,每个基础 1,000 条记录。API 读取在免费套餐上可用。
- 基础 ID 以 `app` 开头,记录 ID 以 `rec` 开头。
- 表格名称区分大小写,必须完全匹配。如果名称含空格,请使用引号。
- Airtable 已于 2024 年 2 月弃用旧版 API 密钥。现在仅个人访问令牌(PAT)可用。