@byteplus/ark-cli-darwin-x64 0.0.0-stage → 1.0.46-prerelease.dc921200a42d

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/LICENSE +201 -0
  2. package/bin/arkcli-darwin-amd64 +4 -0
  3. package/manifest.json +43 -0
  4. package/package.json +20 -4
  5. package/skills/arkcli-agent/SKILL.md +152 -0
  6. package/skills/arkcli-agent/references/agent.md +398 -0
  7. package/skills/arkcli-agent/references/byok.md +65 -0
  8. package/skills/arkcli-agent/references/context-management.md +42 -0
  9. package/skills/arkcli-agent/references/debug-export.md +26 -0
  10. package/skills/arkcli-agent/references/evals.md +178 -0
  11. package/skills/arkcli-agent/references/events-chat.md +148 -0
  12. package/skills/arkcli-agent/references/interfaces-gaps.md +52 -0
  13. package/skills/arkcli-agent/references/mcp-vault.md +111 -0
  14. package/skills/arkcli-agent/references/model-config.md +46 -0
  15. package/skills/arkcli-agent/references/self-hosted.md +47 -0
  16. package/skills/arkcli-agent/references/session-files.md +149 -0
  17. package/skills/arkcli-agent/references/session-upgrade.md +61 -0
  18. package/skills/arkcli-agent/references/skills.md +87 -0
  19. package/skills/arkcli-agent/references/todo-write.md +31 -0
  20. package/skills/arkcli-api-explorer/SKILL.md +188 -0
  21. package/skills/arkcli-api-explorer/references/arkcli-api.md +180 -0
  22. package/skills/arkcli-api-explorer/references/evals.md +176 -0
  23. package/skills/arkcli-auth/SKILL.md +184 -0
  24. package/skills/arkcli-auth/references/arkcli-auth-login.md +92 -0
  25. package/skills/arkcli-auth/references/arkcli-auth-status.md +109 -0
  26. package/skills/arkcli-auth/references/arkcli-auth-whoami.md +56 -0
  27. package/skills/arkcli-auth/references/auth-modes.md +78 -0
  28. package/skills/arkcli-auth/references/evals.md +82 -0
  29. package/skills/arkcli-auth/references/identity-resolution.md +33 -0
  30. package/skills/arkcli-auth/references/realname-gate.md +69 -0
  31. package/skills/arkcli-billing/SKILL.md +122 -0
  32. package/skills/arkcli-billing/references/arkcli-billing-list.md +259 -0
  33. package/skills/arkcli-billing/references/evals.md +107 -0
  34. package/skills/arkcli-chat/SKILL.md +114 -0
  35. package/skills/arkcli-chat/references/arkcli-chat.md +283 -0
  36. package/skills/arkcli-chat/references/caching-thinking.md +124 -0
  37. package/skills/arkcli-chat/references/chat-meta.md +77 -0
  38. package/skills/arkcli-chat/references/evals.md +34 -0
  39. package/skills/arkcli-chat/references/stream-events.md +124 -0
  40. package/skills/arkcli-chat/references/text-format.md +167 -0
  41. package/skills/arkcli-chat/references/tools.md +119 -0
  42. package/skills/arkcli-config/SKILL.md +197 -0
  43. package/skills/arkcli-config/references/arkcli-config-init.md +89 -0
  44. package/skills/arkcli-config/references/arkcli-config-profile.md +106 -0
  45. package/skills/arkcli-config/references/evals.md +154 -0
  46. package/skills/arkcli-connect/SKILL.md +196 -0
  47. package/skills/arkcli-connect/references/arkcli-connect.md +165 -0
  48. package/skills/arkcli-connect/references/evals.md +231 -0
  49. package/skills/arkcli-custommodel/SKILL.md +167 -0
  50. package/skills/arkcli-custommodel/references/arkcli-custommodel-available-quantizations.md +29 -0
  51. package/skills/arkcli-custommodel/references/arkcli-custommodel-delete.md +37 -0
  52. package/skills/arkcli-custommodel/references/arkcli-custommodel-get.md +45 -0
  53. package/skills/arkcli-custommodel/references/arkcli-custommodel-list.md +65 -0
  54. package/skills/arkcli-custommodel/references/arkcli-custommodel-quantize.md +59 -0
  55. package/skills/arkcli-custommodel/references/arkcli-custommodel-update.md +47 -0
  56. package/skills/arkcli-custommodel/references/arkcli-custommodel-upload.md +64 -0
  57. package/skills/arkcli-custommodel/references/evals.md +59 -0
  58. package/skills/arkcli-datasets/SKILL.md +39 -0
  59. package/skills/arkcli-datasets/references/commands.md +83 -0
  60. package/skills/arkcli-datasets/references/evals.md +31 -0
  61. package/skills/arkcli-deploy/SKILL.md +89 -0
  62. package/skills/arkcli-deploy/references/arkcli-deploy.md +141 -0
  63. package/skills/arkcli-deploy/references/evals.md +80 -0
  64. package/skills/arkcli-docs/SKILL.md +453 -0
  65. package/skills/arkcli-docs/references/commands.md +283 -0
  66. package/skills/arkcli-docs/references/evals.md +201 -0
  67. package/skills/arkcli-docs/references/failure-modes.md +85 -0
  68. package/skills/arkcli-doctor/CONTRIBUTING.md +54 -0
  69. package/skills/arkcli-doctor/SKILL.md +367 -0
  70. package/skills/arkcli-doctor/references/error-codes.md +162 -0
  71. package/skills/arkcli-doctor/references/evals.md +385 -0
  72. package/skills/arkcli-doctor/references/scope-account.md +94 -0
  73. package/skills/arkcli-doctor/references/scope-cli.md +88 -0
  74. package/skills/arkcli-doctor/references/scope-infer-endpoint.md +132 -0
  75. package/skills/arkcli-doctor/references/scope-metrics.md +157 -0
  76. package/skills/arkcli-doctor/references/scope-model.md +130 -0
  77. package/skills/arkcli-doctor/references/verify-origin.md +102 -0
  78. package/skills/arkcli-gen/SKILL.md +188 -0
  79. package/skills/arkcli-gen/references/arkcli-gen.md +230 -0
  80. package/skills/arkcli-gen/references/gen-meta.md +154 -0
  81. package/skills/arkcli-gen/references/image-stream.md +105 -0
  82. package/skills/arkcli-helper/SKILL.md +200 -0
  83. package/skills/arkcli-helper/references/arkcli-helper.md +298 -0
  84. package/skills/arkcli-helper/references/evals.md +334 -0
  85. package/skills/arkcli-iam/SKILL.md +46 -0
  86. package/skills/arkcli-iam/references/arkcli-iam-userid.md +54 -0
  87. package/skills/arkcli-iam/references/evals.md +24 -0
  88. package/skills/arkcli-infer-endpoint/SKILL.md +82 -0
  89. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-capability-get.md +50 -0
  90. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-create.md +121 -0
  91. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-delete.md +71 -0
  92. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-get.md +43 -0
  93. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-list.md +82 -0
  94. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-start.md +36 -0
  95. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-stop.md +36 -0
  96. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-update.md +78 -0
  97. package/skills/arkcli-infer-endpoint/references/evals.md +24 -0
  98. package/skills/arkcli-models/SKILL.md +305 -0
  99. package/skills/arkcli-models/references/arkcli-models-activate.md +103 -0
  100. package/skills/arkcli-models/references/arkcli-models-get.md +94 -0
  101. package/skills/arkcli-models/references/arkcli-models-list.md +71 -0
  102. package/skills/arkcli-models/references/arkcli-models-scenario-table.md +75 -0
  103. package/skills/arkcli-models/references/arkcli-models-search.md +170 -0
  104. package/skills/arkcli-models/references/evals.md +57 -0
  105. package/skills/arkcli-onboard/SKILL.md +169 -0
  106. package/skills/arkcli-onboard/references/evals.md +156 -0
  107. package/skills/arkcli-plans/SKILL.md +135 -0
  108. package/skills/arkcli-plans/references/arkcli-plans-buy.md +125 -0
  109. package/skills/arkcli-plans/references/arkcli-plans-get.md +84 -0
  110. package/skills/arkcli-plans/references/arkcli-plans-model-apply.md +58 -0
  111. package/skills/arkcli-plans/references/arkcli-plans-model-list.md +114 -0
  112. package/skills/arkcli-plans/references/arkcli-plans-renew.md +125 -0
  113. package/skills/arkcli-plans/references/arkcli-plans-team-rotate-apikey.md +61 -0
  114. package/skills/arkcli-plans/references/arkcli-plans-team-seat-assign.md +147 -0
  115. package/skills/arkcli-plans/references/arkcli-plans-team-seat-list.md +100 -0
  116. package/skills/arkcli-plans/references/evals.md +178 -0
  117. package/skills/arkcli-pricing/SKILL.md +120 -0
  118. package/skills/arkcli-pricing/references/arkcli-pricing-models.md +258 -0
  119. package/skills/arkcli-pricing/references/arkcli-pricing-plans.md +139 -0
  120. package/skills/arkcli-profile/SKILL.md +168 -0
  121. package/skills/arkcli-profile/references/arkcli-profile-create.md +92 -0
  122. package/skills/arkcli-profile/references/arkcli-profile-keys.md +135 -0
  123. package/skills/arkcli-profile/references/arkcli-profile-set-default.md +81 -0
  124. package/skills/arkcli-profile/references/evals.md +93 -0
  125. package/skills/arkcli-resources/SKILL.md +112 -0
  126. package/skills/arkcli-resources/references/arkcli-resources-list.md +105 -0
  127. package/skills/arkcli-shared/SKILL.md +209 -0
  128. package/skills/arkcli-shared/references/global-flags.md +77 -0
  129. package/skills/arkcli-shared/references/profile-defaults.md +35 -0
  130. package/skills/arkcli-shared/references/troubleshooting.md +49 -0
  131. package/skills/arkcli-shared/references/update.md +117 -0
  132. package/skills/arkcli-train-finetune/SKILL.md +109 -0
  133. package/skills/arkcli-train-finetune/references/create.md +274 -0
  134. package/skills/arkcli-train-finetune/references/download.md +50 -0
  135. package/skills/arkcli-train-finetune/references/evals.md +59 -0
  136. package/skills/arkcli-train-finetune/references/export-deploy.md +179 -0
  137. package/skills/arkcli-train-finetune/references/list.md +79 -0
  138. package/skills/arkcli-train-finetune/references/manage.md +140 -0
  139. package/skills/arkcli-understand/SKILL.md +105 -0
  140. package/skills/arkcli-understand/references/arkcli-understand.md +249 -0
  141. package/skills/arkcli-understand/references/evals.md +109 -0
  142. package/skills/arkcli-understand/references/sub-skills.md +137 -0
  143. package/skills/arkcli-usage/SKILL.md +123 -0
  144. package/skills/arkcli-usage/references/arkcli-usage-balance.md +196 -0
  145. package/skills/arkcli-usage/references/arkcli-usage-plan.md +153 -0
  146. package/skills/arkcli-usage/references/arkcli-usage-seats.md +199 -0
  147. package/skills/arkcli-usage/references/arkcli-usage-stats.md +160 -0
  148. package/README.md +0 -3
