Guide · Agent skill
How to use the lark-base agent skill for Lark Base
Updated · written with AI from the project's own documentation and checked against our catalogue data
The lark-base skill is a set of instructions that teaches an AI agent how to work with Feishu/Lark Base (多维表格), the spreadsheet-like database made of tables, fields, records, views, forms, dashboards and workflows. This guide explains what the skill lets the agent do, how to install it, how to ask for work in plain language, and what to check before letting it write to live data. You do not need prior experience with agent skills to follow it.
Quick start
- 1Install lark-cli. Install the lark-cli command-line tool, since the skill requires it. Then run lark-cli base --help to confirm it works.
- 2Place the skill folder. Unzip the lark-base ZIP into ~/.claude/skills/ for personal use, or into the project's .claude/skills/ folder. You can also upload the ZIP under Settings → Capabilities → Skills in the Claude apps.
- 3Confirm your access. Make sure your Feishu/Lark account can open the target Base. The skill acts as you by default with --as user.
- 4Give the agent a link or title. Paste the Base URL or type the Base title. The agent resolves it to a Base token with +url-resolve or +title-resolve.
- 5Ask for one task. Describe the table, the filter or change, and the expected result in one request, for example listing open tasks or adding a field.
- 6Review writes before they land. For any change that edits, deletes or copies data, read the agent's plan and confirm the target. Many updates apply asynchronously, so check the result afterwards.
What the lark-base skill makes the agent do
Without the skill, an agent does not know the right order of steps for Lark Base. With it, the agent can locate a Base from a link or a title, read and filter records, create or update fields (including formulas and lookups), and manage blocks such as tables, dashboards and workflows. These operations are routed through the lark-cli command-line tool.
The skill keeps its detailed command syntax, filter formats and field JSON rules in reference files. The agent reads the relevant file only when a task needs it.
- Find a Base from a Feishu/Lark URL or a title keyword
- List tables and fields, then read or search records
- Create, update and delete records and fields
- Work with views, forms, dashboards and workflows
- Browse public Base templates in the template center
Install the lark-base skill (ZIP download)
Download the ZIP of the lark-base skill from this page and unzip it. The skill folder must contain SKILL.md at its top level, next to the reference files.
For a personal setup, place the unzipped folder in ~/.claude/skills/. For a single project, place it in that project's .claude/skills/ folder. Alternatively, upload the ZIP in the Claude apps under Settings → Capabilities → Skills.
The skill also depends on the lark-cli command-line tool, which the skill declares as a required binary. Install lark-cli separately, then run lark-cli base --help to confirm the Base commands are available.
- Personal: ~/.claude/skills/lark-base/
- Project: .claude/skills/lark-base/ inside your project
- Claude apps: Settings → Capabilities → Skills, then upload the ZIP
lark-cli base --helpSet up identity and access before the first request
The skill prefers acting as your Feishu/Lark user (--as user). Use a bot identity (--as bot) only when you explicitly ask for application identity. Every operation needs authorisation: you need access to the target Base, or the bot must have it.
If a permission check fails, the skill follows the lark-shared guidance to repair the scope or resource access under the same identity. It switches identity only if you explicitly agree.
- Default identity: user (--as user)
- Bot identity only on explicit request (--as bot)
- Without access to the Base, the agent cannot read or change it
Trigger the skill with natural requests
You do not need to name commands. Mention Base, 多维表格 or bitable, or paste a link that contains /base/ or /app/, and the agent should pick up the skill. Give the Base name or link, the table, and what you want done.
Good requests name the object and the outcome. The agent first resolves the target: from a URL it uses +url-resolve, and from a title keyword it uses +title-resolve. If several Bases match, it asks you to choose.
- Summarise the open tasks in the Projects table of the Team Ops Base, using this link: (paste URL)
- Find the Base called Q3 Budget and list its tables
- Add a number field named Hours to the Timesheet table
- Update the status of records 1 and 2 in the Tasks table to Done
- Copy the Customer Base before I change anything
Read, filter and export records
For a few known record IDs, the agent uses +record-get. For keyword search it uses +record-search and must have at least one search field. For everything else it uses +record-list, with --filter-json for conditions and --sort-json for ordering.
For larger tables, the agent can write results to an NDJSON file (one record per line) and process them locally with jq or Python. The skill suggests filtering on the server when conditions can be expressed there, and handling patterns such as regular expressions on your computer.
- Use --field-id to read only the columns you need
- Check has_more before treating a result as complete
- Default and maximum limit per read is 2000 records
- Use --offset to page through results
lark-cli base +record-list \
--base-token <base_token> --table-id <table_id> \
--filter-json '{"logic":"and","conditions":[["Status","intersects",["Doing"]]]}' \
--field-id Name --field-id Status --field-id Score --limit 20 \
--format ndjson --output ./records-preview.ndjson --as userCreate and update fields and records
To add several fields to an existing table, the agent sends an array of field objects in a single +field-create --json call. Single-field changes use +field-update or +field-delete. Formulas and lookups follow their own reference files for the field JSON.
Records are written as objects that map a field name or field_id to a value. Most table updates are applied asynchronously, so a read immediately after a successful write may not show the latest state. The skill recommends treating the write response as the result, and reading back once after a batch of changes when you need to confirm the final state.
- Field names can change, but field_id is the stable column identifier
- Select fields must use options that already exist in the field
- Batch related changes, then verify once
What people use it for
- Pull the open items from a project tracker Base into a summary for a team meeting
- Add a formula or lookup field to a table without writing the field JSON by hand
- Export filtered records to NDJSON and analyse them with jq or a short Python script
- Find and browse Base templates in the template center when starting a new Base
- Check whether advanced permissions are enabled on a Base before editing roles
Frequently asked questions
Is the lark-base skill free to use?
The source identifies the project as MIT licensed, which allows use under its licence terms. Using Feishu/Lark itself still requires an account with access to the Base you want to change.
What do I need to run the lark-base skill?
You need the lark-cli command-line tool, a Feishu/Lark account authorised for the target Base or a bot identity, and an agent environment that loads skills. The skill also refers to lark-drive, lark-shared, lark-apps and lark-doc for files, authorisation, BaseApp and documents.
How do I install the lark-base skill for Claude?
Download the ZIP from this page and unzip it into ~/.claude/skills/ for personal use or into a project's .claude/skills/ folder. You can also upload the ZIP in the Claude apps under Settings → Capabilities → Skills.
Does the skill run scripts and use the network?
Yes. The skill declares that it runs scripts and uses the network, because it calls lark-cli to reach Feishu/Lark. Review the commands the agent proposes, especially writes and deletes, before approving them.
Why does the agent say a Base change did not show up yet?
Most Table updates take effect asynchronously, so a read right after a successful write may show old data. Wait and read again, or rely on the write response as the result.
Can the skill copy a BaseApp, and how is it different from lark-base?
The skill says BaseApp copy is not supported by the current CLI, and it stops rather than trying workarounds. +base-copy only copies a Base, not a BaseApp, and BaseApp work is routed to lark-apps.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
Choose this skill if your team keeps operational data in Feishu/Lark Base and wants an agent to query, analyse or update it through lark-cli. Pick something else if you have no Feishu/Lark account, cannot authorise access to the Base, or need every change reviewed before it reaches live data, since the skill performs writes, deletes and copies directly.
Download the skill