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.
ara install is the primary way to bring a project’s dependencies to life. With no arguments it reads your package.json as the source of truth, resolves every dependency using Minimum Version Selection (MVS), scans each package for security issues before extraction, and writes a deterministic ara.lock. When called with one or more package specifiers it acts as an alias for ara add, installing those packages directly and updating package.json and the lockfile in a single step.
Usage
| Form | Behavior |
|---|---|
ara install | Installs all dependencies declared in package.json |
ara install <spec> | Alias for ara add <spec> — installs a specific package |
ara install <spec1> <spec2> | Installs multiple packages at once |
Flags
Save the installed package(s) under
devDependencies in package.json. Has no effect when installing from the manifest with no arguments.Save the installed package(s) under
peerDependencies in package.json.Save the installed package(s) under
optionalDependencies in package.json.Controls the version range prefix written to
package.json when adding a new package. Accepted values:exact(default) — writes the resolved version as-is, e.g.1.2.3caret— prefixes with^, e.g.^1.2.3patch— prefixes with~, e.g.~1.2.3
Re-download the package even when a cached copy already exists in the content-addressed store. Useful when you suspect the cached tarball is stale or corrupted.
Bypass the cache specifically for mutable references such as branch names and tags. This is distinct from
--force: it only re-fetches when the reference could point to a different commit than what is cached.Fail immediately if any required package is not present in the local cache. Useful in air-gapped environments to ensure no outbound network calls are made.
Suppress all interactive prompts. Security findings are printed to stdout but packages are approved automatically. Pass this flag in CI pipelines and automated scripts.
Generate a
package-lock.json (lockfile version 3) alongside ara.lock. This is a temporary compatibility flag for deploy platforms that do not yet recognize ara.lock. It will be removed once those platforms add native ara.lock support.The install flow
When you runara install with no arguments, Ara executes an eight-step pipeline:
- Parse — reads
package.jsonas the primary manifest. If anara.tomlexists, advanced settings such as security thresholds are merged in. - Expand workspaces — globs
workspacespatterns and creates implicit dependency entries for each discovered member directory. - Resolve — runs MVS over every dependency to select the minimum version that satisfies all constraints. Circular dependencies are detected and warned about.
- Fetch or symlink — workspace members become live symlinks in
node_modules/; all other packages are downloaded as tarballs from the appropriate backend. - Analyze — each package’s source files are scanned against 16+ security patterns including
eval(),child_process, prototype pollution, credential access, and obfuscated code. - Prompt — if suspicious patterns are found and
--non-interactiveis not set, Ara pauses and asks you to allow, deny, or sandbox each flagged package. - Extract — approved packages are extracted into
node_modules/and stored in the content-addressed store at~/.ara/store/. - Lock — the fully resolved dependency graph is written to
ara.lockfor reproducible future installs.
ara install <spec>), the same pipeline applies per-package, then package.json and ara.lock are updated at the end.
If a
ara.lock already exists and every entry matches the resolved graph, and every package directory is present in node_modules/, Ara exits early with “Lockfile is up to date. Nothing to install.” — no network requests are made.Examples
Manifest merging
Ara uses a hybrid manifest strategy:package.json— source of truth fordependencies,devDependencies,peerDependencies,optionalDependencies,scripts, andworkspaces.ara.toml— optional file for advanced settings only ([security]thresholds,[build]profiles). Dependency and script fields inara.tomlare ignored whenpackage.jsonis present.
Workspace support
Projects with aworkspaces field in package.json are fully supported. Workspace members are installed as live symlinks — changes to a member’s source files are immediately visible to consumers without reinstalling.