
Security News
Lovable’s OJ Rewrites Vite’s Dev Server in Rust as AI Lowers the Cost of Forking Open Source
Lovable’s OJ rewrites Vite’s dev server in Rust, reducing memory use and preview times as AI lowers the cost of open source reimplementation.
@ganakailabs/cloudeval-cli
Advanced tools
Review Cloud infra-as-code and live environments from CLI, CI, and MCP agents.
Review Azure infrastructure before merge - from CLI, CI, and AI agents.
Cloudeval CLI brings Cloudeval into terminals, CI pipelines, and MCP-capable coding agents. Use it to review Azure ARM templates, Bicep-generated ARM JSON, and live Azure context with cost, architecture, and Well-Architected signals.
Cloudeval helps teams catch infrastructure risk before merge:
Install from npm:
npm install -g @ganakailabs/cloudeval-cli
cloudeval --help
Sign in for local use:
cloudeval login
cloudeval status
Validate an ARM template:
cloudeval validate template \
--template-file ./infra/azuredeploy.json \
--wait \
--progress stderr \
--format json \
--non-interactive
Full setup docs: Get started with the CLI and CLI command reference.
Use validate template for local review and scriptable checks:
cloudeval validate template \
--template-file ./infra/azuredeploy.json \
--parameters-file ./infra/azuredeploy.parameters.json \
--wait \
--progress stderr \
--format json
Use iac detect and iac index when an editor, agent, or script needs a stable
resource map without requiring Cloudeval auth:
cloudeval iac detect --workspace . --format json
cloudeval iac index --file ./infra/main.bicep --format json
cloudeval iac index --workspace . --format json
These commands emit the IDE schema envelope with resource ranges, adapters, and
support levels. ARM JSON and Bicep are marked full; Terraform and OpenTofu are
marked indexed_only until scanner-backed Cloudeval findings are available.
For VS Code and MCP workflows, use the IDE review/evidence commands:
cloudeval review local --file ./infra/main.bicep --project <project-id> --format json
cloudeval findings evidence <finding-id> --run <run-id> --format json
cloudeval findings draft-fix <finding-id> --run <run-id> --format json
cloudeval graph neighborhood --project <project-id> --resource <resource-id> --format json
cloudeval ci init --provider github-actions --project <project-id> --format json
ci init previews files by default and writes only when --write is supplied.
findings draft-fix is non-mutating and returns a proposal/evidence bundle.
Use Cloudeval projects and reports after connecting Azure in the app or CLI:
cloudeval projects list
cloudeval projects overview <project-id> --format json
cloudeval projects graph <project-id> --format json
cloudeval reports list
cloudeval tui --graph-diagram auto
cloudeval ask "Summarize my Azure architecture risks" --format json
Terminal UI Graph Insight cards render Mermaid flowcharts as terminal diagrams
when --graph-diagram auto detects a roomy TTY. Use unicode or ascii to
force a terminal renderer, or off to keep Mermaid source blocks. Unsupported
Mermaid syntax falls back to source instead of breaking the transcript.
Interactive chat requests advertise a versioned terminal presentation profile.
When the backend returns cloudeval.visualization/v1, the TUI renders supported
chart families with Unicode and Mermaid flows as edge lists. Unsupported chart
types use their required table fallback. No browser, SVG renderer, or native
sidecar is required.
For automation, ask and agent JSON results add
data.visualizations when artifacts are present. NDJSON emits each artifact as
{"type":"visualization","artifact":...} and repeats the validated list in
the final result. Text and Markdown keep the canonical fenced response.
projects overview aggregates project metadata, matching connections, latest
report status, graph availability, graph deep links, and credit state for IDEs
such as the Cloudeval VS Code extension. Optional layers that are unavailable
are returned as warnings or graph gaps instead of inventing project data.
Use a scoped CLOUDEVAL_ACCESS_KEY secret and keep generated JSON on stdout:
name: Cloudeval review
on:
pull_request:
paths:
- "infra/**"
jobs:
cloudeval:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
- run: npm install -g @ganakailabs/cloudeval-cli
- name: Validate ARM template
env:
CLOUDEVAL_ACCESS_KEY: ${{ secrets.CLOUDEVAL_ACCESS_KEY }}
run: |
cloudeval validate template \
--template-file ./infra/azuredeploy.json \
--wait \
--progress stderr \
--format json \
--non-interactive
Public example: passing baseline PR #6 in ganakailabs/cloudeval-azure-arm-review-example. Review comments show a merge-gate table, Cloudeval report badges, a visible AI summary, a folded detailed AI reviewer note, a compact Well-Architected radar/table drilldown, and cost Mermaid charts grouped for quick scanning.
For GitHub-backed Cloudeval projects, use the high-level review command from a clean pushed commit:
cloudeval review \
--project "$CLOUDEVAL_PROJECT_ID" \
--repo "$GITHUB_REPOSITORY" \
--ref "$GITHUB_REF_NAME" \
--commit-sha "$GITHUB_SHA" \
--github-checks \
--sarif \
--output cloudeval-review \
--format json \
--non-interactive
--github-checks records source-mapped annotations in review.json for the GitHub Action to post through the Cloudeval GitHub App. --sarif writes review.sarif.json for GitHub code scanning upload.
To include a PDF in each review artifact bundle, opt in from .cloudeval/config.yaml:
ci:
review:
outputs:
pdf:
enabled: true
report_type: all
verbosity: evidence
fail_on_error: false
When cloudeval review --output <dir> runs, the CLI writes <dir>/review.pdf alongside review.json and review.md. In GitHub Actions, ganakailabs/cloudeval-action uploads that file when upload_artifacts: true; PR comments keep both the Cloudeval-hosted PDF badge and the GitHub Artifacts badge.
Supported PDF output keys:
| Key | Supported values | Default |
|---|---|---|
enabled | true, false | false |
report_type | all, architecture, cost, unit_tests | all |
verbosity | brief, detailed, evidence | evidence |
fail_on_error | true, false | false |
To block pull requests on scanner-backed Cloud Posture findings, enable the Cloud Posture findings gate. This is useful for AWS CloudFormation enrichment from AWS Guard, Checkov, and cfn-lint without treating those findings as Well-Architected scores:
ci:
gates:
enforcement: block_pull_request
fail_when_cloud_posture_findings_exist: true
Start with read-only agent integration:
cloudeval mcp serve --toolset readonly
For IDE project-cockpit workflows, use the focused IDE toolset. It exposes project overview, graph, report, connection, billing-summary, rule, and recipe tools without enabling report generation or local file writes:
cloudeval mcp serve --toolset ide
cloudeval mcp setup vscode --toolset ide
Setup docs: MCP client setup and agent behavior and automation safety.
Human-facing commands print concise summaries by default:
cloudeval status
cloudeval reports list
cloudeval rules search "public network"
cloudeval agents run cost --project <project-id> --format json
Automation should request structured output:
cloudeval capabilities --format json
cloudeval validate template --template-file ./infra/azuredeploy.json --wait --format json --non-interactive
cloudeval ask "Summarize top risks" --format ndjson --progress ndjson --non-interactive
Cloudeval is designed for review workflows, not silent cloud mutation.
--format json --non-interactive for scripts and CI.cloudeval mcp serve --toolset readonly as the default agent integration mode.Privacy and automation details: agent behavior and automation safety.
Cloudeval separates machine output from human/operator messages:
--format;--format json for one final payload or --format ndjson for streaming events where supported;--non-interactive in CI so commands fail instead of prompting;Recommended CI shape:
cloudeval validate template \
--template-file ./infra/azuredeploy.json \
--wait \
--progress stderr \
--format json \
--non-interactive
Use MCP when an AI coding agent should inspect Cloudeval projects, reports, rules, recipes, or validation capabilities.
cloudeval mcp serve --toolset readonly
Common setup commands:
codex mcp add cloudeval -- cloudeval mcp serve --toolset readonly
cloudeval mcp setup cursor --dry-run --toolset readonly --format json
cloudeval mcp setup vscode --dry-run --toolset readonly --format json
cloudeval mcp setup vscode --dry-run --toolset ide --format json
MCP stdout is reserved for JSON-RPC. Diagnostics go to stderr.
Standalone installers are available for macOS, Linux, WSL2, Git Bash, and PowerShell 7+:
curl -fsSL https://cli.cloudeval.ai/install.sh | bash
irm https://cli.cloudeval.ai/install.ps1 | iex
Update and uninstall:
cloudeval update --check
cloudeval update --yes
cloudeval uninstall --dry-run
cloudeval uninstall --yes
cloudeval uninstall --yes --remove-config
npm uninstall -g @ganakailabs/cloudeval-cli
The installer can offer optional MCP setup for detected clients. It does not create access keys or write secrets into MCP client config.
Read AGENTS.md before touching auth, credentials, smoke artifacts, or user-facing command behavior.
git clone https://github.com/ganakailabs/cloudeval-cli.git
cd cloudeval-cli
pnpm install
pnpm build
pnpm -C packages/cli dev --help
Run focused package checks:
pnpm test:npm-package
pnpm -C packages/cli test:cli:noninteractive
Cloudeval CLI first-party code is provided under the Cloudeval CLI License.
Production third-party attribution is published in THIRD_PARTY_NOTICES.md, and the release SBOM is published as sbom.spdx.json.
FAQs
Review Cloud infra-as-code and live environments from CLI, CI, and MCP agents.
The npm package @ganakailabs/cloudeval-cli receives a total of 66 weekly downloads. As such, @ganakailabs/cloudeval-cli popularity was classified as not popular.
We found that @ganakailabs/cloudeval-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Lovable’s OJ rewrites Vite’s dev server in Rust, reducing memory use and preview times as AI lowers the cost of open source reimplementation.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.