Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/rmusser01-airtable
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions: not checked yet.
What's inside
- Skill name
airtable- Description
- Airtable REST API via curl. Records CRUD, filters, upserts.
- License
- MIT
- Instructions
- 215 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (5)
- README.md
- SHA256SUMS
- SKILL.md
- UPSTREAM.json
- UPSTREAM_ROOT_LICENSE.txt
SKILL.md (first lines)
# Airtable — Bases, Tables & Records
Work with Airtable's REST API directly via `curl` using the `terminal` tool. No MCP server, no OAuth flow, no Python SDK — just `curl` and a personal access token.
## Prerequisites
1. Create a **Personal Access Token (PAT)** at https://airtable.com/create/tokens (tokens start with `pat...`).
2. Grant these scopes (minimum):
- `data.records:read` — read rows
- `data.records:write` — create / update / delete rows
- `schema.bases:read` — list bases and tables
3. **Important:** in the same token UI, add each base you want to access to the token's **Access** list. PATs are scoped per-base — a valid token on the wrong base returns `403`.
4. Store the token in `${HERMES_HOME:-~/.hermes}/.env` (or via `hermes setup`):
```
AIRTABLE_API_KEY=pat_your_token_here
```
> Note: legacy `key...` API keys were deprecated Feb 2024. Only PATs and OAuth tokens work now.
## API Basics
- **Endpoint:** `https://api.airtable.com/v0`
- **Auth header:** `Authorization: Bearer $AIRTABLE_API_KEY`
- **All requests** use JSON (`Content-Type: application/json` for any POST/PATCH/PUT body).
- **Object IDs:** bases `app...`, tables `tbl...`, records `rec...`, fields `fld...`. IDs never change; names can. Prefer IDs in automations.
- **Rate limit:** 5 requests/sec/base. `429` → back off. Burst on a single base will be throttled.
Base curl pattern:
```bash
curl -s "https://api.airtable.com/v0/$BASE_ID/$TABLE?maxRecords=5" \
-H "Authorization: Bearer $AIRTABLE_API_KEY" | python -m json.tool
```
`-s` suppresses curl's progress bar — keep it set for every call so the tool output stays clean for Hermes. Pipe through `python -m json.tool` (always present) or `jq` (if installed) for readable JSON.
## Field Types (request body shapes)
| Field type | Write shape |
|---|---|
| Single line text | `"Name": "hello"` |
| Long text | `"Notes": "multi\nline"` |
| Number | `"Score": 42` |
| Checkbox | `"Done": true` |
| Single select | `"Status": "Todo"` (name must already exist unless `typecast: true`) |
| Multi-select | `"Tags": ["urgent", "bug"]` |
| Date | `"Due": "2026-04-01"` |
| DateTime (UTC) | `"At": "2026-04-01T14:30:00.000Z"` |
| URL / Email / Phone | `"Link": "https://…"` |
| Attachment | `"Files": [{"url": "https://…"}]` (Airtable fetches + rehosts) |
| Linked record | `"Owner": ["recXXXXXXXXXXXXXX"]` (array of record IDs) |
| User | `"AssignedTo": {"id": "usrXXXXXXXXXXXXXX"}` |
Pass `"typecast": true` at the top level of a create/update body to let Airtable auto-coerce values (e.g. create a new select option on the fly, convert `"42"` → `42`).
## Common Queries
### List bases the token can see
```bash
curl -s "https://api.airtable.com/v0/meta/bases" \
-H "Authorization: Bearer $AIRTABLE_API_KEY" | python -m json.tool
```
### List tables + schema for a base
```bash
curl -s "https://api.airtable.com/v0/meta/bases/$BASE_ID/tables" \
-H "Authorization: Bearer $AIRTABLE_API_KEY" | python -m json.tool
```
Use this BEFORE mutating — confirms exact field names and IDs, surfaces `options.choices` for select fields, and shows primary-field names.
### List records (first 10)
```bash
curl -s "https://api.airtable.com/v0/$BASE_ID/$TABLE?maxRecords=10" \
-H "Authorization: Bearer $AIRTABLE_API_KEY" | python -m json.tool
```
### Get a single record
```bash
curl -s "https://api.airtable.com/v0/$BASE_ID/$TABLE/$RECORD_ID" \
-H "Authorization: Bearer $AIRTABLE_API_KEY" | python -m json.tool
```
### Filter records (filterByFormula)
Airtable formulas must be URL-encoded. Let Python stdlib do it — never hand-encode:
```bash
FORMULA="{Status}='Todo'"
ENC=$(python -c 'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1], safe=""))' "$FORMULA")
curl -s "https://api.airtable.com/v0/$BASE_ID/$TABLE?filterByFormula=$ENC&maxRecords=20" \
-H "Authorization: Bearer $AIRTABLE_API_KEY" | python -m json.tool
```
Useful formula patterns:
- Exact match: `{Email}='user@example.com'`
- Contains: `FIND('bug', LOWER({Title}))`
- Multiple conditions: `AND({Status}='Todo', {Priority}='High')`
- Or: `OR({Owner}='alice', {Owner}='bob')`
- Not empty: `NOT({Assignee}='')`
- Date comparison: `IS_AFTER({Due}, TODAY())`
### Sort + select specific fields
```bash
curl -s "https://api.airtable.com/v0/$BASE_ID/$TABLE?sort%5B0%5D%5Bfield%5D=Priority&sort%5B0%5D%5Bdirection%5D=asc&fields%5B%5D=Name&fields%5B%5D=Status" \
-H "Authorization: Bearer $AIRTABLE_API_KEY" | python -m json.tool
```
Square brackets in query params MUST be URL-encoded (`%5B` / `%5D`).
### Use a named view
```bash
curl -s "https://api.airtable.com/v0/$BASE_ID/$TABLE?view=Grid%20view&maxRecords=50" \
-H "Authorization: Bearer $AIRTABLE_API_KEY" | python -m json.tool
```
Views apply their saved filter + sort server-side.
## Common Mutations
### Create a record
```bash
curl -s -X POST "https://api.airtable.com/v0/$BASE_ID/$TABLE" \
-H "Authorization: Bearer $AIRTABLE_API_KEY" \
-H "Content-Type: application/json" \From rmusser01/tldw-stuff, MIT.
More from rmusser01/tldw-stuff
- 0.563score
petdex-install
tldw-project
Use when a user requests installing a Petdex companion into Chatbook, or preparing a Petdex URL, slug, ZIP or folder as a Chatbook Buddy pack.
SkillBFreshness: B★ 2Claude Code +9 - 0.559score
chatbook-xlsx
tldw-project
Create, edit and analyze Excel .xlsx workbooks from supplied tables or Chatbook material, preserving formulas and distinguishing calculated results from…
SkillBFreshness: B★ 2Claude Code +9 - 0.559score
chatbook-pptx
tldw-project
Build and revise editable PowerPoint .pptx presentations from a brief or Chatbook sources, with an audience-focused narrative and content and visual checks.
SkillBFreshness: B★ 2Claude Code +9 - 0.559score
chatbook-docx
tldw-project
Create, edit and review Word .docx documents from supplied material or Chatbook notes, preserving document structure and checking the delivered file.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
chatbook-knowledge-capture
rmusser01
Turn conversations and source notes into reusable Chatbook decision records, how-to guides, FAQs, reference notes or lessons learned.
SkillBFreshness: B★ 2Claude Code +9 - 0.554score
chatbook-meeting-preparation
rmusser01
Prepare meeting agendas and pre-reads from Chatbook notes or supplied context, with source references, decision questions, timeboxes and carry-over actions.
SkillBFreshness: B★ 2Claude Code +9 - 0.537score
mcp-builder
rmusser01
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools.
SkillBFreshness: B★ 2Claude Code +9 - 0.537score
skill-creator
rmusser01
Create new skills, modify and improve existing skills, and measure skill performance.
SkillBFreshness: B★ 2Claude Code +9
Signals
- Stars
- 2
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 6, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/rmusser01/tldw-stuff
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
- 0.531score
airtable
AjayRajan05
Airtable REST API via curl.
SkillCFreshness: C★ 10Claude Code +9 - 0.333score
airtable
chaorenex1
Airtable REST API via curl.
SkillAFreshness: AClaude Code +9 - 0.333score
airtable
SatangThevalue
Airtable REST API via curl.
SkillAFreshness: AClaude Code +9 - 0.309score
airtable
sweetloser
Airtable REST API via curl.
SkillBFreshness: BClaude Code +9 - 0.305score
airtable
maximusmaximus
Airtable REST API via curl.
SkillBFreshness: BClaude Code +9
More from rmusser01
- 0.557score
chatbook-knowledge-capture
rmusser01
Turn conversations and source notes into reusable Chatbook decision records, how-to guides, FAQs, reference notes or lessons learned.
SkillBFreshness: B★ 2Claude Code +9 - 0.554score
chatbook-meeting-preparation
rmusser01
Prepare meeting agendas and pre-reads from Chatbook notes or supplied context, with source references, decision questions, timeboxes and carry-over actions.
SkillBFreshness: B★ 2Claude Code +9 - 0.537score
mcp-builder
rmusser01
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools.
SkillBFreshness: B★ 2Claude Code +9 - 0.537score
skill-creator
rmusser01
Create new skills, modify and improve existing skills, and measure skill performance.
SkillBFreshness: B★ 2Claude Code +9
Cite this page
airtable skill. Agent Mart. https://agentmart.dev/skills/rmusser01-airtable (last updated 2026-10-24)