Developers

Cademí CLI

cademi is the command-line tool for the Cademí API v3. It runs every API operation as a command, signs in as an administrator or with a credential alone, forwards events to your local application, and applies declarative configuration to your account.

What the CLI does

  • Every API operation as a command. Commands are generated from the API contract and grouped by domain: cademi content products list, cademi users create, cademi integrations webhooks list. Each command's --help shows the API route, the required permission, and the body fields. See Commands.
  • Two ways to sign in. Human mode uses an administrator's OAuth session alone: calls act with the administrator's own permissions, and the audit trail records the administrator. Autonomous mode uses a credential alone, for scripts and CI. Secrets stay in the operating system keychain. See Authentication.
  • Safe writes. Every write carries an Idempotency-Key, so automatic retries never duplicate an effect. --if-match sends a conditional update, and deletes ask for confirmation.
  • Workflows. cademi api sends a request to any endpoint, cademi listen streams events and can forward each one to a local endpoint, cademi config validates, plans, and applies manifests, cademi upload and cademi download transfer files, and cademi sandbox resets the sandbox and runs test scenarios.
  • AI coding assistants. cademi skills install teaches coding agents to use the CLI, and cademi mcp install connects an assistant to the Cademí MCP server. See AI coding assistants.

The CLI runs on macOS, Linux, and Windows, on amd64 and arm64.

Quickstart

  1. Install the CLI on macOS or Linux:
curl -fsSL https://cli.cademi.dev/install.sh | bash

On Windows, in PowerShell:

irm https://cli.cademi.dev/install.ps1 | iex

Open a new terminal afterwards so the updated PATH takes effect. See Installation for options and updates.

  1. Sign in:
cademi auth login

