| name | kintone-agent |
| description | Build, query, and automate Cybozu kintone apps โ Japan's leading no-code business platform |
| author | hanabi-jpn |
| version | 1.0.0 |
| tags | ["kintone","cybozu","no-code","business-apps","japan","database","workflow","automation"] |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ K I N T O N E A G E N T โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ ๐ง Apps โ Records โ Workflow โ Bulk โ โ
โ โ Cybozu No-Code Platform CLI โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
kintone cybozu no-code business-apps workflow-engine

Turn kintone into a programmable powerhouse -- query records, build apps, and automate workflows from the command line at the speed of thought.
Overview
kintone Agent bridges the gap between Cybozu kintone's intuitive no-code interface and the power-user demands of developers, system integrators, and IT administrators who need programmatic control over their business applications. kintone is the dominant no-code/low-code platform in Japan, deployed across enterprises of every scale -- from three-person startups tracking inventory to multinational corporations running complex approval workflows across dozens of departments. This skill gives you direct, scriptable access to the full kintone REST API, enabling operations that would take hundreds of clicks through the GUI to be executed in a single command.
The agent supports the complete spectrum of kintone operations: creating and modifying apps and their field schemas, performing CRUD on records with complex query syntax, managing custom views and layouts, triggering and monitoring process management (workflow) transitions, handling file attachments, administering users and spaces, and even scaffolding plugin development. Bulk operations are first-class citizens -- import thousands of records from CSV, export filtered datasets for analysis, or update fields across millions of records using kintone's native bulk API endpoints. The agent understands kintone's unique query language and translates natural expressions into valid queries, making ad-hoc data exploration seamless.
Architecture:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ kintone Agent CLI โ
โ โ
โ โโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ Apps โ โ Records โ โ Workflow โ โ Bulk โ โ
โ โ Manager โ โ Engine โ โ Engine โ โ Processor โ โ
โ โโโโโโฌโโโโโ โโโโโโฌโโโโโ โโโโโโฌโโโโโโ โโโโโโโโฌโโโโโโโโ โ
โ โ โ โ โ โ
โ โโโโโโผโโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโ โ
โ โ Query Builder & Validator โ โ
โ โ (kintone query syntax โ natural language) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Auth Layer (API Token / Password / OAuth) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ HTTPS
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ {subdomain}.cybozu.com โ
โ kintone REST API โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโ
System Prompt Instructions
You are the kintone Agent, a specialist in Cybozu kintone platform automation. Follow these rules precisely:
- Authenticate using API tokens (
X-Cybozu-API-Token header) by default. Support password authentication (X-Cybozu-Authorization, Base64-encoded) and OAuth as alternatives.
- All API requests target
https://{KINTONE_DOMAIN}/k/v1/. Validate the domain format before making requests; it must end with .cybozu.com or .kintone.com.
- Construct kintone query strings using proper syntax: field codes in backtick-like notation, operators (
=, !=, >, <, >=, <=, in, not in, like, not like), and combinators (and, or). Always validate query syntax before execution.
- Handle kintone's unique field types correctly:
SINGLE_LINE_TEXT, MULTI_LINE_TEXT, NUMBER, CALC, RICH_TEXT, CHECK_BOX, RADIO_BUTTON, DROP_DOWN, MULTI_SELECT, DATE, TIME, DATETIME, FILE, LINK, USER_SELECT, ORGANIZATION_SELECT, GROUP_SELECT, SUBTABLE, RECORD_NUMBER, CREATOR, MODIFIER, CREATED_TIME, UPDATED_TIME, STATUS, STATUS_ASSIGNEE, CATEGORY.
- For record creation and updates, validate field values against their field type. Reject invalid data before making API calls (e.g., non-numeric values for NUMBER fields).
- Bulk operations must use the
/records.json endpoint with arrays. Maximum 100 records per POST/PUT request, 500 record IDs per DELETE request. Chunk automatically for larger datasets.
- When exporting data, default to CSV format. Support JSON, TSV, and Excel formats. Include header row with field labels (not field codes) by default.
- App deployment requires two steps: first update the preview (
/preview/app.json), then deploy (/preview/app/deploy.json). Always confirm deployment status before reporting success.
- File operations use the
/file.json endpoint. Upload returns a fileKey that must be used within the same transaction to attach to a record.
- Process management (workflow) operations must respect the current status. Only valid transitions from the current status are permitted. Use
/record/status.json for transitions.
- Space and thread operations target
/space.json and /space/thread.json. Guest spaces have separate endpoints under /guest/{spaceId}/.
- When creating or modifying apps, always preview changes first and require explicit confirmation before deploying to production.
- Respect kintone's field code naming convention: alphanumeric characters and underscores only, starting with a letter. Auto-generate valid codes from Japanese field labels using romanization.
- Handle kintone's revision system: include
revision in updates to prevent concurrent modification conflicts. On conflict (HTTP 409), report the current revision and prompt for resolution.
- Support lookup fields by resolving related app references. When a field is a lookup, fetch and display the source record's display field.
- Rate limit awareness: kintone has a concurrent connection limit per domain (typically 10). Queue requests and process with appropriate concurrency.
- For plugin development scaffolding, generate the
manifest.json, config.json, and directory structure per Cybozu's plugin specification.
- Always display record numbers with the app identifier prefix for clarity (e.g.,
APP-42 #1234).
Environment Variables
| Variable | Required | Default | Description |
|---|
KINTONE_DOMAIN | Yes | - | Your kintone subdomain (e.g., mycompany.cybozu.com) |
KINTONE_API_TOKEN | Yes | - | API token generated from app settings (can be comma-separated for multi-app access) |
KINTONE_USERNAME | No | - | Login username for password-based authentication (alternative to API token) |
KINTONE_PASSWORD | No | - | Login password (used with KINTONE_USERNAME, Base64-encoded in transit) |
KINTONE_GUEST_SPACE_ID | No | - | Guest space ID for accessing guest space apps |
KINTONE_OUTPUT_FORMAT | No | table | Default output format: table, json, csv |
KINTONE_CONCURRENCY | No | 5 | Maximum concurrent API connections (max 10 per domain) |
Commands
kt apps
List all accessible kintone apps.
$ kt apps
App ID Name Creator Records Updated
โโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโ โโโโโโโ โโโโโโโโโโโโ
1 ้กงๅฎข็ฎก็ ็ณๅ ้ไน 12,847 2026-03-01
5 ๆกไปถ็ฎก็ ไฝ่ค ่ฑๅญ 3,291 2026-02-28
12 ๆฅๅ ฑใขใใช ็ฐไธญ ๅคช้ 45,102 2026-03-01
18 ็ต่ฒป็ณ่ซ ๅฑฑ็ฐ ๆฌก้ 8,553 2026-02-27
24 ๅจๅบซ็ฎก็ ้ดๆจ ไธ้ 1,205 2026-03-01
31 ๆก็จ็ฎก็ ้ซๆฉ ็พๅฒ 423 2026-02-25
Total: 6 apps accessible with current token
kt records
Fetch records from an app with optional query filtering.
$ kt records --app 1 --query "ไผ็คพๅ like \"Tech\" and ในใใผใฟใน in (\"ๅ่ซไธญ\", \"ๆๆกๆธ\")" --limit 5
โโโโโ โโโโโโโโโโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโ
Showing 5 of 23 matching records (App: ้กงๅฎข็ฎก็)
kt create
Create a new record in an app.
$ kt create --app 1 --data '{"ไผ็คพๅ": "New Startup Inc.", "ๆ
ๅฝ่
": "็ณๅ ้ไน", "ในใใผใฟใน": "ๅๅๆฅ่งฆ", "้ป่ฉฑ็ชๅท": "03-1234-5678"}'
Record created successfully
App: ้กงๅฎข็ฎก็ (App ID: 1)
Record:
Revision: 1
Fields set: ไผ็คพๅ, ๆ
ๅฝ่
, ในใใผใฟใน, ้ป่ฉฑ็ชๅท
Timestamp: 2026-03-01 15:22:10 JST
kt update
Update an existing record.
$ kt update --app 1 --id 1042 --data '{"ในใใผใฟใน": "ๅๆณจ", "ๅฃฒไธ่ฆ่พผ": 5800000}'
Record updated successfully
App: ้กงๅฎข็ฎก็ (App ID: 1)
Record:
Revision: 14 โ 15
Changed: ในใใผใฟใน (ๅ่ซไธญ โ ๅๆณจ), ๅฃฒไธ่ฆ่พผ (ยฅ5,400,000 โ ยฅ5,800,000)
Timestamp: 2026-03-01 15:25:33 JST
kt search
Search across multiple apps with natural language.
$ kt search "overdue tasks assigned to Ishihara" --apps 5,12
App: ๆกไปถ็ฎก็ (ID: 5) โ 3 matches
App: ๆฅๅ ฑใขใใช (ID: 12) โ 0 matches
Total: 3 overdue records across 2 apps
kt bulk
Perform bulk operations on records.
$ kt bulk --app 1 --action update --query "ในใใผใฟใน = \"ๅๅๆฅ่งฆ\" and ๆ็ต้ฃ็ตก < \"2025-12-01\"" \
--set '{"ในใใผใฟใน": "ไผ็ "}'
Bulk update preview:
App: ้กงๅฎข็ฎก็ (App ID: 1)
Matching: 847 records
Action: Set ในใใผใฟใน โ "ไผ็ "
Proceed? [y/N]: y
Processing: [โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ] 847/847
Bulk update complete
Updated: 847 records
Failed: 0 records
Duration: 12.3 seconds (9 API calls)
kt fields
Inspect the field schema of an app.
$ kt fields --app 1
Field Code Label Type Required Unique
โโโโโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโ โโโโโโ
ไผ็คพๅ ไผ็คพๅ SINGLE_LINE_TEXT Yes Yes
ๆ
ๅฝ่
ๆ
ๅฝ่
USER_SELECT Yes No
ในใใผใฟใน ในใใผใฟใน DROP_DOWN Yes No
้ป่ฉฑ็ชๅท ้ป่ฉฑ็ชๅท SINGLE_LINE_TEXT No No
ๅฃฒไธ่ฆ่พผ ๅฃฒไธ่ฆ่พผ NUMBER No No
ๆ็ต้ฃ็ตก ๆ็ต้ฃ็ตก DATE No No
ๆทปไปใใกใคใซ ๆทปไปใใกใคใซ FILE No No
ๅ่ ๅ่ MULTI_LINE_TEXT No No
Total: 8 fields (+3 system fields: Record number, Creator, Updated)
kt export
Export records to a file.
$ kt export --app 1 --format csv --query "ในใใผใฟใน != \"ไผ็ \"" --output ./customers_active.csv
Exporting records from ้กงๅฎข็ฎก็ (App ID: 1)
Query: ในใใผใฟใน != "ไผ็ "
Format: CSV (UTF-8 with BOM for Excel compatibility)
Records: 12,000 matching
Downloading: [โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ] 12,000/12,000
Export complete
File: ./customers_active.csv
Size: 4.2 MB
Records: 12,000
Columns: 8 fields + Record number
kt import
Import records from a file.
$ kt import --app 1 --file ./new_customers.csv --mode insert
Import preview:
App: ้กงๅฎข็ฎก็ (App ID: 1)
File: ./new_customers.csv
Mode: Insert (new records only)
Records: 250
Validation: All 250 records pass schema validation
Proceed? [y/N]: y
Importing: [โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ] 250/250
Import complete
Inserted: 250 records (#12849 -
Skipped: 0
Errors: 0
kt workflow
Manage process management (workflow) transitions.
$ kt workflow --app 5 --id 301 --action "ๆฟ่ช"
Workflow transition executed
App: ๆกไปถ็ฎก็ (App ID: 5)
Record:
Action: ๆฟ่ช
Previous: ใฌใใฅใผๅพ
ใก โ Assignee: ็ณๅ ้ไน
Current: ๆฟ่ชๆธใฟ โ Assignee: ไฝ่ค ่ฑๅญ
Revision: 22 โ 23
Timestamp: 2026-03-01 16:05:44 JST
Workflow
Developer kintone Agent kintone API
โโโโโโโโโ โโโโโโโโโโโโโ โโโโโโโโโโโ
โ โ โ
โ kt records --app 1 โ โ
โ --query "status=active" โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโบโ โ
โ โ Parse & validate query โ
โ โ Translate field names โ
โ โ โ
โ โ GET /k/v1/records.json โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโบโ
โ โ {records: [...], total} โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ โ
โ โ More pages? Auto-fetch โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโบโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ โ
โ Formatted table output โ Merge & format results โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ
โ โ โ
โ kt bulk --action update โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโบโ โ
โ โ Count matching records โ
โ "847 records. Proceed?" โ Show preview โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ
โ y โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโบโ Chunk into 100-record โ
โ โ batches, execute in โ
โ โ parallel (concurrency=5) โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโบโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ "847 updated. 0 errors." โ Aggregate results โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ
Error Handling
| Error | Cause | Solution |
|---|
520 CB_ILLEGAL_TOKEN: API token is invalid | Token does not have permission for the target app or is malformed | Regenerate the API token in the app's settings. Ensure the token has the required permissions (view, add, edit, delete). |
409 CB_CONFLICT: Record revision mismatch | Another user modified the record between your read and update | Fetch the latest revision with kt records --app ID --id RECORD_ID, review changes, then retry with the current revision number. |
400 CB_VA01: Missing required field | A required field was not included in the create/update payload | Use kt fields --app ID to check required fields. Include all required fields in your --data payload. |
400 CB_VA01: Invalid field value | Value does not match field type (e.g., text in a NUMBER field) | Verify the field type with kt fields --app ID. Ensure numbers are unquoted, dates use YYYY-MM-DD, and dropdown values match exactly. |
403 CB_NO02: No permission to proceed | User or token lacks permission for the requested operation | Check app permissions in kintone admin. API tokens are scoped per-app; you may need a separate token. |
414 Request-URI Too Long | Query string exceeds URL length limit (common with in operator) | Break large in (...) clauses into multiple queries. Use bulk endpoint for large ID lists. |
500 CB_IJ01: Internal server error | kintone server issue, often during heavy load or complex calculations | Retry after 30 seconds. If persistent, check Cybozu status page. Simplify CALC field dependencies if triggered by specific records. |
FAQ
1. What is the difference between API token and password authentication?
API tokens are scoped to individual apps and are the recommended method. Password auth grants access to all apps the user can access but requires username/password storage. Use API tokens for production; password auth for ad-hoc admin tasks.
2. Can I access multiple apps with one command?
Yes. Provide comma-separated API tokens in KINTONE_API_TOKEN for multi-app access, or use password auth for cross-app operations.
3. How does the query syntax work?
kintone uses its own query language: field_code operator "value". Example: ในใใผใฟใน in ("ๅ่ซไธญ", "ๆๆกๆธ") and ๅฃฒไธ่ฆ่พผ > 1000000 order by ๆ็ต้ฃ็ตก desc.
4. What is the maximum number of records per bulk operation?
100 records per POST/PUT call, 500 IDs per DELETE call. The agent automatically chunks larger operations into batches.
5. Can I create new apps from the CLI?
Yes. Use kt apps --create --name "New App" --fields ./schema.json to create an app with a predefined field schema. The agent handles preview and deployment.
6. How do I handle subtable (table) fields?
Subtables are arrays of objects. In --data, provide them as: {"ใใผใใซ": [{"value": {"ๅๅ": {"value": "Widget"}, "ๆฐ้": {"value": "10"}}}]}.
7. Does the agent support guest spaces?
Yes. Set KINTONE_GUEST_SPACE_ID or use --guest-space ID per command. API endpoints are adjusted automatically.
8. Can I rollback a bulk update?
kintone does not support native rollback. The agent creates a backup export before bulk operations (when --backup flag is used) so you can restore via kt import.
9. How do I handle file attachments?
Upload: kt records --app 1 --id 42 --upload-file ./doc.pdf --field ๆทปไปใใกใคใซ. Download: kt records --app 1 --id 42 --download-field ๆทปไปใใกใคใซ.
10. What are kintone's API rate limits?
kintone limits concurrent connections (typically 10 per domain) rather than requests-per-second. The agent manages connection pooling automatically.
11. Can I scaffold a kintone plugin project?
Yes. kt plugin init --name "My Plugin" generates the full directory structure with manifest.json, config pages, and build scripts per Cybozu's specification.
12. How do I export data for BI tools?
Use kt export --app ID --format csv for Tableau/Power BI, or --format json for custom pipelines. Add --scheduled for daily automated exports.
Data Storage
The kintone Agent maintains local state for efficient operations:
~/.kintone-agent/
โโโ config.yaml # Domain, auth method, default app settings
โโโ cache/
โ โโโ apps.json # App list cache (TTL: 15 minutes)
โ โโโ schemas/
โ โ โโโ app_1.json # Field schema cache per app (TTL: 1 hour)
โ โ โโโ app_5.json
โ โโโ query_history.json # Recent queries for autocomplete
โโโ backups/
โ โโโ bulk_20260301_1.csv # Pre-bulk-operation backup snapshots
โโโ logs/
โ โโโ api-2026-03.log # Monthly API log (tokens redacted)
โ โโโ bulk_operations.log # Bulk operation audit trail
โโโ plugins/
โโโ templates/ # Plugin scaffolding templates
Schema caches dramatically speed up validation and field resolution. Backups are created before destructive bulk operations and retained for 30 days. All authentication credentials are stored in the system keychain, never in plaintext files.
Comparison
| Feature | kintone Agent | Airtable CLI | Notion CLI | Google Sheets CLI | Salesforce CLI |
|---|
| Japanese field names | Native UTF-8 | Limited | Unicode | Unicode | Limited |
| No-code app builder | Full API | No | No | No | No |
| Workflow/process mgmt | Built-in | No | No | No | Apex required |
| Bulk operations | 100/call native | 10/call | Limited | Batch API | Bulk API 2.0 |
| File attachments | Per-record | Per-record | Blocks | Drive link | Content |
| Subtables | Native | Linked records | Databases | No | Related lists |
| Plugin ecosystem | Cybozu marketplace | Extensions | Integrations | Add-ons | AppExchange |
| Guest space access | Native | Shared views | Shared pages | Shared sheets | Communities |
| On-premise option | Yes (cybozu.com) | No | No | No | Private Cloud |
| Query language | kintone QL | Formula | Filter API | Sheets formula | SOQL |