CLI reference
Generated from front/cli (ulams schema)
Generated from the CLI’s command registry (ulams schema), so it always matches the binary. Guides: Using the CLI, ulams for AI agents.
Commands
Section titled “Commands”ulams access: 7 command(s)ulams adapt: 8 command(s)ulams api: 1 command(s)ulams apply: 1 command(s)ulams bookmarks: 4 command(s)ulams builder: 41 command(s)ulams categories: 5 command(s)ulams cmi5: 4 command(s)ulams completion: 1 command(s)ulams config: 4 command(s)ulams consultations: 10 command(s)ulams courses: 13 command(s)ulams csp-reports: 1 command(s)ulams csv: 4 command(s)ulams describe: 1 command(s)ulams dictionaries: 7 command(s)ulams dictionary-words: 6 command(s)ulams enrol: 1 command(s)ulams events: 6 command(s)ulams file: 5 command(s)ulams get: 1 command(s)ulams groups: 9 command(s)ulams h5p: 2 command(s)ulams interactive: 8 command(s)ulams lessons: 6 command(s)ulams liascript: 10 command(s)ulams living: 30 command(s)ulams login: 1 command(s)ulams logout: 1 command(s)ulams lti: 12 command(s)ulams mcp: 1 command(s)ulams meta: 1 command(s)ulams model-fields: 3 command(s)ulams my: 105 command(s)ulams notifications: 4 command(s)ulams notifications-bulk: 3 command(s)ulams operations: 3 command(s)ulams orders: 3 command(s)ulams pages: 5 command(s)ulams payments: 3 command(s)ulams pdfs: 2 command(s)ulams productables: 5 command(s)ulams products: 8 command(s)ulams profiles: 3 command(s)ulams public: 37 command(s)ulams question-answers: 2 command(s)ulams questionnaire: 8 command(s)ulams questionnaire-model: 1 command(s)ulams questionnaire-questions: 5 command(s)ulams questions: 6 command(s)ulams quiz-answers: 1 command(s)ulams quiz-attempts: 4 command(s)ulams quizzes: 3 command(s)ulams reports: 3 command(s)ulams roles: 5 command(s)ulams schema: 1 command(s)ulams scorm: 5 command(s)ulams settings: 8 command(s)ulams stats: 7 command(s)ulams tags: 4 command(s)ulams tasks: 10 command(s)ulams templates: 11 command(s)ulams tenants: 7 command(s)ulams theme: 2 command(s)ulams tokens: 8 command(s)ulams topic-project-solutions: 5 command(s)ulams topics: 22 command(s)ulams translations: 6 command(s)ulams user-submissions: 4 command(s)ulams users: 15 command(s)ulams version: 1 command(s)ulams video: 1 command(s)ulams vouchers: 5 command(s)ulams webinars: 7 command(s)ulams whoami: 1 command(s)
Global flags
Section titled “Global flags”| Flag | Environment | Description |
|---|---|---|
--profile <name> |
ULAMS_PROFILE |
Profile to use. |
--url <origin> |
ULAMS_URL |
Instance origin; overrides the profile. |
--token-stdin |
ULAMS_TOKEN |
Read the token from stdin (there is no –token flag). |
--json |
Shorthand for –output json. | |
| `–output json | ndjson | yaml |
--fields a,b.c |
Project data (each item of a list) to these paths. | |
| `–input <json | @file | ->` |
--set path=value |
Set one nested input value (repeatable). | |
--quiet |
No stderr progress. | |
--no-color |
NO_COLOR |
Disable colors. |
--dry-run |
Show the plan; make no changes. | |
--yes |
ULAMS_YES=1 |
Confirm destructive commands non-interactively. |
| `–wait | –no-wait, –timeout |
|
--idempotency-key <key> |
Sent as Idempotency-Key. | |
--page, --per-page, --all, --limit <n> |
Pagination of list commands. | |
--out <path> |
Write a binary download to this path (- for stdout). | |
--debug |
ULAMS_DEBUG=1 |
Redacted request log on stderr. |
--interactive |
Allow prompts. |
Output envelope (contract 1)
Section titled “Output envelope (contract 1)”In JSON mode stdout holds exactly one document:
{ "ok": true, "contract": 1, "command": "courses.list", "data": [], "meta": { "page": 1, "perPage": 25, "total": 0, "lastPage": 1, "nextPage": null } }{ "ok": false, "contract": 1, "command": "courses.get", "error": { "code": "NOT_FOUND", "message": "…", "hint": "…", "status": 404, "retryable": false, "requestId": "…", "details": {} } }Exit codes
Section titled “Exit codes”| Exit | Error code | Default hint |
|---|---|---|
| 1 | INTERNAL |
This is a bug in the ulams CLI. Re-run with –debug and report it. |
| 2 | USAGE |
Run ulams --help or ulams schema to see the available commands. |
| 2 | INPUT_INVALID |
Run ulams describe <command> to see the accepted input. |
| 3 | AUTH_REQUIRED |
Run ulams login --url <origin> or set ULAMS_URL and ULAMS_TOKEN. |
| 3 | AUTH_EXPIRED |
The token was rejected. Run ulams login again. |
| 3 | INSECURE_CREDENTIALS |
Run chmod 600 on the credentials file. |
| 4 | FORBIDDEN |
The user lacks the permission. Run ulams whoami to see roles and token scopes. |
| 4 | SCOPE_MISSING |
The token lacks a scope. Create a token with the required scope. |
| 5 | NOT_FOUND |
Check the id with the matching list command. |
| 6 | CONFLICT |
The resource changed or already exists. Fetch it again and retry. |
| 6 | SYNC_CONFLICT |
Resolve the conflicting elements and retry. |
| 6 | IDEMPOTENCY_MISMATCH |
The idempotency key was reused with a different body. Use a new key. |
| 7 | VALIDATION_FAILED |
The API rejected the input. See error.details.fields. |
| 8 | RATE_LIMITED |
Wait for details.retryAfter seconds and retry. |
| 9 | SERVER_ERROR |
The server failed or is unreachable. Retry later; check the instance health. |
| 9 | NETWORK |
The instance is unreachable. Check the url with ulams whoami and your network. |
| 10 | TIMEOUT |
The operation is still running. Resume it with ulams operations wait <handle>. |
| 11 | CONFIRMATION_REQUIRED |
This command is destructive. Review the plan in error.details.plan and re-run with –yes. |
| 12 | FEATURE_DISABLED |
The feature is not enabled on this instance. |
| 12 | UNSUPPORTED_SERVER |
The server does not support this command. Upgrade the server or the CLI. |
| 13 | DIFF_FOUND |
Differences were found (exit code 13 is expected with –exit-code). |