docyrus-cli-app
Original:🇺🇸 English
Translated
Use the Docyrus CLI (`docyrus`) to interact with the Docyrus platform from the terminal. Use when the user asks to authenticate, list apps, query/manage data records (`ds`), manage dev app data source schema objects (`studio`), send API requests, switch environments/tenants/accounts, or discover OpenAPI specs via the `docyrus` command-line tool. Triggers on tasks involving docyrus CLI commands, terminal-based Docyrus operations, `docyrus ds list`, `docyrus studio`, `docyrus discover`, `docyrus auth`, `docyrus env`, or shell-based Docyrus workflows.
8installs
Sourcedocyrus/agent-skills
Added on
NPX Install
npx skill4agent add docyrus/agent-skills docyrus-cli-appTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Docyrus CLI
Guide for using the CLI to interact with the Docyrus platform from the terminal.
docyrusCommand Overview
| Command | Description |
|---|---|
| Authenticate via OAuth2 device flow |
| Show current user |
| List available tenants |
| Switch active tenant |
| Manage environments |
| List tenant apps |
| Get data source metadata |
| Query records with filters, sorting, pagination |
| Create a record |
| Update a record |
| Delete a record |
| CRUD for dev app data sources, fields, and enums |
| Send arbitrary API requests |
| Download tenant OpenAPI spec |
| List API namespaces from OpenAPI spec |
| List endpoints matching a path prefix |
| Return full endpoint object by path/method |
| Return full entity schema by name |
| Search endpoint paths and entity names |
See references/cli-manifest.md for complete command reference with all flags and arguments.
Common Workflows
First-Time Setup
- Authenticate:
docyrus auth login - Select tenant:
docyrus auth tenants use --tenantId <id> - Verify:
docyrus auth who
Discover API & Entities
Download the tenant OpenAPI spec and explore available endpoints and entities:
bash
# Download/refresh tenant OpenAPI spec
docyrus discover api --json
# List all API namespaces (e.g. /v1/users, /v1/teams)
docyrus discover namespaces --json
# List endpoints under a path prefix (with or without /v1)
docyrus discover path /v1/users --json
docyrus discover path /teams --json
# Get full endpoint details (defaults to GET; use [METHOD] prefix for others)
docyrus discover endpoint /v1/users/me --json
docyrus discover endpoint [PUT]/v1/users/me/photo --json
# Get full entity/schema definition
docyrus discover entity UserEntity --json
# Search endpoints and entities by comma-separated terms
docyrus discover search users,UserEntity --jsonDiscover Data Sources
- List apps:
docyrus apps list - Get metadata:
docyrus ds get <appSlug> <dataSourceSlug>
Query Records (ds list
)
ds listBasic listing:
bash
docyrus ds list crm contacts --columns "name, email, phone" --limit 20With filters (JSON object):
bash
docyrus ds list crm contacts \
--columns "name, email" \
--filters '{"rules":[{"field":"status","operator":"=","value":"active"}]}'With relation expansion:
bash
docyrus ds list crm contacts \
--columns "name, ...related_account(account_name, account_phone)"Date shortcut filter:
bash
docyrus ds list crm tasks --filters '{"rules":[{"field":"created_on","operator":"this_month"}]}'See references/list-query-examples.md for comprehensive filter, sort, pagination, and combined query examples.
CRUD Operations
Create:
bash
docyrus ds create crm contacts --data '{"name":"Jane Doe","email":"jane@example.com"}'Update:
bash
docyrus ds update crm contacts <recordId> --data '{"phone":"+1234567890"}'Delete:
bash
docyrus ds delete crm contacts <recordId>Studio Schema CRUD (studio
)
studioUse for developer-facing data source schema operations under (data sources, fields, enums).
studio/v1/dev/apps/:app_id/data-sourcesExamples:
bash
# Data sources
docyrus studio list-data-sources --appSlug crm --expand fields --json
docyrus studio get-data-source --appSlug crm --dataSourceSlug contacts --json
docyrus studio create-data-source --appSlug crm --title "Contacts" --name "contacts" --slug "contacts" --json
docyrus studio update-data-source --appId <appId> --dataSourceId <dataSourceId> --data '{"title":"Contacts v2"}' --json
docyrus studio delete-data-source --appId <appId> --dataSourceSlug contacts --json
docyrus studio bulk-create-data-sources --appId <appId> --from-file ./data-sources.json --json
# Fields
docyrus studio list-fields --appSlug crm --dataSourceSlug contacts --json
docyrus studio get-field --appSlug crm --dataSourceSlug contacts --fieldSlug email --json
docyrus studio create-field --appId <appId> --dataSourceId <dataSourceId> --name "Email" --slug "email" --type "text" --json
docyrus studio update-field --appId <appId> --dataSourceId <dataSourceId> --fieldId <fieldId> --data '{"name":"Primary Email"}' --json
docyrus studio delete-field --appId <appId> --dataSourceId <dataSourceId> --fieldSlug email --json
docyrus studio create-fields-batch --appId <appId> --dataSourceId <dataSourceId> --data '[{"name":"Status","slug":"status","type":"text"}]' --json
docyrus studio update-fields-batch --appId <appId> --dataSourceId <dataSourceId> --from-file ./fields-update.json --json
docyrus studio delete-fields-batch --appId <appId> --dataSourceId <dataSourceId> --data '["field-1","field-2"]' --json
# Enums
docyrus studio list-enums --appId <appId> --dataSourceId <dataSourceId> --fieldId <fieldId> --json
docyrus studio create-enums --appId <appId> --dataSourceId <dataSourceId> --fieldId <fieldId> --data '[{"name":"Open","sortOrder":1}]' --json
docyrus studio update-enums --appId <appId> --dataSourceId <dataSourceId> --fieldId <fieldId> --from-file ./enums-update.json --json
docyrus studio delete-enums --appId <appId> --dataSourceId <dataSourceId> --fieldId <fieldId> --data '["enum-1","enum-2"]' --jsonBatch & File Input (ds create
/ ds update
)
ds createds updateBoth commands support with or files.
--from-file.json.csv- Object payload -> single item endpoints (or
/items)/items/:recordId - Array payload -> bulk endpoints ()
/items/bulk - Batch size limit: 50 items
- Batch update requires in every item and must not include positional
idrecordId
Examples:
bash
# Bulk create from inline JSON array
docyrus ds create crm contacts --data '[{"name":"A"},{"name":"B"}]' --json
# Bulk update from inline JSON array (id required in each item)
docyrus ds update crm contacts --data '[{"id":"1","phone":"+111"},{"id":"2","phone":"+222"}]' --json
# Bulk create from CSV file
docyrus ds create crm contacts --from-file ./contacts-create.csv --json
# Single update from JSON file
docyrus ds update crm contacts <recordId> --from-file ./contact-update.json --jsonArbitrary API Calls
bash
docyrus curl /v1/users/me
docyrus curl /v1/dev/apps -X GET --format json
docyrus curl /v1/some/endpoint -X POST -d '{"key":"value"}'Key Rules
- Arguments use and
appSlug(not IDs) — rundataSourceSluganddocyrus apps listto discover slugsdocyrus ds get - /
ds createacceptds update(JSON) or--data(--from-file/.json), but not both at once.csv - If payload is an array, CLI uses bulk endpoints with max 50 items
- For bulk update, each item must include and no positional
idshould be provided<recordId> - accepts a JSON string following the filter group structure:
--filters{"combinator":"and","rules":[...]} - Filter operators include: ,
=,!=,>,>=,<,<=,like,not like,in,not in,empty,not empty,between,today,this_month,this_quarter,last_30_daysactive_user - Filter on related fields using syntax
rel_<relation_slug>/<field_slug> - uses comma-separated field slugs with support for relation expansion
--columns, spread(), aliasing..., and functions:@ - controls output:
--format(default table),toon,json,yaml,mdjsonl - wraps response in full envelope with metadata
--verbose - Studio selectors are exclusive pairs: provide exactly one of ,
--appId|--appSlug, and--dataSourceId|--dataSourceSlug(as required by command)--fieldId|--fieldSlug - Studio write commands accept (JSON string) or
--data(JSON only), and merge with flags where flags override overlapping keys--from-file - Studio batch commands auto-wrap root arrays to required DTO keys: ,
dataSources,fields,fieldIds,enumsenumIds
References
- CLI Manifest — Complete command reference with all flags, arguments, and options.
- List Query Examples — Practical examples covering columns, filters, sorting, pagination, and combined queries.
ds list