malv install
Download and install apps from the MALV registry. This fetches published apps so you can use them in your project.
Usage
# Install all registry apps from malv.json
malv install
# Install a specific app (latest version)
malv install @malv/gmail
# Install with specific version
malv install @malv/[email protected]
# Install with semver range
malv install @malv/gmail@^1.0.0
# Install multiple apps
malv install @malv/gmail @malv/calendar @acme/tool
Options
| Option | What It Does |
|---|---|
--force, -f |
Re-download even if version exists locally |
--dry-run |
Show what would be installed without downloading |
--verbose, -v |
Show detailed progress |
How It Works
- Reads
malv.jsonfor apps with semver versions - Checks local cache (
malv_systems/) for existing installations - Resolves version ranges to exact versions via the registry
- Downloads files with integrity verification
- Updates
malv.lockwith resolved versions
Version Formats
| Format | Example | What It Installs |
|---|---|---|
| Exact | 1.2.3 |
Exactly version 1.2.3 |
| Caret | ^1.2.0 |
Latest compatible (>=1.2.0 <2.0.0) |
| Tilde | ~1.2.0 |
Latest patch (>=1.2.0 <1.3.0) |
| Latest | latest |
Most recent published version |
| Range | >=1.0.0 <2.0.0 |
Latest within range |
Output
$ malv install
Resolving versions...
@malv/gmail ^1.0.0 → 1.2.3
@malv/calendar ^2.0.0 → 2.1.0
Downloading...
✓ @malv/[email protected] (15 files, 24.5 KB)
✓ @malv/[email protected] (12 files, 18.2 KB)
✓ Installed 2 apps
The Lock File
Installation creates or updates malv.lock:
{
"lockfileVersion": 1,
"generatedAt": 1703000000000,
"systems": {
"@malv/gmail": {
"version": "1.2.3",
"resolved": "https://registry.malv.ai/...",
"integrity": "sha256-...",
"files": {
"package.json": "sha256-...",
"tools.json": "sha256-..."
}
}
}
}
The lock file ensures reproducible installs. Commit it to version control.
Installation Location
Apps are downloaded to malv_systems/:
malv_systems/
├── @malv-gmail/ # @malv/gmail (slash → dash)
│ ├── package.json
│ ├── tools.json
│ └── dist/
└── @malv-calendar/
└── ...
Workspace Integration
Add malv_systems/ to your package.json workspaces to install dependencies:
{
"workspaces": ["packages/*", "malv_systems/*"]
}
Then run yarn install after malv install to install each app's dependencies.
Private Apps
Private apps require authentication:
# Log in first
malv login
# Then install
malv install @my-org/private-app
You must be a member of the organization that owns the app.
Dry Run
Preview what would be installed:
$ malv install --dry-run
Would install:
@malv/gmail ^1.0.0 → 1.2.3
@malv/calendar ^2.0.0 → 2.1.0 (already cached)
No changes made.
Force Reinstall
Re-download apps even if they're cached:
malv install --force
Useful when you suspect a corrupted download or want to verify integrity.
Common Issues
Version not found
Error: Version 1.0.0 of @malv/gmail not found
Check that the version exists in the registry. Use latest or a semver range.
Network error
Error: Failed to fetch @malv/gmail
Check your internet connection. The registry may be temporarily unavailable.
Permission denied
Error: You don't have access to @my-org/private-app
Log in with malv login and ensure you're a member of the organization.
Related Commands
- malv uninstall - Remove installed apps
- malv upgrade - Upgrade to latest versions
- malv login - Authenticate for private apps