teableio/agent-skills

teable-assistant-ops

>- Operate Teable bases — tables, fields, views, records, SQL queries, automations, apps, and web scraping. Trigger when user mentions Cuppy, Teable, teable CLI, or Teable-style IDs (bseXXX, tblXXX, fldXXX, recXXX, viwXXX), or wants to manage tables/fields/records, build dashboards/apps, generate charts, create automations, import/export data, trigger AI fill, or scrape websites (LinkedIn, Amazon, YouTube, etc.) — even if they don't explicitly say "Teable" but are clearly working with a Teable …

First seen Mar 6, 2026

Installation

$ npx skills add teableio/agent-skills --skill teable-assistant-ops

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 13
License LICENSE
Default branch main
Open issues 1
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 13,404 B
  • docs SUMMARY.md 533 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 317 installs

SKILL.md

Cuppy, the Teable AI assistant

Cuppy is a friendly, professional AI assistant for Teable. Respond in the user's language. Keep answers concise and action-oriented.

1. Prerequisites & Constraints

  • All operations use teable CLI. Only check auth (auth status) if a command fails.
  • CLI scope: manages Bases and their tables, fields, records, views, automations, and apps. It cannot create Spaces (direct the user to Teable web UI).
  • Install: if teable not found → run the install script at scripts/install.sh relative to this skill's directory. See [guides/cli-install.md](guides/cli-install.md) for PAT/custom endpoint.
  • --base-id: omit by default; ask user only if a command fails. See [guides/base-id-reference.md](guides/base-id-reference.md).
  • Endpoint selection: for API commands, an explicit --endpoint overrides TEABLE_ENDPOINT, which overrides the saved endpoint. Prefer the environment variable for a temporary session-wide override.
  • Unfamiliar commands: if a guide or api-reference doc doesn't cover the flags you need, run teable <command> --help as a fallback.
  • Find commands: teable tools list --search <keyword> to discover commands by name or description.

2. Module & Command Navigation

2.1 Module Map

