Changelog
Release notes of the cademi CLI, newest first. Check your version with cademi version; cademi update installs the latest. API release notes: API changelog.
0.5.2
October 26, 2026
Current release of the CLI, built for API release 3.19.0. No command or flag was added, removed, or renamed.
Changes that may require action
- In
cademi settings menus items createandcademi settings menus items update, thelabelfield accepts at most 50 characters (it was 155). A longerlabelreturns422 validation_failedon thelabelfield. Menu items saved with a longerlabelkeep it; only a new write must fit the limit.cademi commands settings menus items create --schema --jsonshowsmaxLength: 50(API release 3.19.0).
Commands
- The CLI embeds the API release 3.19.0 document, and
cademi versionshowsapi 3.19.0.
Agent skill
- The
cademi-cliagent skill inside the binary is version 0.1.16. It follows CLI 0.5.2 and API release 3.19.0.
To get this release, run cademi update.
0.5.1
October 23, 2026
Built for API release 3.18.0. No command or flag was added, removed, or renamed.
Commands
- When an operation ends as
failedorcanceledand returns anerror,cademi operations waitand--waitreport itsfield, message,code, andreason, as inoperation op_1 failed: file: ... (import_column_missing, reason: email). Without anerror, the message stays the same.
Go SDK
APIError.Error()includes thereasonof each item ofdetails, as in; field: message (reason: x). An item without amessageshows itscode. Thecode (HTTP n): messageprefix and the[request_id x]suffix do not change.
Agent skill
- The
cademi-cliagent skill inside the binary is version 0.1.15. It follows CLI 0.5.1 and API release 3.18.0. - The skill references separate a flag, an argument, or a related setting from its description with a colon. Alternative permissions read "
aorb", as inreports rankings list.config apply --plan <file>shows the value name, as in--help.
To get this release, run cademi update.
0.5.0
October 22, 2026
Built for API release 3.18.0. It is generated from API release 3.18.0, which includes 3.15.3, 3.15.4, 3.16.0, and 3.17.0. No command or flag was added, removed, or renamed.
Changes that may require action
cademi events list --resource-idrequires--resource-typeand takes the public ID of the resource, the same value an event returns inresource.id(for example,les_30). Without--resource-type, or with a bare number such as30, the API returns422 validation_failed(API release 3.15.3).- The Go SDK no longer has the
TicketAnonymoustype or theTicket.Anonymousfield. API release 3.16.0 removed theanonymousblock from support tickets, and no response ever returned it.
Commands
cademi config validate,cademi config plan, andcademi config applyaccept theemail_templatekind, which only updates a template (sale,import,free, ornew_accessinid), and thecustom_fieldkind. The help ofcademi configlists both (API release 3.18.0).cademi settings platform getreturns thetimezonefield, andcademi settings platform updateaccepts it, as in-f timezone=America/Sao_Paulo. It is the IANA time zone of the account (API release 3.17.0).cademi integrations credentials policy-templates listcan return thesettings_managertemplate, with the settings permissions (API release 3.18.0).
Help
- The help of
cademi content products lessons content updatelists the accepted block types and thedatafields of each, includinglinkTool.
Agent skill
- The
cademi-cliagent skill inside the binary is version 0.1.14. It follows CLI 0.5.0 and API release 3.18.0.
0.4.1
October 14, 2026
Built for API release 3.15.2. It is generated from API release 3.15.2, which includes 3.15.1: no command, flag, exit code, field, event, or error code was added, removed, or changed.
The API transition announced in 3.15.0 is over. The access token of cademi auth login sent together with X-API-Key, as CLI 0.3.x does, returns 401 ambiguous_credentials. CLI 0.4.0 and later send the access token alone. If you still run 0.3.x, update with cademi update.
Help
- The help of
cademi account administrators deletesays that an administrator acting with their own OAuth access token cannot delete themselves.
Go SDK
- The comments on
actor.admin_idofAuditEntryandRequestLog, and onCapabilities, describe the current model: the administrator of the OAuth access token, or null when a credential acted.
Agent skill
- The
cademi-cliagent skill inside the binary is version 0.1.13. It follows CLI 0.4.1 and API release 3.15.2.
0.4.0
October 14, 2026
Built for API release 3.15.0. Human login is OAuth only: cademi auth login signs in as the administrator, with the administrator's own permissions, and no longer asks for a credential secret. No command or flag was removed. With API release 3.15.0, credentials no longer have an authentication mode, and some commands change with it.
Changes that may require action
cademi auth loginin human mode sends onlyAuthorization: Bearerwith the administrator's access token, neverX-API-Key. Calls act with the administrator's own permissions instead of the policies of a credential.--with-keywithout--api-key-onlyis ignored, with a warning.- Human profiles saved by earlier versions, with a credential secret and OAuth tokens, keep working without a new login; the secret is ignored.
cademi integrations credentials createno longer acceptsauth_modein the body: the CLI refuses it before sending, with exit code2. Credentials no longer returnauth_modeorhuman.- With an administrator's access token,
cademi integrations credentials currentandcademi integrations credentials current-policiesreturn404and exit with code5. Usecademi account capabilities getto read the permissions in effect. - The error codes
human_context_required,human_mode_not_allowed,admin_not_eligible, andtenant_mismatchare gone.401 ambiguous_credentialshas its own hint.
Commands
- In human mode,
cademi auth status,cademi doctor, andcademi sandbox resetuseGET /capabilities.cademi auth statusshows the administrator (adm_...) and the account (ins_...), and the number of permissions in effect. cademi profiles listshows the administrator of a human profile in theCREDENTIALcolumn, and its JSON output includesaccount_id.requested_by.kindof a processing attempt can beadministrator, with anadm_ID.
Help
- This release is generated from API release 3.15.0. The help of
cademi account capabilities get,cademi account administrators create,cademi account administrators permissions update, andcademi integrations credentials createdescribes what an administrator can grant: a full-access administrator grants anything, and any other administrator grants only what their own permissions grant.
Go SDK
Credentialno longer hasAuthModeorHuman, theCredentialHumantype is removed,CredentialsCreateBodyno longer hasAuthMode, andHumanAuthsends only the bearer token.
Agent skill
- The
cademi-cliagent skill inside the binary is version 0.1.12. It follows CLI 0.4.0 and API release 3.15.0.
Update the CLI and run cademi auth login only if you want to drop the credential secret saved by an earlier version; existing human profiles keep working. If a script sends auth_mode when creating a credential, remove it. If a script reads cademi integrations credentials current while signed in as an administrator, use cademi account capabilities get instead.
0.3.2
October 12, 2026
Built for API release 3.14.0, which includes 3.13.2. No command, flag, exit code, installation step, or update behavior of the CLI was removed or changed. API release 3.14.0 moves the permissions of administrators to the policy format that credentials already use, and the body and output of three commands change with it.
Changes that may require action
cademi account administrators permissions getreturnsrole,full_access, andpoliciesinstead of thepermissionsmap andproduct_ids. Each item ofpolicieshas the same format as the policies of a credential.rootandmaster_adminreturnfull_access: trueand no policies.cademi account administrators permissions updatetakesroleandpoliciesin the body, and both are required. Sendpolicies: []withrootormaster_admin. The CLI refusespermissionsandproduct_idsbefore sending, with exit code2. Pass to--if-matchtheETagofcademi account administrators permissions get: the one fromcademi account administrators getreturns412 revision_mismatchand exits with code6.cademi account administrators createtakespoliciesinstead ofpermissions, and the CLI refusespermissionsbefore sending, with exit code2. Withoutpolicies, the administrator gets the default permissions of the role, limited toproduct_idswhen you send it.policiestogether withproduct_idsreturns422 validation_failedand exits with code6.- Nobody grants more than they have: a request that grants permissions the credential cannot delegate returns
403 delegation_limit_exceededand exits with code4. Changing your own permissions returns409 state_conflictwithdetails[].reasonset toself_modification, and exits with code6. published_byof a policy can be{"kind": "system", "id": null}, a revision the platform derived on its own.
Help
- This release is generated from API release 3.14.0. The help of
cademi account administrators create,cademi account administrators permissions get, andcademi account administrators permissions updatedescribes the policy format. With API release 3.14.0,cademi integrations credentials permission-catalog getalso returnsbilling.read,billing.manage_invoices,billing.manage_cards,activity.read, andsettings.update_appearance: dashboard permissions of administrators that are not delegable and that no command requires.
API fixes
This API fix needs no change in the CLI:
cademi reports exports geton an account without exports returnssummary.by_statusas{}.
Agent skill
- The
cademi-cliagent skill inside the binary is version 0.1.11. It follows CLI 0.3.2 and API release 3.14.0.
If a script reads or changes administrator permissions, move it to policies and pass the ETag of cademi account administrators permissions get to --if-match. If it creates administrators with permissions, send policies within what the credential can delegate, or send only role and product_ids.
0.3.1
October 9, 2026
Built for API release 3.13.1. Backward compatible with 0.3.0: no command, flag, exit code, installation step, or update behavior was removed or changed. API release 3.13.1 only documents behavior the API already had, and this release is generated from it, so requests, responses, and commands do not change.
Help
- The help of
cademi integrations event-streams createstates the limit of 5 active event streams per credential and 20 per account. Creating a stream beyond these limits returns429withtoo_many_streams. - The request schema of the declarative manifest, shown by
cademi commands settings configuration plans create --schemaandcademi commands settings configuration validations create --schema, says thatmoduleandlessonrequireproduct_idinattributes, which accepts a$ref, and that alessonalso takesmodule_idandcontent. See Declarative configuration.
Agent skill
- The
cademi-cliagent skill inside the binary is version 0.1.10. It follows CLI 0.3.1 and API release 3.13.1.
No action is required.
0.3.0
October 8, 2026
Built for API release 3.13.0, which includes 3.12.2. No command, flag, exit code, installation step, or update behavior of the CLI was removed or changed. One change in API release 3.13.0 may require action: the first import of an account is released by the Cademí team. Error messages in the terminal also show the reason of each error detail.
Changes that may require action
- The first import of an account is released by the Cademí team. Until the account has a processed import,
cademi users imports processing-attempts createwithmodeset toinitialgets409 feature_disabledwithdetails[].reasonset tofirst_import_requires_release, and exits with code6. Retrying does not help. Contact Cademí support to release the first import; later imports are processed normally. See the API changelog. - API release 3.12.2 documents that the
429withtoo_many_streamsfromPOST /event-streamsuses the standard error envelope, without the rate limit fields. The CLI andcademi listenalready handled it, so no change is needed in a script that uses them.
Errors in the terminal
- Each item of
detailsshows itsreasonin parentheses, next to its code when the item has one, for example(reason: first_import_requires_release)or(reason: has_memberships). The--jsonerror envelope and the exit codes do not change. See Exit codes.
Help
- This release is generated from API release 3.13.0. The help of
cademi users imports processing-attempts createdescribes the release of the first import, the help ofcademi automations diamonds deletesays that a Diamond with memberships is deleted in the dashboard, and the help ofcademi files exports createsays thatfilters.product_idandfilters.tag_idaccept a single ID or a list of IDs.
API fixes
These API fixes need no change in the CLI:
cademi files exports createand import analyses work again.cademi files exports list,cademi files exports get, andcademi reports exports getno longer list or return records without any date.cademi integrations webhooks geton a deleted webhook endpoint returns404and exits with code5.cademi sales deliveries updatereturns the delivery when it archives a delivery already archived or reactivates one already active.- A credential granted administrator permissions on specific administrators manages the administrators in its scope. Administrators outside the scope return
404. cademi gamification scores listwithout filters no longer times out.- Correcting the reply of a reopened question moves the question back to answered.
- The
userof a ticket without a user isnull.
Agent skill
- The
cademi-cliagent skill inside the binary is version 0.1.9. It follows CLI 0.3.0 and API release 3.13.0.
If you process imports, expect first_import_requires_release on the first import of a new account. If a script reads a webhook endpoint after deleting it, handle exit code 5.
0.2.7
October 7, 2026
Built for API release 3.12.1. Backward compatible with 0.2.6: no command, flag, exit code, installation step, or update behavior was removed or changed. This release changes the wording of the login and the page the browser shows after it.
Login
- The page the browser shows after
cademi auth loginuses the cademi.dev look, with the Cademí symbol and one color per outcome: green when the CLI is authorized, red when the authorization is denied, and amber when the authorization comes back twice. - The help of
cademi auth login, the root help, the login messages in the terminal, and the browser pages say "account" instead of "platform" and "instance", as the portal does. The--platformflag, theplatformkey in--json, and theplatform_mismatchcode are unchanged.
Agent skill
- The
cademi-cliagent skill inside the binary is version 0.1.8. It follows CLI 0.2.7 and API release 3.12.1. - Its generated examples include the flags each command requires, as in
cademi account usage --period 30d,cademi reports activity list,cademi reports lessons list, andcademi reports support get. - The skill adds an "Account overview" recipe.
No action is required.
0.2.6
October 6, 2026
Built for API release 3.12.1. Backward compatible with 0.2.5: no command, flag, exit code, installation step, or update behavior was removed or changed. API release 3.12.1 is compatible with 3.12.0, and its document now describes what the API already returned. This release is generated from it.
Progress adjustments
- In
cademi users products progress adjustments listandcademi users products progress adjustments get,typelists the five values the API returns:reset,exam_result_deleted,exam_attempt_reopened,score_adjusted, andscore_deleted. The list is extensible, so new types may appear.resultdocuments the keys of each type. - In
score_adjustedandscore_deletedadjustments,result.score_idandresult.product_idare public IDs (sco_,prd_) instead of internal numbers.result.product_idcan benull.
Descriptions
- The description of
originin point entries says that a balance is also corrected by deleting a manual entry withcademi users scores delete. - The example of the
score.deletedevent shows a manual deletion, withexam_idset tonull. - The description of the comment list no longer mentions
include_replies, which is not a parameter ofcademi support comments list. - The permission catalog reports
introduced_inas3.12.0forscores.delete, and itscatalog_versionis3.12.0. - The
cademi-cliagent skill inside the binary is version 0.1.7. It follows CLI 0.2.6 and API release 3.12.1.
If a script reads result.score_id or result.product_id of a score adjustment as a number, read it as a public ID string. No other action is required.
0.2.5
October 6, 2026
Built for API release 3.12.0. No command, flag, exit code, installation step, or update behavior of the CLI was removed or changed. One change in API release 3.12.0 may require action: the score.removed event is replaced by score.deleted. This release also adds a command that deletes manual point entries.
Changes that may require action
score.removedis replaced byscore.deleted. API release 3.12.0 has noscore.removedevent type, socademi listen --events score.removedis rejected with422 validation_failedand exits with code6. Pass--events score.deleted.score.deletedis published once per deleted point entry. Itsdatacarriesid,user_id,product_id,points,exam_id(nullfor a manual entry), andadjustment_id(nullfor an exam reversal). See the API changelog.
Points
cademi users scores delete <user_id> <score_id>deletes a manual point entry, such as one created bycademi users score-adjustments createor added in the dashboard.reasonis required: pass it with-f reason=.... The command needs thescores.deletepermission and asks for confirmation unless you pass--yes. Points earned automatically are refused with422 score_not_removable, and the command exits with code6.
Help
- The help of
cademi sandbox resets createcites the path of a test scenario run asPOST /sandbox/test-scenarios/{scenario_id}/runs. - The
cademi-cliagent skill inside the binary is version 0.1.6. It coverscademi users scores deleteand thescore.deletedevent.
If a script passes score.removed to cademi listen --events, or handles that event type, switch to score.deleted. To delete manual point entries, grant scores.delete to the credential. No other action is required.
0.2.4
October 6, 2026
Built for API release 3.11.0. Backward compatible with 0.2.3: no command, flag, exit code, installation step, or update behavior was removed or changed. This release adds the flags and fields of the support and delivery operations, and lists in cademi commands --json the permissions of which any one is enough.
Support
cademi support tickets list --queuefilters tickets by inbox queue:openawaits a staff reply,answeredawaits the user, andclosedis closed.--statusstill filters by lifecycle status,openorclosed.cademi support departments delete --unlink-ticketsunlinks the department's tickets, including those in the trash, and deletes the department. The tickets are kept. Without the flag, a department with tickets is refused withstate_conflictand the command exits with code6.cademi support departments createandcademi support departments updateacceptadmin_id, the administrator responsible for the department. Withupdate,-F admin_id=nullclears it.cademi support tickets replies createaccepts a reply with attachments only:textcan be omitted whenfile_idsis present.
Deliveries
- In
cademi sales deliveries create, no field ofproductsis required.products.objectandproducts.ignored_external_product_idsare accepted and ignored. Withoutproducts, the delivery starts without products. - The help of
cademi sales deliveries products updateandcademi sales deliveries rules updatesays that a delivery is live: the change applies to existing enrollments, except users with an individual override. - The help of
cademi sales deliveries updatedescribesdeletedas an alias ofstatus, which also needsdeliveries.archive.
Permissions and deprecated fields
cademi commands --jsonaddspermissions_any_ofto the commands whose permissions are alternatives. Each group lists permissions of which any one is enough. Incademi reports rankings list, the group isreports.readandrankings.read, and the help showsPermission: reports.read or rankings.read.permissionsstill has one entry per permission. See The JSON catalog.- A body field that the API deprecated has
deprecated: trueinbody_fields, and the help marks itdeprecated. In this release, that isadmin_two_factor_availableincademi settings authentication update, which the API accepts and ignores.
Help
- The help of
cademi sandbox resets createandcademi sandbox test-scenarios runs createsays thatsandbox_onlyandsandbox_requiredboth mean the request must be made with a sandbox credential. - The help of
cademi support comments listsays that the moderation queue also lists pending replies, and the help ofcademi support comments replies deletesays that a student reply can be deleted withcomments.delete. - The help of
cademi users products access updatesays thatdurationset tonullinherits the delivery duration again. - The
cademi-cliagent skill inside the binary is version 0.1.5. Its exit code table says that, in a group ofpermissions_any_of, any one permission is enough.
If a script checks that a credential has every permission in permissions, read permissions_any_of too: one permission of each group is enough. To delete a department with tickets in one call, add --unlink-tickets. No other action is required.
0.2.3
October 6, 2026
Built for API release 3.10.1. Two changes may require action: a missing required query parameter, and an ID argument that is the name of a subcommand, exit with code 2 before any request. This release also adds --wait to the commands whose response carries an operation in operation_id, and corrects several help texts.
Waiting for operations
cademi files exports create,cademi users imports processing-attempts create,cademi sales events processing-attempts create, andcademi automations diamonds memberships processing-attempts createaccept--waitand--wait-timeout.--waitwaits for the operation in the response'soperation_id: standard error shows the export or attempt ID, and standard output carries the final operation. Whenoperation_idisnull,--waitprints the response without waiting. See Asynchronous operations.
Required query parameters
cademi account usage --period,cademi reports activity list --fromand--to,cademi reports lessons list --product-id, andcademi reports support get --fromand--toare marked(required)in--helpand haverequired: trueincademi commands --json. See Path and query parameters.
Help
cademi guide errorsandcademi operations waitpoint tocademi operations items <operation_id>.cademi auth logout --helppoints tocademi integrations credentials updateto revoke the credential.cademi config apply --helpshows the flag as--plan file.- The
Permission:line of the help groups the conditions of the same permission, such asdeliveries.archive (if field:status or field:deleted). - The
cademi-cliagent skill inside the binary is version 0.1.4, and points tocademi operations items <operation_id>.
Changes that may require action
- Missing required query parameters exit with
2. A command run without a required query parameter exits with code2and sends nothing to the API, instead of exiting with6on the API's422. - Subcommand names are not accepted as IDs.
cademi operations items list, and any ID argument equal tolist,get,create,update, ordelete, exits with code2without calling the API, instead of being sent as an ID and exiting with5.
If a script checks for exit code 6 when a required query parameter is missing, or for 5 after cademi operations items list, check for 2. To find the required parameters of a command, run cademi commands <command> --json --jq '.commands[0].flags[] | select(.required)'.
0.2.2
October 6, 2026
Built for API release 3.10.1. Backward compatible with 0.2.1: no command, flag, exit code, installation step, or update behavior was removed or changed. This release follows the API release and refreshes the agent skill that ships inside the binary.
- The help of
cademi account usageandcademi files uploads createfollows API release 3.10.1:storage.used_bytesis a stored total recalculated daily, the storage quota is 50 GiB, and the attachment limit is set by the account. - The
cademi-cliagent skill inside the binary is version 0.1.3, with version examples for this release.cademi skills installand the first run of this version refresh the copies already installed. cademi skills installreports an error when it cannot remove the previous copy of the skill.
No action is required.
0.2.1
October 5, 2026
Built for API release 3.10.0. Backward compatible with 0.2.0: no command, flag, exit code, installation step, or update behavior was removed or changed. This release adds commands that set up AI assistants: one installs the Cademí MCP in a client, the other installs the cademi-cli agent skill.
Cademí MCP
cademi mcp install <client>adds the Cademí MCP server,https://mcp.cademi.dev/mcp, to an AI assistant as the remote servercademi. The clients areclaude(Claude Code),codex,cursor,vscode,copilot(GitHub Copilot CLI),gemini(Gemini CLI), andopencode. Claude Code and Codex are configured through their own CLIs; the others get the entry merged into their configuration file, and other servers and settings are kept. A configuration file with comments is not changed: the command prints the entry to paste instead.--projectadds the server to the current project only, except in Codex and GitHub Copilot CLI,--urlpoints to another server URL, and--forcereplaces academientry that points elsewhere. Sign-in happens in the assistant, and the command prints the next step.cademi mcp docslists the Cademí MCP documentation pages. See Connect a client.
Agent skill
cademi skills installinstalls thecademi-cliskill, which teaches AI coding agents to use the CLI, into~/.claude/skillsand~/.agents/skills. The skill ships inside the binary at the same version as the CLI. Without--agentor--dir, it installs only for agents whose directory already exists.cademi skills statusshows where it is installed and whether it is current, andcademi skills uninstallremoves it.- The first run of each new version of the CLI refreshes the copies already installed, and never installs anywhere new. The same skill is published at minhacademi/skills.
- The CLI reads
CLAUDE_CONFIG_DIRandXDG_CONFIG_HOMEonly to find where Claude Code and the other assistants keep their files.
No action is required. To use the Cademí MCP in a coding assistant, run cademi mcp install with its name; to give your agent the CLI skill, run cademi skills install.
0.2.0
October 4, 2026
Built for API release 3.10.0. The command paths of 0.1.11 still run, as aliases of the new ones. One change may require action: --all is accepted only on collections paginated with a cursor. This release organizes the commands in resource domains, adds built-in guides and schema inspection, and shows the Idempotency-Key of a write that failed after it was sent.
Command organization
- Commands are organized in 11 resource domains:
account,automations,content,files,gamification,integrations,reports,sales,settings,support, andusers. For example,cademi products listiscademi content products list, andcademi credentials currentiscademi integrations credentials current.operationsandsandboxare listed with the core commands. The previous paths still run with the same arguments and flags, but--helpandcademi commandsshow only the new ones. See Commands. cademi content products publish-allandcademi content products modules publish-allpublish a product or a module with all its content, including copies in replicated accounts.
Discovery
cademi commands --groupslists the groups directly below a prefix.cademi commands --groups --brief --jsongives a compact index of the domains.cademi commands <prefix> --schemaadds the full request body schemas of the API contract, with field descriptions, enums, limits, and nested properties. It makes no API request and prints JSON by default.- The JSON catalog of
cademi commandsincludes structured arguments, flag conflicts and allowed values, the settings related to each command, conditional permissions, the previous paths of each command, and group descriptions and examples. cademi guideprints built-in guides for automation:errors,input,output,reordering, andretries. Read one withcademi guide <topic> --help.- Every help starts with
USAGE, and operation commands list related commands.
Errors and retries
- When a write fails after it was sent, including network errors and cancellations, the error shows the request and the
Idempotency-Keythe CLI used. With JSON output, the error has arequestobject withmethod,path, andidempotency_key. Pass the key with--idempotency-keyto repeat the same write safely. Exit codes do not change. - Errors in flags and arguments print as JSON when you ask for JSON output.
Changes that may require action
--allonly on cursor collections.--allis available only on collections paginated with a cursor, and it cannot be combined with--rawor--include: the command exits with code2before any request. Collections without a cursor return every entry in a single response.
Pagination
- The content lists of products and modules accept
--cursor,--limit, and--all.
If a script passes --all to a collection without a cursor, or together with --raw or --include, remove --all. Scripts that use the previous command paths keep working; to move them to the new paths, see Commands.
0.1.11
September 27, 2026
No command, flag, or environment variable was removed or changed. One change may require action: requests are validated against the API contract before they are sent. This release also changes how a 503 is retried.
- Requests are validated against the API contract embedded in the CLI before they are sent. A query parameter or body field that the operation does not accept, including nested fields and fields passed with
--data, exits with code2without calling the API. The message names the field or parameter, its JSON path, and what the operation accepts. This applies tocademi api, when the path matches a known operation, and to the resource commands. cademi api --skip-validationsends the request as is, for endpoints newer than the embedded API release.cademi api -H 'Idempotency-Key: ...'works like--idempotency-key. Operations that require anIdempotency-Keyalways get one.- A
503from the API without aRetry-Afterheader, such asstorage_unavailable, is not retried: the command returns right away with exit code8. A503withRetry-After, and a503without an API error envelope, are retried.
If a command exits with code 2 because of the validation, remove the parameter or field that the message names. To call an endpoint newer than the embedded API release, pass --skip-validation to cademi api.
0.1.10
September 26, 2026
Backward compatible with 0.1.9.
Internal improvements. No changes to commands, flags, exit codes, installation, or updates.
No action is required.
0.1.9
September 26, 2026
Backward compatible with 0.1.8.
Internal improvements. No changes to commands, flags, exit codes, installation, or updates.
No action is required.
0.1.8
September 26, 2026
Backward compatible with 0.1.7: no command, flag, exit code, or environment variable was removed or changed. This release completes what cademi env reports and the help of the text-first commands.
cademi envshowsmax_retriesandmax_retry_wait, andclient_request_idwhenCADEMI_CLIENT_REQUEST_IDis set, each with where its value comes from.- The
--outputhelp of the commands that print text by default (auth status,env,profiles list,commands,doctor,config validate, andconfig plan) says so.
No action is required.
0.1.7
September 26, 2026
Backward compatible with 0.1.6: no command, flag, exit code, or environment variable was removed or changed. This release adds a client request identifier and settings for automatic retries.
CADEMI_CLIENT_REQUEST_IDsends your own identifier in theX-Client-Request-Idheader of every request: up to 64 letters, digits,.,_, or-. The API returns it in the response and records it in the request log. An invalid value exits with code2.CADEMI_MAX_RETRIES(default3;0turns retries off) andCADEMI_MAX_RETRY_WAIT(default60s) control automatic retries. A429that asks for a longer wait thanCADEMI_MAX_RETRY_WAITfails right away.cademi profiles listshows the API URL and your account's platform address in separate columns,APIandPLATFORM, and--jsonincludesplatform.
No action is required.
0.1.6
September 26, 2026
Backward compatible with 0.1.5: no command, flag, or exit code was removed or changed. This release removes account details from the issue opened by cademi bug and clarifies the sign-in pages and two help texts.
cademi bugno longer puts your account's platform address, the credential ID, or the profile name in the public issue.- In
cademi env, the operating system and architecture are reported asos_arch;platformis only your account's platform address. - The browser page after sign-in says "Cademí CLI authorized" only for a valid response. A rejected
issshows "Authorization rejected", andaccount_not_eligiblehas its own page. cademi auth logout --helpexplains how to revoke the credential, and the--base-urlhelp describes it as the Cademí API URL.
No action is required. If you read platform from cademi env --json, the operating system is now in os_arch.
0.1.5
September 26, 2026
Built for API release 3.4.7. Backward compatible with 0.1.4: no command, flag, or exit code was removed or changed. This release lets human login go straight to your platform and makes the login end right away when the platform refuses it.
cademi auth login --platform <address>goes straight to your account's platform instead of the platform selector in the browser. The address is saved in the profile, reused on the next login, and shown bycademi auth statusandcademi env.- Human login checks the
issparameter returned by the authorization (RFC 9207). It rejects a response whoseissdoes not match the issuer, or that has noisswhen the server announces support for it. - Choosing Deny in the browser ends the login right away, without saving anything.
- When the platform refuses the administrator, the login ends right away with the reason:
mfa_required(two-factor authentication is not turned on),account_not_eligible(the account cannot authorize the CLI), orplatform_mismatch(the administrator belongs to another platform; the message suggests--platform). - The base URL prompt is now "Cademí API URL". Clearer messages while waiting for the browser and for credentials that require human mode.
No action is required.
0.1.4
September 25, 2026
Built for API release 3.4.5. Backward compatible with 0.1.3: no command or flag was removed or changed. This release adds the API bug report to cademi bug and moves issues to the minhacademi/developers repository.
cademi bug --apiopens the API bug report instead of the CLI one, with--endpointand--request-idfilled in.--request-idalso works for CLI bugs.- Issues now go to the
minhacademi/developersrepository, which takes reports for both the API and the CLI. - Mutually exclusive flags exit with code
2.
No action is required. If you link to the issue tracker of the CLI, point to github.com/minhacademi/developers.
0.1.3
September 25, 2026
Backward compatible with 0.1.2: no command, flag, or exit code was removed or changed. This release adds a catalog of every command.
cademi commandslists every command in one call, with the API route, permission, arguments, and flags.--jsonfor scripts and AI agents,--brieffor a small index, and a prefix narrows the list (cademi commands products).
No action is required.
0.1.2
September 25, 2026
Backward compatible with 0.1.1: no command or flag was removed or changed. This release adds cademi bug, extends --all to every paginated list, and fixes two behaviors.
cademi bugopens a new issue with your CLI version, platform, and settings filled in. Nothing is sent until you submit it in the browser.--printprints the URL instead.--allnow works on every paginated list, including users, enrollments, access schedules, comments, and questions.cademi apikeeps query parameter names as written, such astag_id[].- A missing credential exits with code
3, like other authentication errors.
No action is required. If a script checks the exit code of a run without a credential, expect 3.
0.1.1
September 25, 2026
Backward compatible with 0.1.0: no command, flag, or exit code was removed or changed. This release adds cademi env.
cademi envshows the effective settings and where each value comes from (flag, environment variable, config file, profile, keychain, or default).cademi env <name>prints a single value.
No action is required.
0.1.0
September 25, 2026
First release of the cademi CLI, built for API release 3.4.4.
- Every API v3 operation as a command, with the API route, permission, and body fields in
--help. - Human sign-in (OAuth in the browser plus a credential) and autonomous mode (credential only), with profiles and secrets in the operating system keychain.
cademi api,cademi listen(with signed forwarding to a local endpoint),cademi config validate/plan/apply,cademi sandbox reset/run,cademi upload,cademi download,cademi operations wait, andcademi doctor.- Output as a table, JSON, YAML, or filtered with
--jq, and stable exit codes. - Installers for macOS, Linux, and Windows, and signed automatic updates.