lark-base

Operate Feishu Bitable tables, records, views, dashboards, workflows, and BaseApps via lark-cli.

8|2|Updated Apr 29, 2026
One-click install
npx skills add https://github.com/luojiaaoo/xpeech --skill lark-base-luojiaaoo
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: lark-base
Source: https://github.com/luojiaaoo/xpeech/tree/main/xpeech/agent/skills/buildin/lark-skills/lark-base
Command: npx skills add https://github.com/luojiaaoo/xpeech --skill lark-base-luojiaaoo

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires lark-cli, and includes references (resource) components.

What problem does it solve? Managing Feishu Bitable (Base) data through the web UI is slow for bulk or structured work. This Skill lets an AI agent create tables, fields, records, views, forms, dashboards, workflows, and BaseApps directly through lark-cli commands, with strict protocols that prevent malformed writes. ## Core Features & Use Cases - Full Base lifecycle: Resolve Base URLs or titles, create and copy Bases, manage the Block resource tree (tables, folders, dashboards, workflows, docx), and configure advanced permissions and roles. - Record and field operations: Batch create/update records with a strict CellValue protocol, run filtered queries and aggregations via the data-query DSL, and manage views, forms, and attachments. - Dashboards and BaseApps: Build chart, statistic, and text components with validated data_config, read computed chart results, and orchestrate Workspace/BaseApp pages and list components. - Use Case: Ask the agent to build a sales dashboard in an existing Base: it resolves the Base, reads table fields, creates a statistics card, a monthly trend line chart, and a category pie chart, then arranges the layout. ## Quick Start Use the lark-base skill to list all tables and their fields in the Base at this Feishu URL, then create a summary dashboard with a record-count statistic card.

Frequently Asked Questions about lark-base

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create records in a Feishu Bitable table from the command line?▼

Use lark-cli base +record-batch-create with a JSON payload mapping field names to CellValues. First run +field-list to confirm each field's type and style, then format values per the CellValue protocol, such as arrays for select fields and objects with id for user or link fields.

How do I query and aggregate Bitable records with filters?▼

Use lark-cli base +data-query with a DSL JSON body defining datasource, dimensions, measures, filters, sort, and pagination. Field names must exactly match the table schema from +field-list, and date filters use keywords like ExactDate with millisecond timestamps.

Can I build a Feishu Base dashboard with charts programmatically?▼

Yes. Create a dashboard with +dashboard-create, then add components serially with +dashboard-block-create using a data_config that specifies table_name, series or count_all, group_by, and filter. Finish with +dashboard-arrange for automatic layout.

What is the difference between a Base, a BaseApp, and a Workspace in Feishu?▼

A Base is the data container holding tables, dashboards, and workflows. A Workspace organizes Bases and BaseApps, while a BaseApp (AppMode) presents Base data through pages and components. BaseApp commands use app_token and page_id, never the lark-apps module.

Why does my Bitable write fail or show stale data after an update?▼

Many table updates apply asynchronously, so reading immediately after a write may show old state. Treat the write response as the result and verify only after completing all changes. Failures often come from mismatched field names, readonly fields like formula or lookup, or missing advanced permission prerequisites.

What operations are not supported for Feishu BaseApps via lark-cli?▼

The CLI cannot copy BaseApps, duplicate pages, set page icons, delete app components, rearrange app layouts, change an existing app's theme, or move resources out of a Workspace. These requests should be declined rather than simulated with dashboard or drive commands.