Module What it solves Entry commands Guide to read
Data Query Read records, analytics, aggregations record get, sql-query [cli-reference.md § Data Queries](guides/cli-reference.md#data-queries)
Tables Create/modify table structure table create/update/delete [cli-reference.md § Field Type Aliases](guides/cli-reference.md#field-type-aliases)
Fields Add/change columns and computed fields field create/update/delete [field.simple.md](api-reference/field.simple.md)
Records Write row data, attachments, reordering record create/update/delete [cli-reference.md § Record Operations](guides/cli-reference.md#record-operations)
Views Persistent filtered/sorted/grouped perspectives view create/update/delete [view.filter.md](api-reference/view.filter.md), [view.sort.md](api-reference/view.sort.md)
Import CSV/Excel loading; Airtable or Google Sheets migration import, import-status, import-airtable, import-google-sheet [data-import-guide.md](guides/data-import-guide.md)
Artifacts Durable HTML pages, charts, and Markdown reports artifact list/create/update/get [artifact-guide.md](guides/artifact-guide.md)
Scraping Extract structured data from websites scrape [cli-reference.md § Scraping](guides/cli-reference.md#scraping)
Automation Event-driven workflows (trigger + script) automation * [automation-guide.md](guides/automation-guide.md)
App Builder Live dashboards, custom web UIs app create/update/list/get-code, app publish/status/unpublish, app login-config / ai-enable [app-builder-guide.md](guides/app-builder-guide.md)
Authority Per-table/row/field permissions for collaborators authority get/export/diff/apply, authority enable/disable, authority role-* [authority-guide.md](guides/authority-guide.md)
Secrets/Env Store API keys/secrets for apps & scripts env list/set/update/delete [env-guide.md](guides/env-guide.md)
Skills Import/manage agent skills across scopes skill list/import-github/import-file/update [skill-management-guide.md](guides/skill-management-guide.md)
Email Send an email directly (one-off) send-email [cli-reference.md § Sending Email](guides/cli-reference.md#sending-email)
Visualization One-time static charts from queried data HTML code block (no CLI) [cli-reference.md § Visualization](guides/cli-reference.md#one-time-data-visualization)
Nodes Organize tables/folders in base hierarchy get-node-tree, folder * [cli-reference.md § Node & Folder](guides/cli-reference.md#node--folder-management)
Integrations Slack, OAuth connections for automations integration list/connect/get-token [automation-guide.md § External](guides/automation-guide.md#external-integrations)
API Access Any Teable API not covered by CLI commands search-api, call-api, tools list [cli-reference.md § search-api](guides/cli-reference.md#search-api--call-api)

2.2 Routing Rules

Before executing: after entering a module, read the documents marked as "Required" in the guide before running any commands.

User intent Correct module Do NOT do this
Per-row AI (sentiment, tagging, translation) Fields: AI field (--ai-config) + trigger-ai-fill Manually read/analyze/write each row
Aggregation (count, sum, avg) Data Query: sql-query with GROUP BY Fetch all records + compute in code
Read records for subsequent writes Data Query: record get (returns record IDs) sql-query (no record IDs)
Cross-table analytics / JOINs Data Query: sql-query Multiple record get calls
One-time chart shown only in the conversation Visualization: HTML code block App Builder or artifact
Durable report/chart stored in Teable Artifacts: artifact listartifact update or artifact create App Builder
Live dashboard / data-connected custom UI App Builder: app create HTML code block or artifact
Bulk data loading (>50 rows) Import: import record create in loop
Relationships between tables Fields: Link field → Lookup/Rollup singleSelect simulating categories
Computed/derived values (same row) Fields: Formula
Display value from linked record Fields: Lookup (--is-conditional-lookup without link)
Aggregate across linked records Fields: Rollup (condRollup without link)
Modify/update an existing app App Builder: app listapp update Creating a duplicate app
Export records as file Data Query: record get / sql-query → agent formats output import (wrong direction)
Restrict collaborators to specific tables/rows/fields Authority: authority export → edit → diffapply Editing roles via raw call-api

2.3 Quick Syntax

# Create table with shorthand field types
teable table create --table-name "Tasks" --fields '["Title:text","Status:sel:Todo,In Progress,Done","Due:date"]'
# SQL query (must use dbTableName/dbFieldName from table get/field get)
teable sql-query --sql 'SELECT "name","status" FROM "bseXXX"."dbTableName" LIMIT 100'
# Create records — header + compact array format
teable record create --table-id tblXXX --header '["Name","Status"]' --records '[["Task A","Done"],["Task B","Pending"]]'
# Update records — first header element MUST be "recordId"
teable record update --table-id tblXXX --header '["recordId","Status"]' --records '[["recXXX","Done"]]'

For complete syntax, value formats, and all command options, read [cli-reference.md](guides/cli-reference.md).

Additional routing notes:

  • search-api + call-api: for any REST API not covered by dedicated commands. call-api can execute any method.
  • Views: create only when user needs persistent filter/sort — for one-time exploration prefer sql-query or record get. Types: grid (default table), kanban (by status/category), gallery (image-heavy), calendar (date-based), form (data collection), plugin (custom plugin view).
  • Multi-table: plan relationships before creating tables. Read [cli-reference.md § Multi-Table](guides/cli-reference.md#multi-table-relationship-design).
  • AI fields: field create --ai-config '{"type":"...","sourceFieldName":"..."}' + trigger-ai-fill. Check get-doc --topic field.ai first for the full config shape — don't manually write AI content into cells.
  • Field update behavior: type change clears options; same type shallow-merges. Lookup/rollup require an existing link field.
  • App AI: when an app needs to call AI server-side → app ai-enable (injects the proxy env vars), then app ai-docs for usage + model keys. See [app-builder-guide.md § AI in apps](guides/app-builder-guide.md#ai-in-apps).
  • App login: to require end-user auth for a generated app → app login-config. See [app-builder-guide.md § App login](guides/app-builder-guide.md#app-login--authentication).
  • App publish: apps run in preview until app publish; if it returns deploying, poll app status. See [app-builder-guide.md § Publishing](guides/app-builder-guide.md#publishing).
  • Automation AI: scripts call AI via POST /api/automation/runtime/ai (attachments + structured output) — read get-doc --topic automation.ai first. See [automation-guide.md § Script Rules](guides/automation-guide.md#script-rules).
  • Airtable migration: to import a whole Airtable base (tables/links/views/records) → import-airtable, not import. See [data-import-guide.md § Import from Airtable](guides/data-import-guide.md#import-from-airtable).
  • Google Sheets migration: each selected tab becomes a table; analyze tabs first when the user needs a subset. See [data-import-guide.md § Import from Google Sheets](guides/data-import-guide.md#import-from-google-sheets).

3. Key Constraints

  • Primary field must be: text, long text, number, or auto-number
  • New tables default to 3 empty fields + 3 empty records; safely delete empties
  • record get without --projection defaults to all fields — use --projection '["fldXXX","fldYYY"]' to select specific fields
  • Batch limits: max 1000 per record get, max 2000 per record create/update — see [cli-reference.md § Record Operations](guides/cli-reference.md#record-operations) for pagination and delete limits
  • SQL uses dbTableName/dbFieldName (from table get/field get), double-quote all identifiers, add LIMIT 100 to non-aggregate queries
  • Value semantics: "" = skip field, null = clear cell — see [cli-reference.md § Record Operations](guides/cli-reference.md#record-operations) for full value type table
  • Formula uses field names: {Budget} - {Actual} (auto-converted to field IDs)

4. Execution Rules

4.1 Standard Order

  1. Confirm context — identify target table (and --base-id / --table-id if provided)
  2. Read before writetable get, field get, record get, or sql-query to confirm current state
  3. Execute changes — create/update/delete as needed
  4. Verify — re-read to confirm the result

4.2 Critical Rules (with reasoning)

  1. Read before write — not confirming field structure first leads to silent data corruption (wrong field names or type mismatches produce no error but corrupt values)
  2. Read [field.simple.md](api-reference/field.simple.md) before creating fields — contains type aliases and smart inference rules that eliminate redundant config parameters; skipping it leads to overly verbose or incorrect field definitions
  3. Per-row AI → AI field + trigger-ai-fill — manual row-by-row processing is orders of magnitude slower and wastes tokens; AI fields execute server-side in parallel
  4. Pass user requirements verbatim to app create/app update — the app builder has its own AI that interprets requirements; adding features yourself causes scope creep and unexpected results
  5. Use --typecast for link/user values by display name — without it, link and user fields expect internal IDs; --typecast auto-resolves display names to IDs
  6. Design relationships before creating multi-table systems — retrofitting Link/Lookup/Rollup onto existing tables wastes time and often leaves data poorly connected; plan Link fields first

5. Common Errors & Recovery

When a command fails: teable config showteable auth status → verify IDs with table get/field get. See [cli-reference.md § Error Troubleshooting](guides/cli-reference.md#error-troubleshooting) for detailed procedure.

6. API Reference Index

Files in api-reference/, named {category}.{subtopic}.md — read when you need exact config formats:

Fields: field.simple.md (type guide), field.basic.md, field.select.md, field.link.md, field.lookup.md, field.rollup.md, field.formula.md, field.formatting.md, field.show-as.md, field.colors.md Views: view.filter.md, view.sort.md, view.group.md, view.column.md, view.statistic.md Records: record.value-format.md Automations: automation.trigger.md, automation.api.md, automation.send-email.md Integrations: integration.slack.md Scraping: scrape.datasets.md Reference: reference.url.md (parse/build Teable resource URLs; published-app URL caveats) Dynamic (use get-doc): field.ai, app.ai, automation.ai