@@ -0,0 +1,305 @@
1
+ ---
2
+ name: arkcli-models
3
+ version: 1.0.1
4
+ description: "arkcli model query capability: activate, list, search, and get details for BytePlus ModelArk public foundation models. Prefer product commands `arkcli models ...` over direct Raw API calls. Note: use arkcli-custommodel to query/manage custom models uploaded or fine-tuned (`cm-xxx`) under the account; this skill covers only the public foundation model catalog. Voice/TTS/ASR/podcast/voice-design/real-time voice interaction models support only marketplace search and selection guidance; do not route them to +chat/+gen/+deploy/usage/pricing/onboard/auth apikey."
5
+ metadata:
6
+ requires:
7
+ bins: ["arkcli"]
8
+ cliHelp: "arkcli models --help"
9
+ ---
10
+
11
+ # arkcli models
12
+
13
+ **CRITICAL — Before starting, you MUST use the Read tool to read [`../arkcli-shared/SKILL.md`](../arkcli-shared/SKILL.md), which contains authentication gates, configuration troubleshooting, and command selection order.**
14
+ **CRITICAL — Before executing any `models` command, you MUST use the Read tool to read its corresponding reference document. Do not invoke commands blindly.**
15
+
16
+ ## Usage principles
17
+
18
+ - Prefer `arkcli models ...` for model-related requests.
19
+ - Although these are standard CLI commands, their implementation entry point still comes from `shortcuts/models/`.
20
+ - Fall back to [`../arkcli-api-explorer/SKILL.md`](../arkcli-api-explorer/SKILL.md) only when product commands cannot cover the request.
21
+ - This skill is not the default fallback entry point. Enter it only when the user explicitly asks for model queries, model asset inventory, model details, or model selection for an upstream command.
22
+ - **Voice model boundary**: Voice models such as TTS / ASR / podcast / voice design / real-time voice interaction support only marketplace search and selection guidance in arkcli; there are currently no supported voice models. Finding one with `models search` does not mean it can be used with `+deploy`, `usage`, or `pricing`. Unless the user separately asks for official documentation, do not proactively provide non-arkcli integration steps or links for the console / OpenAPI / SDK.
23
+
24
+ ## Applicable scenarios
25
+
26
+ - The user wants to search, filter, or compare BytePlus ModelArk models.
27
+ - The user wants to view model details, versions, context, modalities, or lifecycle states.
28
+ - Public foundation-model inventory; use arkcli-custommodel for uploaded/fine-tuned account assets and arkcli-plans for Coding Plan model lists.
29
+ - The user wants to activate model / open model service / enable base | context-cache for a model.
30
+ - Upstream `+chat` / `+gen` / `+deploy` needs to determine an available model name first.
31
+ - The user asks whether voice models exist, which voice models are available, or what TTS/ASR models are called in the marketplace: answer only the marketplace search facts and the boundary that arkcli currently does not support downstream scenario capabilities.
32
+
33
+ ## Anti-trigger signals
34
+
35
+ - The user only wants to chat directly, generate images/videos, or deploy an Endpoint: route to the corresponding skill first and return here only if the model name is missing.
36
+ - The user explicitly requests a raw Action, OpenAPI listing, or low-level params: route to `arkcli-api-explorer`.
37
+ - The user is troubleshooting authentication, profile, region, or base URL: route to `arkcli-auth` or `arkcli-config`.
38
+ - Do not treat `arkcli models` as a default entry point; do not query models first for non-model questions.
39
+
40
+ ## Business positioning
41
+
42
+ - This skill is a dependency of other business workflows, not a destination skill.
43
+ - It normally serves three types of upstream goals:
44
+ - Find the correct model for `+chat` / `+gen`.
45
+ - Confirm a deployable model for `+deploy`.
46
+ - Confirm model details and versions for business troubleshooting.
47
+ - Unless the user is explicitly performing a model query, return to the original task after finding the model.
48
+ - **Exception**: A voice model query is itself the destination. After finding marketplace voice models such as podcast, voice design, or real-time voice interaction, stop after explaining "discoverable but arkcli does not support invocation/deployment/usage/pricing". Do not continue to `+deploy` / `usage` / `pricing` / `onboard`, and do not proactively add non-arkcli integration paths.
49
+
50
+ ## Quick decisions
51
+
52
+ ### Price lookup for a known model
53
+
54
+ Read [`references/arkcli-models-get.md`](references/arkcli-models-get.md), then use `arkcli models get <model-id> --format json` and read `pricing.prices`. Match `service_type`, `label`, `dimensions`, `usage_unit`, `unit_code`, and optional `usage_period`; never select the first row or read the removed `pricing.charge_items` / `pricing.multi_charge_items`. `price: null` means unavailable; `0` is a zero rate for that condition. An empty array does not mean free or inactive. Activation and entitlements remain in `pricing.state`, `pricing.inference_free_usage`, and related fields. `--version` selects detail metadata; prices are queried by the returned foundation-model `name`, without a version-specific guarantee.
55
+
56
+ ### Step 0 (hard gate): read the scenario table before selecting a command
57
+
58
+ **This is the first action for any "find a model by intent" request, before choosing `search` / `list` / `resources`. You MUST use Read to open [`references/arkcli-models-scenario-table.md`](references/arkcli-models-scenario-table.md), determine whether the intent matches a scenario label, and only then decide which command to run.** This manually curated `scenario label → recommended model` table is the **highest-priority signal for intent ranking and overrides all naming heuristics / modality / capability filtering below**.
59
+
60
+ **Counterexamples that are easily intercepted (must read): the following intents may "sound like hard metrics", but are actually scenario labels. Check the scenario table first instead of instinctively dropping to the `--capability` / `--modality` fallback path:**
61
+
62
+ | User says | ❌ Do not use directly | ✅ Scenario label matched in Step 0 → recommended |
63
+ |---|---|---|
64
+ | "Complex reasoning / multi-step / strongest-quality model" | `search --capability thinking` | Complex reasoning / Agent tasks → `dola-seed-2-1-turbo` |
65
+ | "Which model should I use for image generation?" | Stop after `resources list --modality image` | Image generation → `dola-seedream-5-0-pro` |
66
+ | "Video / role-play / field extraction" | `search --modality ...` | Video generation / role-play / information extraction → consult the table |
67
+
68
+ After a match, follow the JOIN protocol in the table: take the recommended model family stem → run `arkcli models search <family stem>` to verify facts against the left table → rank the recommendation first + add 2–3 alternatives. **Versions/full IDs in the table are only starting points; use the real-time search response for matches** (actual testing shows that table IDs can become stale).
69
+
70
+ **Skip the scenario table and fall back to `search` + naming heuristics below only in these two cases:**
71
+ - The user provides an **explicit numeric/capability hard constraint** ("200K context", "must support functioncall"), and the scenario table has no corresponding label.
72
+ - The user **names a third-party / open-source / historical model** (qwen, glm, Seedream 4.5, and others); do not forcibly replace it.
73
+
74
+ > Distinguish carefully: "complex reasoning" is a scenario label (table → pro) and **does not mean** the user supplied the `thinking` hard metric. Only the latter uses the fallback path.
75
+
76
+ **Layer boundary (important; do not mix layers): the scenario table is the "model marketplace selection layer". It answers "which model should be selected in the marketplace for this intent", and its data source is always `models search` (catalog).** It provides catalog-recommended model names (for example, image generation → `dola-seedream-5-0-pro`).
77
+
78
+ - "Whether the current profile can invoke it and the exact callable ID" belongs to the **downstream availability layer**, handled by `resources list` → `models get` → `+gen` / `+chat` (arkcli-gen is implemented), and is **outside this table's responsibility**.
79
+ - Therefore, for a **pure selection question** ("find/choose a model") → use only `models search`; **do not** query `resources list` and turn "selection" into "available-resource lookup". Descend to resources list to resolve the current profile's actual ID only when the user **truly wants to generate / invoke**.
80
+
81
+ This applies only to the **intent-ranking path**. Enumeration / inventory / statistics is another path: use `list` without scenario-table reranking.
82
+
83
+ ### Command selection
84
+
85
+ - The user knows only a fuzzy model name / wants to find by intent ("strongest video model", "200K-context LLM", "model supporting thinking"): use `search`, which provides fuzzy keyword matching + structured modality/context/capability filtering.
86
+ - To enumerate by modality / pagination parameters, or perform exact-name matching: use `list`.
87
+ - Public catalog inventory uses `models list --page-all`; uploaded/fine-tuned account models use `custommodel list/get`; Coding Plan availability uses `plans model-list --plan <plan>`. Clarify ambiguous "my models"; do not substitute the public catalog for account assets.
88
+ - A specific model ID is already known: use `get`.
89
+ - The purpose is only to find a model for `+chat` / `+gen` / `+deploy`: return to the original task immediately after finding it.
90
+ - The user **proactively** wants to activate a foundation model ("activate dola-seed-2-1-turbo first", "preview the activation request first"): use `activate`, first reading [`references/arkcli-models-activate.md`](references/arkcli-models-activate.md). If the user only wants to deploy / create an endpoint, let deploy / infer-create trigger implicit activation and do not activate it separately first.
91
+
92
+ ## Agent quick execution order
93
+
94
+ 1. Confirm whether the user is logged in; if uncertain, first inspect `arkcli auth status`.
95
+ 2. When the user's description includes intent (modality / numeric capacity / capability), use `arkcli models search` + corresponding flags (`--modality`, `--min-context-window`, `--capability`, and others).
96
+ 3. When the user knows only a fuzzy name, still use `arkcli models search <keyword>` (returns all matches by default, without pagination).
97
+ 4. To fully enumerate by modality or calculate pagination statistics, use `arkcli models list`.
98
+ 5. For recently created custom/account models, use arkcli-custommodel and its actual output schema. Only public catalog date inventory uses `models list --page-all`.
99
+ 6. When a specific model ID is known and details are needed, use `arkcli models get`.
100
+ 7. When the user explicitly wants model activation (proactive activation, not immediate deployment), use `arkcli models activate <name> [--sub-services ...]`; add `--yes` in CI and use `--dry-run` only for local request preview, never as server validation.
101
+ 8. After finding / activating the model, return to the upstream workflow that initiated it: `+chat` / `+gen` / `+deploy`.
102
+
103
+ ## Typical business workflows
104
+
105
+ ### 0. Complete the full model ID for data-plane commands (required prerequisite)
106
+
107
+ Preserve exact Endpoint/Custom Model IDs and valid Coding Plan invocation names returned by the current resource catalog. Build `<name>-<primary_version>` only when a versioned foundation-model ID is required. A Plan output name or routing alias must not receive a guessed date suffix. Follow the owning skill execution context; catalog discovery does not prove account access.
108
+
109
+ The **`primary_version` format is not fixed**. **Do not use a regex to decide whether it "looks like a full ID".** Formats actually observed (about half of ~152 models do not use six digits):
110
+
111
+ | Format | Example full ID | Common family |
112
+ |------|--------------|----------|
113
+ | `YYMMDD` (six-digit date) | `dola-seed-2-1-turbo-260628`, `seed-2-0-lite-260428` | dola family |
114
+ | Qualifier prefix + date | `seed-2-0-code-preview-260328` | Preview / variant |
115
+
116
+ **Two acquisition paths, in decreasing order of efficiency:**
117
+
118
+ - **Path A (efficient; reuse existing results)**: After running `arkcli models search <keyword>` or `arkcli models list`, each returned JSON item includes `primary_version`. The Agent directly reads it and concatenates `<name>-<primary_version>` without an additional call. **`search` also returns structured fields such as `context_window` / `input_modalities` / `output_modalities` / `capabilities` (from ArkModels enrich). Downstream logic can determine suitability directly and avoid an extra `get` call.**
119
+ - **Path B (standalone query)**: When only a bare name is known, `arkcli models get <name> --transform 'primary_version'` returns the version number directly.
120
+
121
+ **Note**: `--transform` output includes JSON double quotes (for example, `"260328"`). Before shell concatenation, remove them with `tr -d '"'`:
122
+
123
+ ```bash
124
+ VER=$(arkcli models get dola-seed-2-1-turbo --transform 'primary_version' | tr -d '"')
125
+ # VER=260628 -> full ID: dola-seed-2-1-turbo-260628
126
+ # VER="" (model with an empty string) -> use the family name directly: dola-seed-2-1-turbo
127
+ if [ -n "$VER" ]; then
128
+ MODEL="dola-seed-2-1-turbo-$VER"
129
+ else
130
+ MODEL="dola-seed-2-1-turbo"
131
+ fi
132
+ arkcli +chat --model "$MODEL" "hello."
133
+ ```
134
+
135
+ ### 1. Find a model for trial use
136
+
137
+ `models search [--modality / --capability ...]` → `+chat` / `+gen`
138
+
139
+ ### 2. Find a model for production integration
140
+
141
+ `models search [--min-context-window / --capability ...]` → `+deploy`
142
+
143
+ ### 3. Filter by hard metrics
144
+
145
+ ```bash
146
+ # Find the newest and strongest text model with 200K+ context and thinking capability
147
+ arkcli models search --modality text --min-context-window 200000 --capability thinking --strict-filter
148
+
149
+ # Find video generation models
150
+ arkcli models search --modality video --strict-filter
151
+
152
+ # Find multimodal LLMs
153
+ arkcli models search --multimodal --output-modality text --strict-filter
154
+ ```
155
+
156
+ Adding `--strict-filter` is strongly recommended: the default behavior is "retain missing data" (to avoid false negatives); strict returns only models that satisfy the conditions with 100% certainty.
157
+
158
+ ## Evidence and token units
159
+
160
+ For parameter support, unlisted-parameter behavior, search/get conflicts, or NotFound, read [the get evidence rules](references/arkcli-models-get.md#parameter-evidence-and-conflicting-queries). Missing fields are not negative evidence; preserve conflicting sources separately. Public catalogs cannot inventory account-owned custom assets.
161
+
162
+ - Public catalog metadata does not prove deployment, console availability, valid credentials, balance, or permissions. Resolve Endpoint bindings first; a Custom Model's base lineage must not replace its actual `cm-*` binding.
163
+ - A missing/null capability is unknown, not support. Read the exact `api_support` item; text output does not disprove image input.
164
+ - Keep the exact `context_window` integer for filtering. Display 131072 as 128K, 262144 as 256K, and 1048576 as 1M tokens, with the exact number alongside. Use binary units; use the exact integer when no clean abbreviation applies.
165
+ - Exact IDs/versions use `get` directly; fuzzy discovery uses `search`. Do not guess version suffixes or repeatedly activate models to repair an unresolved ID.
166
+
167
+ ## Common fallbacks
168
+
169
+ - Authentication failure: route to [`../arkcli-auth/SKILL.md`](../arkcli-auth/SKILL.md).
170
+ - Profile / region looks wrong: route to [`../arkcli-config/SKILL.md`](../arkcli-config/SKILL.md).
171
+ - If the business goal is only to find a model name for `+chat`, `+gen`, or `+deploy`, prioritize "find the model, then return to the original task"; do not stop at models itself.
172
+
173
+ ## Command overview
174
+
175
+ | Command | Description |
176
+ |------|------|
177
+ | `arkcli models search [keyword] [filters]` | **Agent's first choice**: full recall + ArkModels enrichment + structured modality/context/capability filtering + reranking; returned fields include `context_window` / `input_modalities` / `output_modalities` / `capabilities` |
178
+ | `arkcli models list` | Full enumeration by modality, pagination statistics, and model asset inventory; lightweight, without enrichment |
179
+ | `arkcli models get <id> [version]` | Complete details for one model (aggregates multiple APIs; heaviest and most complete) |
180
+
181
+ ## Tier naming heuristics (fallback only when the scenario table has no match)
182
+
183
+ **Priority mnemonic: scenario-table match (★★★) > naming heuristics (★★, this section) > update_time.** First use the scenario table in "Quick decisions Step 0". Use this section's naming heuristics only when the scenario table does not cover the intent or the user names a third-party/open-source/historical model.
184
+
185
+ After `search` and filters, multiple candidates often remain. Tier signals in model names can help the Agent perform the final ranking step. **This is a heuristic, not a hard rule**: hard metrics (context_window / capabilities / modality) always take precedence over naming.
186
+
187
+ ### Generation (major version): highest priority
188
+
189
+ ```
190
+ 2-x > 1-8 > 1-6 > 1-5 > ...
191
+ ```
192
+
193
+ A generation jump usually matters **more than tier**. Example: `dola-seed-2-1-turbo` is stronger than `seed-2-0-pro` for most tasks because the base-model generation gap is larger than the size-tier gap.
194
+
195
+ ### Tier (size tier within the same generation)
196
+
197
+ ```
198
+ pro ≥ no suffix > lite > flash > mini > nano
199
+ ```
200
+
201
+ - `pro`: flagship, largest size / strongest capability
202
+ - No suffix (such as `dola-seed-2-1-turbo`): mainstream tier, normally ≈ pro
203
+ - `lite`: cost/performance balance
204
+ - `flash`: speed optimized
205
+ - `mini` / `nano`: low latency, high concurrency, lowest cost
206
+
207
+ ### Specialty suffixes (not compared as tiers; select by use)
208
+
209
+ ```
210
+ -code → programming optimized (seed-2-0-code-preview, and others)
211
+ -thinking → enhanced thinking capability (longer reasoning)
212
+ -vision → enhanced vision understanding
213
+ -character → role-play / long narration
214
+ -translation → translation-specific
215
+ ```
216
+
217
+ A specialty model is **normally stronger than the same-generation general pro in its domain**, but does not transfer across tasks.
218
+
219
+ ### Notes on comparing `primary_version`
220
+
221
+ - **Within the same family**: newer dates are better (`260215 > 251228 > 251015`).
222
+ - **Across different families**: values **cannot be compared numerically**. `glm-5-2-260617` and `seed-2-0-pro-260328` both use six digits, but their numeric order says nothing about which is stronger.
223
+ - To compare "which is newer", always use the `update_time` field (ISO 8601, lexicographically comparable); do not parse `primary_version`.
224
+
225
+ ### Decision mnemonic
226
+
227
+ ```
228
+ filter (hard metrics; must be satisfied)
229
+ ↓
230
+ generation (2-x > 1-x; cross-generation gap usually > same-generation tier gap)
231
+ ↓
232
+ tier (pro > no suffix > lite > flash > mini > nano)
233
+ ↓
234
+ update_time (when generation and tier match, newer first)
235
+ ```
236
+
237
+ ### Sorting is already implemented in `search`
238
+
239
+ The Agent does not need to perform client-side reordering. `arkcli models search` uses two-stage sorting: "group by family first, then sort within each group":
240
+
241
+ ```
242
+ 1. bucket — keyword visibility (name match > description match > fallback > hidden)
243
+ ↓
244
+ 2. across families: sort by the family's "representative score" (max ctx among family members → max update_time → family name)
245
+ ↓ → all members of the same family remain together
246
+ 3. within a family: gen DESC → tier DESC → ctx DESC → update_time DESC → name ASC
247
+ ```
248
+
249
+ **Key design points**:
250
+ - **Family grouping precedes detailed sorting**. The dola-seed family (max ctx=260628) as a whole ranks before all families with ctx=null. This avoids non-transitive oddities such as "1-6-flash in the same family ranking above 1-8".
251
+ - **Within the same family, generation precedes ctx**. A new version floats above an older version with existing ctx data even if ArkModels metadata has not yet been completed (`context_window=null`). Example: `glm-5-2` (gen=502, ctx=null) ranks before `glm-4-7` (gen=407, ctx=251222).
252
+ - **Generation precedes tier**. Within the same family, `dola-seed-2-1-turbo` (gen=201, tier=50) ranks before `seed-2-0-lite` (gen=200, tier=80), because cross-generation gaps are normally greater than same-generation tier gaps.
253
+ - **Do not compare generation/tier across families**. pro/lite/mini are naming conventions within a family and are not comparable across families. Family order is determined by the representative score (max ctx + max time).
254
+
255
+ Legacy models tagged with any of `experience hiding` / `inference hiding` / `Square Hide` automatically sink to the bottom (they are not filtered from list/search but always appear last).
256
+
257
+ > **Note**: `experience hiding` / `inference hiding` / `Square Hide` are legacy hidden-page tags in the BytePlus ModelArk platform's `customized_tags`. They are unrelated to this CLI command; arkcli reads them only for sorting.
258
+
259
+ ## Model lifecycle: Shutdown / Retiring / Published
260
+
261
+ ArkModels assigns each model a `lifecycle_status` with three values, handled differently by Search:
262
+
263
+ | status | Meaning | Default search behavior |
264
+ |--------|------|----------------|
265
+ | `Published` | Normal service | ✓ Display |
266
+ | `Retiring` | Being retired (still callable; not recommended for new integration) | ✓ Display; the Agent should verbally tell the user "X is being retired; use Y instead" |
267
+ | `Shutdown` | Offline (calls will fail) | **❌ Filtered by default** (returns only with `--include-deprecated`) |
268
+
269
+ In addition, models whose `display_name` contains `abandoned` / `offline` / `not in service` / `deprecated` are handled as Shutdown (fallback because some legacy models lack ArkModels metadata and rely on manual labels).
270
+
271
+ **Agent behavior contract**:
272
+ - No client-side logic is needed to "filter Shutdown"; search already does it by default.
273
+ - When a model with `lifecycle_status="Retiring"` appears, **proactively tell the user it is being retired** and try to find a newer version in the same family (use `search` + the correct keyword).
274
+
275
+ ## ❌ Wrong patterns (Agents must read)
276
+
277
+ The following behaviors are wrong. Choosing the wrong command prevents the Agent from obtaining enrichment data (context_window / modalities / capabilities), hidden-item sinking, and weighted reranking, leading to incorrect recommendations.
278
+
279
+ - ❌ **Do not use `list` to find a model**. Any "which model/find an X model" intent must use `search`. `list` does not perform fuzzy keyword matching or weighted reranking and does not return enrichment fields.
280
+ - ❌ **Do not use `list --modality video` to select a video generation model**. Use `arkcli models search --modality video --strict-filter`; it combines ArkModels `output_modalities` with a `task_types` fallback, recalls more accurately, and supports additional `--min-context-window` / `--capability` filters.
281
+ - ❌ **Do not use `list --modality text` to select an LLM**. Likewise, use `search --modality text --strict-filter`. `list --modality text` considers only one signal from foundation_model_tag.filter_domains and misses many models.
282
+ - ❌ **Do not run `list`, then `get`, to verify context_window and similar parameters**. `search` already returns `context_window` / `max_input_tokens` / `max_completion_tokens`, saving one `get` call.
283
+ - ❌ **Do not omit the keyword from `search` merely to "view the five most popular models"**. Omitting the keyword now returns **all 152 entries** sorted by UpdateTime descending; it is no longer a curated popular list. Use `--size 5` for a small result.
284
+ - ❌ **Do not recommend a model with `lifecycle_status="Retiring"` for new integration**. Although still callable, the vendor has marked it for retirement. Proactively warn the user and search for a newer version.
285
+ - ❌ **Do not perform client-side secondary filtering on `search` to compensate for list limitations**. Use `search`'s built-in `--modality` / `--min-context-window` / `--capability` flags directly.
286
+ - For fuzzy names, use `search` to discover candidates and reuse its enrichment. For an exact model ID/version, call `get` directly when details are needed; a preliminary search is not mandatory.
287
+ - ❌ **Do not explore Raw APIs with `arkcli api --list` merely because `models list` has no server-side time-filter flag**. First run `models list --page-all --format json`, then filter local JSON by `create_time`.
288
+ - ❌ **Do not tell the user "the CLI does not have this capability; use the console"**, unless you have confirmed that the current `arkcli models list --help` truly has no enumerable output and local JSON filtering also cannot complete the requested statistics.
289
+
290
+ The only valid uses of `list`:
291
+ - ✓ Perform **full enumeration/auditing** by `--modality` (not to "find the strongest").
292
+ - ✓ Obtain statistics such as `total_count`.
293
+ - ✓ Exact matching with `--name foo` (rarely needed by Agents because search also finds it).
294
+ - ✓ Inventory the public catalog; use arkcli-custommodel for account-owned assets.
295
+
296
+ ## References
297
+
298
+ - [arkcli-chat](../arkcli-chat/SKILL.md) -- Enter the chat / inference workflow after finding a model
299
+ - [arkcli-gen](../arkcli-gen/SKILL.md) -- Enter the generation workflow after finding an image/video model
300
+ - [arkcli-deploy](../arkcli-deploy/SKILL.md) -- Enter the Endpoint deployment workflow after finding a model
301
+ - [`references/arkcli-models-list.md`](references/arkcli-models-list.md)
302
+ - [`references/arkcli-models-get.md`](references/arkcli-models-get.md)
303
+ - [`references/arkcli-models-search.md`](references/arkcli-models-search.md)
304
+ - [`references/arkcli-models-scenario-table.md`](references/arkcli-models-scenario-table.md) -- Scenario recommendation table (highest priority for intent ranking) + JOIN verification protocol
305
+ - [`references/arkcli-models-activate.md`](references/arkcli-models-activate.md)
@@ -0,0 +1,103 @@
1
+ # models activate
2
+
3
+ > **Prerequisite:** Read [`../arkcli-shared/SKILL.md`](../../arkcli-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
+
5
+ Proactively activate services for a specified foundation model (corresponding to the `OpenModelChargeItem` Action in section "3. Model activation" of URL2, with the API display name "Activate model service").
6
+
7
+ ## Difference from implicit activation by deploy / infer-create
8
+
9
+ | Entry point | Trigger method | Applicable scenario |
10
+ |------|---------|---------|
11
+ | `arkcli models activate <name>` | The user **proactively** activates it | Prepare model availability for the business in advance; try a new model; preview the local request first |
12
+ | `arkcli deploy ...` / `arkcli infer endpoint create ...` | **Passively** triggered: automatically prompts when the model has not been activated | The user's actual goal is deployment / endpoint creation, and activation is only a prerequisite |
13
+
14
+ `activate` does not first call GetModelChargeItem to check the state. It directly initiates OpenModelChargeItem. Repeated calls for an already activated model are idempotent (handled by the backend).
15
+
16
+ ## Commands
17
+
18
+ ```bash
19
+ # By default, activate only the base service (inference + fine-tuning), equivalent to SubServices=["base"]
20
+ arkcli models activate dola-seed-2-1-turbo
21
+
22
+ # Client Preview: show the local request without contacting the backend or entering the [Y/N] prompt
23
+ arkcli models activate dola-seed-2-1-turbo --sub-services base,fast-infer --dry-run
24
+
25
+ # Non-interactive (CI / scripting scenario; skips the [Y/N] confirmation prompt)
26
+ arkcli models activate dola-seed-2-1-turbo --yes
27
+ ```
28
+
29
+ ## Parameters
30
+
31
+ | Parameter | Required | Type | Description |
32
+ |------|------|------|------|
33
+ | `<foundation-model-name>` | Yes | string | Foundation model name to activate; query it using `arkcli models list` / `search` |
34
+ | `--sub-services` | No | string list | Sub-services to activate, comma-separated. Valid values: `base` / `context-cache` / `fast-infer`. **When omitted, the backend activates only `base` by default** |
35
+ | `--yes` | No | bool | Skip the `[Y/N]` secondary confirmation. Required in CI / scripts |
36
+
37
+ ### `--sub-services` values (authoritative URL2 definition)
38
+
39
+ | Value | Meaning |
40
+ |----|------|
41
+ | `base` | Base service (inference + fine-tuning) |
42
+ | `context-cache` | Context cache |
43
+ | `fast-infer` | Low-latency inference service |
44
+
45
+ When omitted, the backend treats it as `["base"]`. The CLI first performs local validation: a non-enum value is immediately rejected, avoiding a request that the backend would reject with `InvalidParameter.SubServices`.
46
+
47
+ ### Client Preview
48
+
49
+ `--dry-run` is a command-local Client Preview. It emits the locally built
50
+ `OpenModelChargeItem` request in `preview.v1`, never contacts the backend, and
51
+ never enters confirmation or polling. It does not prove that the model exists,
52
+ permissions are valid, or the server will accept the request.
53
+
54
+ ## Return value
55
+
56
+ Successful response (JSON):
57
+
58
+ ```json
59
+ {
60
+ "foundation_model": "dola-seed-2-1-turbo",
61
+ "state": "Available",
62
+ "sub_services": ["base", "context-cache"]
63
+ }
64
+ ```
65
+
66
+ Client Preview shape:
67
+
68
+ ```json
69
+ {
70
+ "schema_version": "preview.v1",
71
+ "dry_run": true,
72
+ "mode": "client_preview",
73
+ "steps": [{
74
+ "target": "OpenModelChargeItem",
75
+ "payload": {
76
+ "FoundationModelName": "dola-seed-2-1-turbo",
77
+ "SubServices": ["base"]
78
+ },
79
+ "fidelity": "logical"
80
+ }]
81
+ }
82
+ ```
83
+
84
+ ## Common errors
85
+
86
+ | Error | Cause | Handling |
87
+ |------|------|---------|
88
+ | `invalid --sub-services value "foo"` | The sub-service name is misspelled | Use `base` / `context-cache` / `fast-infer` |
89
+ | `Operation canceled` | A value other than Y was entered at the `[Y/N]` prompt | Run the command again and confirm, or add `--yes` |
90
+ | Model does not exist | `<foundation-model-name>` is wrong or the model has been taken offline | Use `arkcli models search` to find the correct name |
91
+ | `timed out waiting for model to become available` | Activation succeeded, but the model did not become Available within five seconds | Usually harmless; retry `arkcli models get <name>` later to inspect the actual state |
92
+
93
+ ## Notes
94
+
95
+ - Sub-services can be activated incrementally: for example, first `--sub-services base`, then `--sub-services context-cache` or `--sub-services fast-infer`; they do not conflict.
96
+ - `--dry-run` makes no network request, activates nothing, and consumes no usage. It is a client preview, not server validation.
97
+ - Activating an already activated model is idempotent (backend contract).
98
+
99
+ ## References
100
+
101
+ - [arkcli-models](../SKILL.md) — Models skill overview
102
+ - [arkcli-shared](../../arkcli-shared/SKILL.md) — Authentication and global parameters
103
+ - URL2 document section "3. Model activation" → `OpenModelChargeItem`
@@ -0,0 +1,94 @@
1
+ # models get
2
+
3
+ > **Prerequisite:** Read [`../arkcli-shared/SKILL.md`](../../arkcli-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
+
5
+ View model details, aggregating multiple underlying model metadata APIs to return complete information.
6
+
7
+ ## Commands
8
+
9
+ ```bash
10
+ # Positional argument form (recommended)
11
+ arkcli models get dola-seed-2-1-turbo-260628
12
+
13
+ # Specify a version
14
+ arkcli models get dola-seed-2-1-turbo-260628 260628
15
+
16
+ # Explicit flag form
17
+ arkcli models get --id dola-seed-2-1-turbo-260628 --version 260628
18
+ ```
19
+
20
+ ## Parameters
21
+
22
+ | Parameter | Required | Type | Description |
23
+ |------|------|------|------|
24
+ | `<id>` / `--id` | Yes | string | Model identifier, such as `dola-seed-2-1-turbo-260628` |
25
+ | `[version]` / `--version` | No | string | Model version override, such as `260628` |
26
+
27
+ ## Return value
28
+
29
+ Model details in JSON format, aggregated from multiple underlying APIs. Includes model name, version, capabilities, pricing, rate limits, and other information.
30
+
31
+ `supported_params` is enriched for the exact model version in the detail result. Primary versions may reuse a fresh local ArkModels metadata cache; when that cache is unavailable, for explicit non-primary versions, or with `--no-cache`, the CLI uses exact-version `ListModelMetaDatas` instead. `models get` does not add ArkModels network calls for this enrichment, avoiding its low-QPS limit. `--no-cache` still bypasses both CardView and ArkModels metadata caches.
32
+
33
+ - Missing field or empty array: no usable parameter catalog is currently available for that version, so `--transform supported_params` may print `null`.
34
+ - Present but malformed upstream JSON: the CLI prints `warn: model supported_params enrichment failed: ...` with model/version context to stderr while stdout still returns the remaining model detail.
35
+
36
+ ## Parameter evidence and conflicting queries
37
+
38
+ - A listed parameter with `support=true` is positive catalog evidence; check its type, range, enum, and required constraints. Report an explicit `support=false` faithfully. An unlisted parameter does not prove that the server rejects it, ignores it, or applies a particular default.
39
+ - Parameter catalogs, API-specific `api_support`, and actual calls are separate evidence. Missing/unknown API entries cannot be inferred from another API, a model name, or a thinking capability.
40
+ - If search/get disagree, first align the exact model version, query scope, and any returned cache/warning context. If the conflict remains, report each source separately; do not union their capabilities or silently prefer the more permissive value. Search metadata for a primary version does not override get for another version.
41
+ - Runtime behavior of an unlisted parameter requires the relevant CLI/SDK/API contract or an authorized same-model/API/identity test. Do not initiate paid inference merely to answer a catalog question.
42
+ - On NotFound, distinguish errors from empty results, preserve the supplied ID, and check supported name normalization and the requested version. Route `cm-*`, `ep-*`, and Plan aliases to their owning resource commands. For catalog troubleshooting, use a bounded search and change only an evidence-backed name/filter; include deprecated models when investigating historical resources. Do not guess version suffixes, silently substitute candidates, switch identity, or bypass the owning workflow's single-query budget.
43
+
44
+ ## Prices and entitlements
45
+
46
+ Prices now use `pricing.model_name`, `pricing.prices`, and optional `pricing.dimension_attributes`. The old `pricing.charge_items` / `pricing.multi_charge_items` arrays have been removed. Scripts and Agents must migrate; do not filter by the old `type` field.
47
+
48
+ ```bash
49
+ # Prices plus existing activation and entitlement fields
50
+ arkcli models get dola-seed-2-1-turbo-260628 --format json --transform pricing
51
+
52
+ # Unified price rows only
53
+ arkcli models get dola-seed-2-1-turbo-260628 --format json --transform pricing.prices
54
+ ```
55
+
56
+ | Field | Consumption rule |
57
+ |------|------------------|
58
+ | `service_type` | Distinguishes `infer`, `fast-infer`, `flex-infer`, `batch-infer`, `infer-storage`, `finetuned-infer`, and `finetuned`; never mix training and inference |
59
+ | `label` | Billing item identifier, interpreted with its service and conditions; not the old `type` |
60
+ | `dimensions` | Full applicability conditions, including windows, periods, and resolution; optional `ranges` describe their scope, and empty values are meaningful |
61
+ | `usage_unit` / `unit_code` / `usage_period` | Usage unit, price unit, and optional period; preserve them, do not assume per-thousand tokens or infer currency |
62
+ | `price` / `original_price` | Nullable numbers; `null` means unavailable, while `0` is a zero rate for that condition |
63
+ | `discount_price_start_time` / `discount_price_end_time` | Optional discount validity times; do not invent missing values |
64
+ | `group_index` | Original group position in this response, not a stable ID across requests; do not merge separate groups |
65
+ | `dimension_attributes` | Model-level dimension attributes, including those not referenced by price rows |
66
+
67
+ - Match the service, billing item, and all applicability conditions before displaying a rate. If multiple rows match, show their differences instead of taking the first or cheapest. If a dimension cannot be interpreted, explain the unknown condition and do not estimate a total.
68
+ - `pricing.prices: []` means no prices for this query; it does not prove that a model is free, inactive, or nonexistent. Price request failures fail the command without falling back to legacy prices.
69
+ - `pricing.state`, `inference_free_usage`, `resource_pack_items`, `sub_services`, and other existing non-price fields retain their paths and legacy entitlement source. Missing entitlements do not mean zero quota or inactive status.
70
+ - Prices are queried by the resolved foundation-model name. `--version` is not a price filter. The query uses marketplace dimension defaults and global prices; the profile's physical region is not a pricing dimension.
71
+ - This migration applies only to `models get`. `pricing models`, fine-tuning price lookup, and estimation retain their existing contracts; do not apply this schema to their outputs.
72
+
73
+ ## Common errors
74
+
75
+ | Error | Cause | Handling |
76
+ |------|------|---------|
77
+ | Model does not exist | The ID is misspelled or the model has been taken offline | Use `arkcli models search` to confirm the model name |
78
+ | Authentication failed | Not logged in or credentials expired | Run `arkcli auth login` to re-establish BytePlus identity |
79
+
80
+ ## Notes
81
+
82
+ - Both `id` and `version` support positional arguments and flags.
83
+ - This command aggregates multiple underlying APIs and may be slightly slower than `list`.
84
+
85
+ ## Guards
86
+
87
+ - If authentication fails, first return to `arkcli auth status`, then run `arkcli auth login`.
88
+ - If the model ID is uncertain, first use `arkcli models search` or `arkcli models list --name` to confirm it and avoid repeatedly calling a nonexistent ID.
89
+ - Prefer read-only queries. Do not switch profiles or modify local configuration while troubleshooting model details unless the user explicitly confirms.
90
+
91
+ ## References
92
+
93
+ - [arkcli-models](../SKILL.md) -- All models commands
94
+ - [arkcli-shared](../../arkcli-shared/SKILL.md) -- Authentication and global parameters
@@ -0,0 +1,71 @@
1
+ # models list
2
+
3
+ > **Prerequisite:** Read [`../arkcli-shared/SKILL.md`](../../arkcli-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
+
5
+ List the BytePlus ModelArk public foundation-model catalog with pagination, modality filtering, and sorting. It is suitable for public catalog enumeration and statistics. If the user is looking for "which model is suitable for a task", still prefer `arkcli models search`.
6
+
7
+ ## Commands
8
+
9
+ ```bash
10
+ # List all models (paginated by default)
11
+ arkcli models list
12
+
13
+ # Filter by modality
14
+ arkcli models list --modality text
15
+
16
+ # Case-insensitive substring filtering by name
17
+ arkcli models list --name dola
18
+
19
+ # Pagination control
20
+ arkcli models list --page-size 20 --page-number 2
21
+
22
+ # Sorting (sort-order must be Asc/Desc with an uppercase first letter)
23
+ arkcli models list --modality text --sort-by UpdateTime --sort-order Desc
24
+
25
+ # Retrieve the complete list for local script statistics/filtering
26
+ arkcli models list --page-all --sort-by CreateTime --sort-order Desc --format json
27
+ ```
28
+
29
+ ## Parameters
30
+
31
+ | Parameter | Required | Type | Description |
32
+ |------|------|------|------|
33
+ | `--modality` | No | string | Filter by modality: `text` / `image` / `video` / `audio` / `embed` |
34
+ | `--name` | No | string | Case-insensitive substring filtering by model name |
35
+ | `--page-number` | No | int | Page number (>=1) |
36
+ | `--page-size` | No | int | Number of entries per page |
37
+ | `--sort-by` | No | string | Sort field, such as `UpdateTime`, `CreateTime` |
38
+ | `--sort-order` | No | string | Sort direction. Valid values: `Asc` / `Desc` (uppercase first letter) |
39
+
40
+ ## Public catalog versus account assets
41
+
42
+ `models list` enumerates public foundation models, not account-owned custom models or deployed Endpoints.
43
+
44
+ - For "my custom models" or recent custom-model creation counts, use [arkcli-custommodel](../../arkcli-custommodel/SKILL.md) and `arkcli models custommodel list --mine --page-all --format json`. Remove the personal scope only when explicitly asked for account-wide assets. Do not add `--ready` when counting all created models.
45
+ - Filter actual asset creation timestamps in the user's timezone and time window. Missing timestamps or incomplete pagination mean unknown/partial counts. Never infer ownership from public catalog names, tags, model types, or creation timestamps.
46
+ - Deployed resources belong to `infer endpoint list`; currently callable resources belong to `resources list`. Coding Plan catalogs use `plans model-list` for the explicit plan. These sets are not interchangeable.
47
+ - Missing capability fields in `models list` are not negative evidence. Use exact-model/version `models search/get` metadata. An empty public catalog does not prove that the account has no custom assets or Endpoints.
48
+
49
+ `--transform` extracts fields such as `items.#` or `items.#.name`; it is not full jq and cannot perform date arithmetic. Retain complete JSON before local projection/filtering, and do not count a truncated sample as the full inventory.
50
+
51
+ ## Return value
52
+
53
+ A paginated JSON result with top-level fields `page_number`, `page_size`, `total_count`, and `items`. Each item normally includes fields such as `name`, `display_name`, `primary_version`, `access_type`, and `foundation_model_tag`.
54
+
55
+ ## Common errors
56
+
57
+ | Error | Cause | Handling |
58
+ |------|------|---------|
59
+ | Empty result | The `--name` substring matched no public models | Use `arkcli models search` for fuzzy search |
60
+ | Authentication failed | Not logged in or credentials expired | Run `arkcli auth login` to re-establish BytePlus identity |
61
+
62
+ ## Notes
63
+
64
+ - `--name` is a case-insensitive substring filter. For exact details, use `models get <id>`.
65
+ - Combine with `--transform` to extract a field, such as `--transform 'items.0.name'`.
66
+ - Select the correct public-catalog, custom-asset, Endpoint, or Plan command before pagination and filtering. A missing filter does not justify querying another resource class or guessing a Raw API.
67
+
68
+ ## References
69
+
70
+ - [arkcli-models](../SKILL.md) -- All models commands
71
+ - [arkcli-shared](../../arkcli-shared/SKILL.md) -- Authentication and global parameters