Loading...
Loading...
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 base.
npx skill4agent add teableio/agent-skills teable-assistant-opsteableauth statusteablescripts/install.sh--base-idteable <command> --helpteable tools list --search <keyword>| Module | What it solves | Entry commands | Guide to read |
|---|---|---|---|
| Data Query | Read records, analytics, aggregations | | cli-reference.md § Data Queries |
| Tables | Create/modify table structure | | cli-reference.md § Field Type Aliases |
| Fields | Add/change columns and computed fields | | field.simple.md |
| Records | Write row data, attachments, reordering | | cli-reference.md § Record Operations |
| Views | Persistent filtered/sorted/grouped perspectives | | view.filter.md, view.sort.md |
| Import | CSV/Excel file loading (>50 rows); whole Airtable base migration | | data-import-guide.md |
| Scraping | Extract structured data from websites | | cli-reference.md § Scraping |
| Automation | Event-driven workflows (trigger + script) | | automation-guide.md |
| App Builder | Live dashboards, custom web UIs | | app-builder-guide.md |
| Secrets/Env | Store API keys/secrets for apps & scripts | | env-guide.md |
| Send an email directly (one-off) | | cli-reference.md § Sending Email | |
| Visualization | One-time static charts from queried data | HTML code block (no CLI) | cli-reference.md § Visualization |
| Nodes | Organize tables/folders in base hierarchy | | cli-reference.md § Node & Folder |
| Integrations | Slack, OAuth connections for automations | | automation-guide.md § External |
| API Access | Any Teable API not covered by CLI commands | | cli-reference.md § search-api |
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 ( | Manually read/analyze/write each row |
| Aggregation (count, sum, avg) | Data Query: | Fetch all records + compute in code |
| Read records for subsequent writes | Data Query: | |
| Cross-table analytics / JOINs | Data Query: | Multiple |
| One-time chart from queried data | Visualization: HTML code block | App Builder |
| Live dashboard / interactive UI | App Builder: | HTML code block |
| Bulk data loading (>50 rows) | Import: | |
| 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 ( | — |
| Aggregate across linked records | Fields: Rollup ( | — |
| Modify/update an existing app | App Builder: | Creating a duplicate app |
| Export records as file | Data Query: | |
# 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"]]'search-apicall-apicall-apisql-queryrecord getgridkanbangallerycalendarformpluginfield create --ai-config '{"type":"...","sourceFieldName":"..."}' + trigger-ai-fillget-doc --topic field.aiapp ai-enableapp ai-docsapp login-configimport-airtableimportrecord get--projection--projection '["fldXXX","fldYYY"]'record getrecord createupdatedbTableNamedbFieldNametable getfield getLIMIT 100""null{Budget} - {Actual}--base-id--table-idtable getfield getrecord getsql-querytrigger-ai-fillapp createapp update--typecast--typecastteable config showteable auth statustable getfield getapi-reference/{category}.{subtopic}.mdfield.simple.mdfield.basic.mdfield.select.mdfield.link.mdfield.lookup.mdfield.rollup.mdfield.formula.mdfield.formatting.mdfield.show-as.mdfield.colors.mdview.filter.mdview.sort.mdview.group.mdview.column.mdview.statistic.mdrecord.value-format.mdautomation.trigger.mdautomation.api.mdautomation.send-email.mdintegration.slack.mdscrape.datasets.mdget-docfield.aiapp.ai