The CLI asks for the API URL (https://api.cademi.com.br by default) and opens the browser. Enter your account's address, sign in as an administrator with two-factor authentication, and choose Authorize. Back in the terminal, the CLI acts as that administrator; no credential secret is needed. To skip the address question in the browser, pass the address with --platform, as in cademi auth login --platform acme.cademi.com.br. To sign in with a credential alone, run cademi auth login --api-key-only.

  1. Make your first calls:
cademi auth status
cademi content products list --limit 5

cademi auth status shows the administrator, the account, the environment, and the number of permissions in effect; cademi account capabilities get lists them. cademi content products list prints a table in a terminal and JSON when you pipe it.

Getting help

cademi --help
cademi content products --help
cademi content products update --help

cademi --help lists the core commands and the 11 resource domains, such as content, users, and integrations. Each domain lists its groups and commands, and each operation command documents its route, permission, parameters, and body fields.

cademi commands lists every command with its API route in one table. For scripts and agents, cademi commands --groups --brief --json gives a compact index of the domains, and cademi commands content products --json gives the arguments, flags, and permission of each command in one area. cademi guide explains output, input, retries, and errors for automation. See Finding commands.

cademi version prints the CLI version, the API release it was built for, and the build commit:

cademi 0.5.2 (api 3.19.0, commit c209b28)

The CLI works with any 3.x release of the API. cademi doctor warns when the server runs a different release than the CLI. If the server is newer, operations added in that release are still available through cademi api. If the server is older, some commands may call operations the server does not offer yet. See Versioning and compatibility.

AI coding assistants

The cademi-cli skill

The cademi-cli skill gives coding agents instructions and a command reference for this CLI. It works with Claude Code and with agents that read skills from ~/.agents/skills, such as Codex, Cursor, Gemini CLI, OpenCode, and GitHub Copilot. The skill is built into the binary and matches the CLI version, so installing it downloads nothing:

cademi skills install
cademi skills status

cademi skills install installs the skill in ~/.claude/skills/cademi-cli and ~/.agents/skills/cademi-cli, only for the agents whose directory (~/.claude or ~/.agents) already exists. When neither exists, the command exits with code 2 and asks you to choose a destination. Choose one with these flags:

FlagEffect
--agent claude, --agent agents, --agent allInstall for that agent even when its directory does not exist yet.
--dir <path>Install in <path>/cademi-cli. For example, --dir .claude/skills installs the skill for the current repository only.
--forceReplace a cademi-cli directory that is not this skill. Without it, the CLI leaves that directory alone and fails.
--jsonPrint the result as JSON, with the agent, path, status, and version of each destination.

CLAUDE_CONFIG_DIR moves the Claude Code directory, as it does for Claude Code itself.

Installing replaces the whole cademi-cli directory, including any local edits. After a CLI update, the first command you run updates the copies already installed in the Claude Code and ~/.agents directories. It never installs the skill anywhere new. Copies installed with --dir are not updated automatically: run cademi skills install --dir <path> again after an update.

cademi skills status shows each destination with one of these statuses: up-to-date, outdated (another version), modified (same version, edited files), not-installed, not-detected (the agent directory does not exist), or foreign (a cademi-cli directory that is not this skill). It accepts --agent, --dir, and --json. cademi skills uninstall removes the skill and leaves a foreign directory in place.

The same skill is published at github.com/minhacademi/skills, for agents that install skills from a repository.

The Cademí MCP server

The Cademí MCP server exposes the API as tools for AI assistants, and you authorize it by signing in to Cademí as an administrator. cademi mcp install <client> adds it to a client as the remote server cademi, at https://mcp.cademi.dev/mcp:

cademi mcp install claude
cademi mcp install vscode --project
ClientNameConfigured through
Claude Codeclaudeclaude mcp add
Codexcodexcodex mcp add
CursorcursorIts MCP configuration file
VS Code, including Copilot in VS CodevscodeIts MCP configuration file
GitHub Copilot CLIcopilotIts MCP configuration file
Gemini CLIgeminiIts configuration file
OpenCodeopencodeIts configuration file

By default, the server is added for your user, in every project. --project adds it to the current directory only. Codex and GitHub Copilot CLI have no project configuration, so --project with either of them exits with code 2.

For clients configured through a file, the command keeps the other servers and settings in that file. If the file is not plain JSON, for example because it has comments, the command leaves it unchanged, fails, and prints the entry for you to add yourself. Claude Code and Codex are configured through their own CLIs. If that CLI is not installed, the command fails and prints the command to run once it is.

After adding the server, the command prints the next step, usually signing in to Cademí from the assistant. For Codex, the command runs codex mcp add, which opens the Cademí sign-in page in your browser. If that sign-in does not finish, the server stays configured and the command prints how to sign in later.

If the client already has a cademi server with the same URL, the command changes nothing. If the existing server has another URL, the command exits with code 2 unless you pass --force, which replaces it. --url sets a different server URL.

cademi mcp docs prints the links to the MCP guides. To connect another client, or Claude on the web or the desktop app, see Connect a client.

Report a problem

The fastest way to report a bug is cademi bug:

cademi bug
cademi bug --title "Short summary of the problem"
cademi bug --api --endpoint "PATCH /api/v3/products/{product_id}" --request-id 01J8Z3ZQ4H8K2M0T1S9P7YQF5C

cademi bug opens a new issue at github.com/minhacademi/developers in your browser, with the CLI version, the operating system and architecture, and the settings from cademi env already filled in. The settings never include secrets, local paths, the profile name, the credential, or your account's address. Nothing is sent until you review the issue and submit it in the browser. --title sets the issue title. --print prints the issue URL instead of opening the browser, and so does the command when its output is not a terminal.

cademi bug --api opens the API bug report instead, for a response that contradicts the API documentation. It fills in the API release the CLI was built for, and --endpoint and --request-id fill in the method and path of the call and its request_id. The request_id appears in the error the CLI prints and in the X-Request-Id response header. --request-id also works in the CLI bug report. --endpoint without --api is a usage error and exits with code 2.

  • Bugs in the CLI and feature requests: run cademi bug, or open an issue at github.com/minhacademi/developers and include the output of cademi version and cademi env.
  • Questions about using the CLI: Discussions.
  • Security vulnerabilities: report them privately at github.com/minhacademi/developers/security, never in an issue.
  • Problems with the API itself: run cademi bug --api --endpoint "<METHOD> <path>" --request-id <id>, or see Report a problem in the API guides.
  • Questions about your account, plan, or data: contact Cademí support.

Issues and discussions are public. Never paste an API key, a token, or data about your users.

CONTRIBUTING.md summarizes where each kind of report goes.

Next steps

  • Installation: install options, updates, release verification, and uninstalling.
  • Authentication: human and autonomous mode, profiles, and where secrets are stored.
  • Commands: how operations become commands, request bodies, output, pagination, and asynchronous operations.
  • Events with cademi listen: receive events on your machine while you develop.
  • CI and automation: run the CLI without a terminal.

On this page