Ara works with any existingDocumentation 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.
package.json project — no migration step, no new manifest format to learn. All you need is a directory with a package.json and a working internet connection. This guide walks you through installing your dependencies, adding a new package, understanding the security prompts you will see along the way, and running a script.
Point Ara at an existing project
Start from any npm project. If you do not have one handy, create a minimal one:Ara reads
package.json natively as its primary source of truth. You do not need an ara.toml to get started — that file is only for advanced configuration like security thresholds and hermetic build profiles.Run ara install
From the project root, run:Ara works through the install in several phases:
- Parse — reads
package.jsonfor dependencies, devDependencies, and workspace globs. - Expand — globs
workspacespatterns and creates implicit deps for each discovered member. - Resolve — applies Minimum Version Selection (MVS) to produce a deterministic dependency graph.
- Fetch — downloads tarballs from the npm registry (or other sources); workspace members become live symlinks.
- Analyze — scans every JS/TS file in every fetched package against 18 security patterns.
- Prompt — asks for your approval on any findings (unless
--non-interactive). - Extract — unpacks approved packages into
node_modulesand the content-addressed store. - Lock — writes
ara.lockwith the full resolved graph.
On a project with no suspicious dependencies, Ara completes silently. The prompts only appear when the analyzer finds something worth flagging.
Understand the security prompts
If any fetched package triggers a finding, Ara pauses and shows you exactly what it found before proceeding. For example, a package that uses You choose how to handle each flagged package individually. The finding details include the pattern ID, its severity (
eval() and reads a credential environment variable would produce output like this:critical, high, medium, low), and the exact file and line number.In CI pipelines, pass --non-interactive to skip prompts and install everything:Add a new package with ara add
To install a package and save it to Ara resolves the latest version from the npm registry, fetches and scans it, prompts for approval if needed, extracts it to
package.json in one step, use ara add:node_modules, and updates both package.json and ara.lock.You can specify an exact version, a range, or a dev dependency:ara install zod is an alias for ara add zod. Both spellings work.Inspect the lockfile
After a successful install, Ara writes The lockfile is a TOML file. Each installed package has an entry like this:Every entry records the resolved
ara.lock in the project root. Commit this file to your repository — it guarantees that any other machine or CI run produces exactly the same dependency graph.version, its source (registry, workspace, git, etc.), a package_hash for the tarball stored in the content-addressed store, and an integrity hash for verification. There are no floating versions and no ^ ranges in the lockfile — everything is pinned.Run a script with ara run
If your By default this uses the The four profiles are:
package.json defines scripts, you can run them through Ara:runtime (open) sandbox profile — no restrictions. On Linux, you can opt into stricter profiles:| Profile | What it allows |
|---|---|
open (or runtime) | No restrictions — full access to the system |
restricted | Safe syscalls only, no network, no subprocess spawning |
hermetic | Minimal syscall set, no network, deterministic clock |
custom | User-defined restrictions configured via ara.toml |
What you now have
After following this guide your project directory looks like this:ara add, reviewed a content-addressed lockfile, and run a script through the sandboxed executor.
Next steps
CLI Reference
Full documentation for every
ara subcommand, flag, and spec format.Security Overview
Learn what the analyzer detects, how findings are reported, and how to configure thresholds.
Lockfile Format
Understand the
ara.lock schema, graph hashes, and how reproducibility is guaranteed.Migrating from npm
Drop-in compatibility notes and the differences you will notice coming from npm or pnpm.