Full CRUD for multi-dimensional tables, records, fields, views, dashboards, workflows, roles, forms, and advanced permissions — the most feature-rich module in the CLI with 60 shortcut commands.
The Feishu CLI Bitable module is the most feature-rich domain with 60 shortcut commands covering every aspect of Lark’s multi-dimensional tables (Base). All commands use the base service prefix and operate through the Base v3 API.
Key capabilities include:
All commands support both user and bot identity. High-risk operations (delete) support --dry-run for safe previewing.
Most Bitable commands share these common reference flags. The --base-token is required for nearly every operation and can be extracted from the Bitable URL.
| Parameter | Description |
|---|---|
--base-token | Base token (required for almost all commands) |
--table-id | Table ID or name |
--field-id | Field ID or name |
--view-id | View ID or name |
--record-id | Record ID |
Create, list, retrieve, update, and delete tables within a Base. Table creation supports inline field and view definitions.
| Shortcut | Description | Key Parameters |
|---|---|---|
+table-create | Create a table and optional fields/views | --name, --fields, --view |
+table-list | List all tables | --base-token |
+table-get | Get table details | --table-id |
+table-update | Update table name | --table-id, --name |
+table-delete | Delete a table | --table-id |
Create, read, update, and delete records. The +record-upsert command intelligently creates or updates based on whether a --record-id is provided. Supports attachment uploads directly to attachment fields.
| Shortcut | Description | Key Parameters |
|---|---|---|
+record-list | List records in a table | --view-id, --offset, --limit |
+record-get | Get a specific record | --record-id |
+record-upsert | Create or update a record | --json, --record-id (optional) |
+record-upload-attachment | Upload file to attachment field | --record-id, --field-id, --file, --name |
+record-delete | Delete a record | --record-id |
+record-history-list | View record edit history | --record-id |
Create, list, get, update, and delete fields. Field definitions use a JSON object with field_name, type (numeric code), and optional property for select options, formulas, and lookups.
| Type Code | Field Type | Type Code | Field Type |
|---|---|---|---|
| 1 | Text | 11 | Person |
| 2 | Number | 13 | Phone |
| 3 | SingleSelect | 15 | Link (URL) |
| 4 | MultiSelect | 17 | Lookup |
| 5 | DateTime | 18 | Formula |
| 7 | Checkbox | 22 | Location |
| Shortcut | Description |
|---|---|
+field-create | Create a field with type and property definition |
+field-list | List all fields in a table |
+field-get | Get field details |
+field-update | Update field properties |
+field-delete | Delete a field |
+field-search-options | Search select/multi-select options |
Create, list, rename, and delete views. Configure view-level filters, groups, sorts, timebars, and card layouts. Each configuration aspect has dedicated get and set commands.
| Shortcut | Description |
|---|---|
+view-create | Create a new view |
+view-list | List all views |
+view-get | Get view details |
+view-delete | Delete a view |
+view-rename | Rename a view |
+view-get-filter / +view-set-filter | Get or set view filter configuration |
+view-get-group / +view-set-group | Get or set view grouping |
+view-get-sort / +view-set-sort | Get or set view sort order |
+view-get-timebar / +view-set-timebar | Get or set Gantt/timeline timebar config |
+view-get-card / +view-set-card | Get or set card layout configuration |
Query and analyze Base data using the LiteQuery Protocol — a JSON DSL that supports dimensions, measures, aggregation, filtering, sorting, and grouping. The DSL must contain at least one of dimensions or measures.
| DSL Field | Description |
|---|---|
dimensions | Array of field names to group by |
measures | Array of {"field_name", "aggregator"} objects (SUM, COUNT, AVG, MAX, MIN) |
filter | Filter object with conjunction (and/or) and conditions array |
sort | Array of {"field_name", "desc": true/false} objects |
Scope: base:table:read
Create and manage dashboards with chart blocks, metric blocks, and other visualizations. Dashboards provide a visual overview of Base data.
| Shortcut | Description |
|---|---|
+dashboard-create | Create a dashboard |
+dashboard-list | List all dashboards |
+dashboard-get | Get dashboard details |
+dashboard-update | Update dashboard name or theme |
+dashboard-delete | Delete a dashboard |
+dashboard-block-create | Add a block to a dashboard |
+dashboard-block-list | List blocks in a dashboard |
+dashboard-block-get | Get block details |
+dashboard-block-update | Update a dashboard block |
+dashboard-block-delete | Delete a dashboard block |
Create and manage automated workflows within a Base. Workflows can trigger actions based on record changes, time conditions, or manual triggers. Workflow definitions are passed as JSON and can be loaded from files using the @path/to/file.json syntax for large definitions.
| Shortcut | Description |
|---|---|
+workflow-create | Create a new workflow |
+workflow-list | List all workflows |
+workflow-get | Get workflow details |
+workflow-update | Update workflow definition |
+workflow-enable | Enable a workflow |
+workflow-disable | Disable a workflow |
Create forms linked to Base tables and manage form questions. Forms provide a user-friendly input interface for collecting records into a table.
| Shortcut | Description |
|---|---|
+form-create | Create a form for a table |
+form-list | List all forms |
+form-get | Get form details |
+form-update | Update form name or description |
+form-delete | Delete a form |
+form-questions-create | Add a question to a form |
+form-questions-update | Update a form question |
+form-questions-delete | Delete a form question |
Create and manage custom roles for fine-grained access control. Enable or disable advanced permissions at the Base level. When advanced permissions are enabled, access is controlled through roles rather than simple sharing.
| Shortcut | Description |
|---|---|
+role-create | Create a custom role |
+role-list | List all roles |
+role-get | Get role details |
+role-update | Update a role |
+role-delete | Delete a role |
+advperm-enable | Enable advanced permissions |
+advperm-disable | Disable advanced permissions |
Get information about a Base, create a new Base, or copy an existing one.
| Shortcut | Description |
|---|---|
+base-get | Get Base metadata |
+base-create | Create a new Base |
+base-copy | Copy an existing Base |
+record-upload-attachment.lark-cli wiki spaces get_node.--dry-run to preview the API call before execution.fldXXX) or field names directly as --field-id.@path/to/file.json syntax instead of inline JSON strings.--i-have-read-guide.| Category | Shortcut | Risk | Description |
|---|---|---|---|
| Tables | +table-create | Write | Create a table and optional fields/views |
+table-list | Read | List all tables | |
+table-get | Read | Get table details | |
+table-update | Write | Update table name | |
+table-delete | Write | Delete a table | |
| Records | +record-list | Read | List records in a table |
+record-get | Read | Get a specific record | |
+record-upsert | Write | Create or update a record | |
+record-upload-attachment | Write | Upload file to attachment field | |
+record-delete | Write | Delete a record | |
+record-history-list | Read | View record edit history | |
| Fields | +field-create | Write | Create a field |
+field-list | Read | List all fields | |
+field-get | Read | Get field details | |
+field-update | Write | Update field properties | |
+field-delete | Write | Delete a field | |
+field-search-options | Read | Search select options | |
| Views | +view-create | Write | Create a new view |
+view-list | Read | List all views | |
+view-get | Read | Get view details | |
+view-delete | Write | Delete a view | |
+view-rename | Write | Rename a view | |
+view-get-filter | Read | Get view filter | |
+view-set-filter | Write | Set view filter | |
+view-get-group | Read | Get view grouping | |
+view-set-group | Write | Set view grouping | |
+view-get-sort | Read | Get view sort order | |
+view-set-sort | Write | Set view sort order | |
+view-get-timebar | Read | Get timebar config | |
+view-set-timebar | Write | Set timebar config | |
+view-get-card | Read | Get card layout | |
+view-set-card | Write | Set card layout | |
| Query | +data-query | Read | Query with JSON DSL |
| Dashboards | +dashboard-create | Write | Create a dashboard |
+dashboard-list | Read | List dashboards | |
+dashboard-get | Read | Get dashboard details | |
+dashboard-update | Write | Update a dashboard | |
+dashboard-delete | Write | Delete a dashboard | |
+dashboard-block-create | Write | Add a block | |
+dashboard-block-list | Read | List blocks | |
+dashboard-block-get | Read | Get block details | |
+dashboard-block-update | Write | Update a block | |
+dashboard-block-delete | Write | Delete a block | |
| Workflows | +workflow-create | Write | Create a workflow |
+workflow-list | Read | List workflows | |
+workflow-get | Read | Get workflow details | |
+workflow-update | Write | Update a workflow | |
+workflow-enable | Write | Enable a workflow | |
+workflow-disable | Write | Disable a workflow | |
| Forms | +form-create | Write | Create a form |
+form-list | Read | List forms | |
+form-get | Read | Get form details | |
+form-update | Write | Update a form | |
+form-delete | Write | Delete a form | |
+form-questions-create | Write | Add a question | |
+form-questions-update | Write | Update a question | |
+form-questions-delete | Write | Delete a question | |
| Base | +base-get | Read | Get Base metadata |
+base-create | Write | Create a new Base | |
+base-copy | Write | Copy an existing Base | |
| Roles & Perms | +role-create | Write | Create a custom role |
+role-list | Read | List roles | |
+role-get | Read | Get role details | |
+role-update | Write | Update a role | |
+role-delete | Write | Delete a role | |
+advperm-enable | Write | Enable advanced permissions | |
+advperm-disable | Write | Disable advanced permissions |