Ara is designed to work cleanly in automated pipelines with no interactive terminal. The same security analysis that prompts you in development still runs in CI — but with the right flags it reports findings silently instead of blocking the pipeline. This page covers the flags, caching strategy, and example workflows for common CI providers.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/ara-home/ara/llms.txt
Use this file to discover all available pages before exploring further.
Key flags for CI environments
--non-interactive
Disables all interactive prompts. Security findings are still detected and logged, but Ara never waits for user input. Use this in every CI install step.
--offline
Fails immediately if a package is not already in the local store cache. Useful for air-gapped runners or to enforce that no new packages are fetched at deploy time.
--force
Re-downloads every package even if it is already cached. Use this when you suspect a cached tarball is stale or want to force fresh security scans on every run.
--package-lock
Generates a
package-lock.json (lockfileVersion 3) alongside ara.lock. Required for deploy platforms that detect package-lock.json but do not yet recognize ara.lock.How security findings behave in CI
When--non-interactive is passed, Ara never blocks installation waiting for a decision. Instead, it:
- Scans every package for the full set of 16+ security patterns.
- Logs each finding with its severity, pattern name, file, and line number.
- Automatically approves the package and continues.
ara audit as a separate step after install:
ara audit and ara analyze run the same scanner. audit produces an extended report format. Both exit with a non-zero code when findings above the configured threshold are found, making them suitable for use as build gates.Caching the Ara store
Ara’s content-addressable store lives at~/.ara/store/. Every tarball is stored by its SHA-256 hash, so identical packages across projects share the same entry. Caching this directory between runs avoids re-downloading packages that have already been verified.
GitHub Actions
The following workflow installs dependencies, caches the Ara store, and optionally generatespackage-lock.json for platforms that need it.
Offline enforcement after a warm cache
For pipelines where you want to guarantee that no new packages are fetched at deploy time (only cached packages are used), restore the cache first and then install with--offline:
ara.lock is missing from the restored cache, the build fails immediately with a clear error rather than silently fetching from the network.
Deploy platform compatibility
Some hosting platforms (Vercel, Netlify, Railway, Render) detectpackage-lock.json to identify the package manager and install strategy. Until these platforms add native ara.lock support, pass --package-lock to generate a compatible lockfile during your CI install step:
ara.lock (Ara’s native lockfile) and package-lock.json (lockfileVersion 3) to your working directory. Commit ara.lock to version control; the generated package-lock.json can be committed or generated fresh in CI depending on your platform’s requirements.
Recommended CI setup checklist
Run
ara install locally and commit ara.lock. This ensures every CI run resolves the exact same dependency graph without querying the registry.Add
--non-interactive to every ara install and ara add call in your pipeline. This prevents the runner from hanging on an interactive security prompt.Add a cache step that saves and restores
~/.ara. Use ara.lock’s hash as the cache key so the cache is invalidated when dependencies change.