Ara embraces a hybrid manifest architecture designed to maximize compatibility with the JavaScript ecosystem while enabling advanced security and build controls. Every project starts with a standardDocumentation 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 — no migration required. If you need to enforce security thresholds or hermetic build profiles, you add an ara.toml alongside it. The two files are independent: ara.toml never stores dependencies or scripts, and package.json never needs to know that Ara exists.
package.json — Primary Manifest
package.json is the absolute source of truth for your project identity, dependencies, and scripts. Ara reads it natively using the same field names as npm and Yarn. When you run ara add zod, Ara writes directly to your package.json, keeping it as the canonical record of what your project depends on.
Fields Ara reads
The package name. Defaults to
"project" if absent or empty.The package version as a semver string. Defaults to
"0.0.0" if absent or empty.Production dependencies. Values are semver ranges or
workspace: protocol strings (e.g. "^3.0.0", "workspace:^"). Ara maps these to dependency kind prod.Development-only dependencies. Ara maps these to dependency kind
dev.Peer dependencies expected to be provided by the consumer. Ara maps these to dependency kind
peer.Optional dependencies that Ara will attempt to install but won’t fail on if absent. Ara maps these to dependency kind
optional.Named shell commands run via
ara run <name>. All script names and their commands are preserved and exposed to the runner.Glob patterns identifying workspace member directories (e.g.
["packages/*", "apps/*"]). Also accepts the { "packages": [...] } object form used by some tools. Ara discovers members by expanding these globs at install time.Example package.json
Workspace protocol
Any dependency version prefixed withworkspace: is resolved against a local workspace member instead of the npm registry. Ara creates a live symlink in node_modules/<name> pointing to the member directory — changes to the member’s source files are immediately visible to consumers without reinstalling.
| Version string | Meaning |
|---|---|
workspace:* | Always resolves to the local workspace member |
workspace:^ | Resolves locally; replaced with ^<version> on publish |
workspace:1.2.3 | Pins to an exact version within the workspace member |
Unknown fields in
package.json (such as description, main, private, license, and others) are preserved verbatim when Ara updates the file. Ara never strips fields it doesn’t understand.ara.toml — Advanced Configuration
ara.toml is an optional file placed in the same directory as package.json. It exists solely for Ara-specific features that have no equivalent in the npm ecosystem: security thresholds and hermetic build options. It does not store dependencies, scripts, or workspace members — those always live in package.json.
[security] section
The [security] section controls how Ara’s built-in security scanner behaves when it detects suspicious patterns in a package’s source files.
The minimum severity level that triggers a warning or prompt. Findings below this level are silently allowed; findings at or above it produce a prompt (or fail in
--non-interactive mode).Accepted values (in ascending severity order): "low", "medium", "high", "critical".If omitted, Ara warns on all findings regardless of severity.When
true, Ara always prompts you to review a package before installing it, even if the scanner found no issues. Useful for high-security environments where every new dependency should be explicitly approved.Defaults to false.[build] section
The [build] section controls sandbox and caching behavior when running scripts with ara run.
When
true, ara run defaults to the hermetic sandbox profile, which restricts the process to a minimal syscall set with no network access and a deterministic clock. This ensures builds are reproducible across machines.Defaults to false. Can be overridden per invocation with --profile.When
true, Ara prefers packages already in the local content-addressable store over fetching from the network. If a required package is not cached, Ara fails rather than reaching out.Defaults to false.The hermetic sandbox uses Linux seccomp-BPF and is only enforced on x86_64 Linux. On macOS and Windows,
ara run degrades to running scripts without sandbox restrictions regardless of this setting.Complete ara.toml example
The following file shows every supported ara.toml option together with inline comments explaining each choice.
Using both files together
A typical project with custom security settings looks like this on disk:package.json first, then merges settings from ara.toml if it exists. The two files are completely independent — you can add or remove ara.toml at any time without touching your dependencies.
- package.json
- ara.toml
ara install will warn on High and Critical findings while silently allowing Low ones, and ara run build will execute inside the hermetic sandbox by default.