--profile <name>. Profiles let you keep
separate CloudEval service URLs, app URLs, default projects, and model defaults for
different agents, environments, or workspaces.
Structured command help
Use these shapes when you are wiring Cloudeval into scripts, CI, or agent tools. The command tables below remain the full index; this section documents the commands whose inputs and JSON output are most often parsed by automation. Required fields are based on the current CLI implementation incloudeval-cli.
Create an Infrastructure as code project
Create an Infrastructure as code project
string | boolean
required
Use one project source for a source-backed create:
--template-file,
--template-url, --workspace-dir, or --cloud-sync. The CLI rejects
commands that combine multiple source modes.string
Local directory containing ARM JSON, parameter files, nested templates,
and optional
.cloudeval/config.yaml.string
Entry template relative to
--workspace-dir. Use this when the workspace
has more than one deployable template.string
Parameters file relative to
--workspace-dir.string
Single local ARM JSON template. Use this instead of
--workspace-dir for
a one-file import.string
Raw or GitHub template URL for a one-time import from a public source.
string
Optional parameter source. The CLI allows these only with
--template-file
or --template-url.boolean
Creates a live Azure inventory project from scoped Azure credentials
instead of importing a static template.
string
required
Required when
--cloud-sync is used.string
required
Required when
--cloud-sync is used.string
required
Required when
--cloud-sync is used. Prefer the environment variable or
stdin form so the secret is not stored in shell history.string
required
Required when
--cloud-sync is used.string | array
Optional Azure resource group scope for Cloud sync.
string
Project name shown in the Cloudeval app, reports, and follow-up command
output. If omitted, the CLI infers a name from the workspace, source, or
Cloud sync mode where possible.
string
Cloud provider. Defaults to
azure; --cloud-sync currently supports
Azure only.object
required
Created project record.
data.project.id is the value to pass to
--project on review, report, graph, and ask commands.object
Created or linked connection record when the source creates a reusable
connection.
object
Cloud sync status returned when project creation starts a sync workflow.
object
Inferred source metadata such as detected parameters or source shape when
available.
object
IaC import, resolve, and analysis pipeline state when a workspace or
template source starts that flow.
Review a pull request or pushed commit
Review a pull request or pushed commit
string
required
Provide
--project, or run inside a GitHub-backed repository that maps to
exactly one Cloudeval project. Without one of those contexts, the CLI
cannot choose what to review.string
Cloudeval project id linked to the repository being reviewed.
string
Optional
owner/repo override. By default, the CLI reads the current Git
remote.string
Git ref to review. By default, the CLI uses the current branch.
string
Commit SHA to sync and review. By default, the CLI uses
HEAD.string
Repository subdirectory that contains
.cloudeval/config.yaml and the
IaC source files.boolean
Allows review to continue when the working tree has local changes. Use
only for deliberate generated-file workflows.
boolean
Returns deterministic gate and report data without the AI-written review
summary.
object
required
Project id and name used for the review.
string
Repository resolved for the review.
string
Branch or ref resolved for the review.
string
Commit reviewed by the command.
object
required
GitHub sync submission and final status when the command waits for sync.
object
required
Cost, architecture, preload, and graph report availability used by the
review.
object
required
Evaluated gate result from
.cloudeval/config.yaml and available reports.
data.gate.status controls whether the command exits successfully.object
AI review summary status and content when summary generation is enabled.
string
required
Reviewer-facing Markdown summary included in JSON output and written to
review.md when --output is used.Ask a grounded project question
Ask a grounded project question
string
required
Required positional prompt. Quote it when it contains spaces or shell
punctuation.
string
Project id used to ground the answer. If omitted, the CLI uses the active
profile default project when one is configured.
string
Existing thread id when you want the answer to continue prior context.
string
Model override. Omit it to use the active profile default.
string
Output format:
text, json, ndjson, or markdown. Defaults to
text; --json is a shortcut for --format json.string
Progress channel:
auto, stderr, ndjson, or none. Defaults to
auto.string
required
Final answer text returned by Cloudeval.
string
required
Conversation id that can be resumed with
--thread.object
required
Project id and name used for the answer.
Run and export reports
Run and export reports
string
Project id whose reports should run or download. If omitted, authenticated
CLI sessions use the Playground project when present, otherwise the first
accessible project.
string
Report family:
cost, waf, architecture, unit-tests, or all.
Defaults to all.string
Cost report region. Defaults to
eastus.string
Cost report currency. Defaults to
USD.boolean
Polls until report generation finishes instead of returning after the job
is submitted.
number
Poll interval in milliseconds when
--wait is set. Defaults to 2500 and
is clamped to at least 500.string
Download payload view:
raw, parsed, or formatted. Defaults to raw.string
File or directory path where JSON output or downloaded report payloads are
written.
string
required
Project id used for the report operation.
string
required
Report type requested by
reports run.array
required
Report jobs submitted by
reports run.array
Job ids extracted from submitted report jobs.
array
Final report job statuses when
reports run --wait is used.array
Files written by
reports download when output targets a directory.Generate MCP client configuration
Generate MCP client configuration
string
required
Required positional client:
codex, claude, cursor, vscode, or
generic.boolean
Prints the configuration without writing to the client config file.
string
Cloudeval command path for the MCP client. Defaults to
cloudeval.string
Scope exposed to the generated MCP client config:
all, readonly,
projects, reports, or billing. Defaults to readonly.string
Explicit client config path when the default location should not be used.
string
required
Normalized MCP client selected for setup.
string
required
MCP transport, currently
stdio.string
required
Command the MCP client should run, usually
cloudeval.array
required
Arguments for stdio server startup, usually
['mcp', 'serve'] plus any
toolset flags.string
Client config path when Cloudeval can infer one or when
--config-path is
provided.boolean
required
Whether the command printed config only instead of writing files.
string
File written when setup is allowed to modify the client config.
Top-level and terminal UI
Local setup and profiles
Example agent setup:
cloudeval ask ... --project <id> uses that project even if the active profile has a
different defaultProjectId.
Authentication
Chat and one-shot questions
ask supports:
--format text|json|ndjson|markdown--progress auto|stderr|ndjson|none--jsonas a shortcut for JSON output
ask in scripts. Use chat when the session needs back-and-forth context.
Successful ask runs are recorded in local session history.
review is for GitHub-backed Infrastructure as code projects. It resolves the current GitHub repository, syncs the pushed commit to the linked CloudEval project, waits for sync/report refresh by default, reads latest cost and architecture reports, includes Well-Architected, cost, and validation drill-downs, includes an AI-written summary, and evaluates .cloudeval/config.yaml ci.gates when present. It stops before any API call if the local working tree is dirty:
--ignore-dirty only when intentionally reviewing the current HEAD while generated local files are present.
Use --no-wait only when you want to submit sync and return before reports finish. Use --no-ai-summary when automation should output deterministic gate/report data only. Use --ai-summary-mode agent --ai-summary-profile architecture to generate the narrative through an Agent Profile instead of the default ask mode.
Resume previous work:
Agent Profiles
Public profile ids and names are single-word labels:
architecture, cost,
triage, and remediation. Architecture includes the Well-Architected review
lens, so there is no separate Well-Architected Agent Profile. Agent Profiles are
separate from local CLI config profiles. When agents run omits [prompt],
CloudEval uses a starter prompt for the selected project source and profile
mode: template or live sync, ask or agent. The starter is deterministic for
automation. CloudEval applies the selected profile’s focus, tool priorities, and
response style server-side. See
Agent and automation rules
for the shared Chat, CLI, and MCP behavior.
Quick examples:
Local session history
Session history is local to the machine and scoped by profile. Pass
--yes
for delete and prune operations in automation.
Common session workflow:
Models
ask, chat, and tui use the profile’s configured model when --model
is not passed.
Diagnostics
Use
doctor --deep when you want a best-effort CloudEval service reachability check in
addition to local config and auth storage checks.
Use doctor --mcp before registering CloudEval with an MCP-compatible client:
MCP server
Use MCP server mode when an agent framework can speak the Model Context
Protocol directly and you do not want to parse shell output.
Codex example:
mcp setup --toolset accepts all, readonly, projects, reports, or billing.
For graph or validation toolsets, configure the client to run
cloudeval mcp serve --toolset graph or --toolset validation directly.
Generic MCP client example:
mcpServers
JSON config. For Ollama-powered agents, configure the agent host launched by
Ollama, such as a local coding agent or editor extension, with the generated
CloudEval stdio entry.
Focused toolsets:
Example:
askcapabilities_getagent_profiles_listagent_profiles_getagent_profiles_runprojects_listprojects_getprojects_export_diagramprojects_graph_getprojects_graph_timelineprojects_graph_diffprojects_graph_insightsprojects_graph_sync_runstemplate_validatetemplate_testtemplate_parserules_categoriesrules_searchrules_getreports_listreports_runreports_downloadbilling_summarybilling_usagebilling_ledgeropen_url
cloudeval://capabilitiescloudeval://projectscloudeval://billing/summarycloudeval://reports/latest
cloudeval-cloud-cost-reviewcloudeval-architecture-reviewcloudeval-template-preflightcloudeval-template-release-gatecloudeval-graph-drift-watchcloudeval-impact-analysiscloudeval-billing-review
- The transport is
stdio. - Use stored
cloudeval loginauth, storedcloudeval login --headlessauth, or--machine. - Run login before starting
mcp serve; stdin is reserved for MCP JSON-RPC messages. --verbosewrites diagnostics to stderr and keeps stdout reserved for the MCP protocol.- Use focused toolsets when an assistant should only see a smaller set of CloudEval capabilities.
Projects
projects create returns the created project, connection metadata, sync status, and normalized template context where available.
It supports four source modes. Use exactly one source per command:
--template-filefor a local single ARM JSON template.--template-urlfor a raw or GitHub ARM template URL.--workspace-dirfor a folder with nested or linked ARM templates.--cloud-syncfor a live Azure inventory project from scoped credentials.
Project graph intelligence
Use graph commands when automation needs project topology, sync history, graph diffs, or focused impact analysis without opening the web app.sync-runs first when building automation
that depends on graph history.
Template validation and rule catalog
Use validation commands before opening a pull request, merging infrastructure changes, or letting an agent continue with a deployment plan.--parameters-file is optional on validate template, validate tests, and
validate parse. Pass it when your template depends on parameter values; omit
it when defaults are enough.
Use rules search or rules show to find a validation check id, then pass one
or more --rule values to run only those checks.
Use --details when you need frontend-style per-check evidence in automation:
rule id, status, severity, target resource, description, synopsis,
recommendation, and documentation URL when available.
Use --wait when the backend returns an async validation job and you want the
CLI to poll until final results are ready. Pair it with --wait-timeout in
automation so the gate fails instead of hanging indefinitely.
Add --progress stderr for human-readable wait progress or --progress ndjson
for machine-readable progress events on stderr. Final command data remains on
stdout, so --format json and --format ndjson stay pipeable. Completed
progress includes failing check/test details such as message, recommendation,
severity, and file/template or resource location when available. If a completed
backend result only has a worker-local temp file path, CloudEval reports the
submitted template filename instead.
Connections
The CLI does not currently expose a general
connections create command. Use
cloudeval projects create when you want to create the connection and project
together from a template file, template URL, IaC folder, or Cloud sync
credentials. Use the web app when you need to edit an existing connection.
Reports
Current report run types:
costwafarchitectureunit-testsall
costwafarchitectureall
rawparsedformatted
reports run --type architectureandreports run --type wafboth target the architecture or Well-Architected report family.reports download --type allcan write multiple files when the output target is a directory.reports download --type architecturemaps to the architecture or WAF-style payload for that project.- Report commands support
--open,--print-url, and--no-openwhen you want the corresponding app page.
Issues inventory
List architecture findings, cost opportunities, and unit-test failures across projects:
--typeacceptsarchitecture,cost, andunit-tests(comma-separated).--sortacceptspriority,severity,savings, orproject(defaultpriority).--limitis page size1-500(default50); use--offsetfor pagination.--allow-full-scanis on by default for portfolio-wide queries; pass--no-allow-full-scanto require a--projectfilter on large portfolios.
GET /api/v1/issues/itemsreads materializedissues.latest.jsonper project.- Large portfolios:
POST /api/v1/issues/scan, thenGET /api/v1/issues/scan/{job_id}. - Deprecated API alias:
GET /api/v1/action-center/items.
GitHub review automation
Usecloudeval review locally or from GitHub Actions when the project already exists and is linked to a GitHub repository through the CloudEval GitHub App:
mode: review; it forwards github.repository, github.ref_name, and github.sha for you.
cloudeval review uses existing public CloudEval primitives: GitHub project sync, latest reports, AI summary generation, and config-driven gates. It does not require a separate low-level sync command.
App deeplinks
Use theopen command group when you want a precise CloudEval app URL for human follow-up.
Headless diagram image downloads
Use the native CLI command when CLI, CI, or MCP agents need diagram bytes directly instead of a browser tab.--layout architecture|dependency, --format png|jpeg|svg, and --labels all|viewport. The frontend defaults to https://cloudeval.ai; pass --frontend-url only for local/dev frontends. Public/share graph exports require explicit --public; private exports use cloudeval login, cloudeval login --headless, or --machine. Human output and --json output report resolved absolute filesystem paths for the image and headers files. See Headless diagram image downloads for the full command set and security checks.
Billing and credits
Capability discovery and shell setup
Commands not to assume
Do not assume these top-level commands exist unless a current capability check confirms them:cloudeval initcloudeval connectcloudeval synccloudeval evaluatecloudeval diagramcloudeval report
- Init ->
cloudeval setup,cloudeval login, andcloudeval auth status - Import ->
cloudeval projects create --template-file ...orcloudeval projects create --template-url ... - Status and local health ->
cloudeval statusandcloudeval doctor - Evaluate ->
cloudeval reports run - Diagram ->
cloudeval open project --view preview --layout architecture|dependency - Report retrieval ->
cloudeval reports ...