Reference
Manifest and project files
The fields of brico.manifest.json, brico.json and the global config file.
BricoWerx uses three JSON files:
| File | Where | Owned by |
|---|---|---|
brico.manifest.json | Inside every Vault snapshot | The brick: written by capture, read by add, upgrade and doctor |
brico.json | Your project root | Your project: which bricks are installed, and where |
~/.brico/config.json | Your home directory | You: Vault location, defaults and publish repository |
brico.manifest.json
The contract every brick carries. capture generates it, and you can edit it before publishing a new version. The JSON Schema is docs/manifest.schema.json in the repository.
Required fields
| Field | Type | Description |
|---|---|---|
schemaVersion | integer ≥ 1 | Version of the manifest format, separate from the brick’s own version |
name | string | Lowercase letters, digits and hyphens, up to 64 characters, unique in the Vault. An @scope/ prefix is allowed and will be required for the public registry |
version | semver | The brick’s version |
framework | string | nest or next |
language | string | Currently always typescript |
files | string[] | Brick-relative paths included in the snapshot |
visibility | string | public or private |
Optional fields
| Field | Type | Description |
|---|---|---|
description | string | One line, used by search |
tags | string[] | Used by search and the terminal UI filter |
author | string | Defaults to author in the global config |
license | string | SPDX identifier |
createdAt / updatedAt | string | ISO timestamps |
dependencies | object | npm package → semver range, read from the source project’s package.json |
peerDependencies | object | Packages the host must provide. Never filled in by capture; write them by hand |
bricoDependencies | string[] | Other bricks this one needs. Recorded, not yet resolved by add |
env | object[] | Environment variables: { name, required, description?, default?, secret? } |
exports | string[] | Public entry points, such as ui/index.ts |
compatibility | object | framework, supportedVersions (semver range), adapters, language |
hooks | object | install, remove, migrate, postAdd, postBuild command lists. Recorded only, never run yet |
installPath | string | Where the files land in a target, relative to its root. Overrides the adapter default |
documentation | string | Link or path to further documentation |
{
"schemaVersion": 1,
"name": "auth",
"description": "JWT authentication with Passport and bcrypt",
"version": "0.2.0",
"framework": "nest",
"language": "typescript",
"author": "platform-team",
"visibility": "private",
"tags": ["security", "jwt", "auth"],
"dependencies": {
"@nestjs/jwt": "^10.2.0",
"@nestjs/passport": "^10.0.3",
"bcrypt": "^5.1.1"
},
"env": [
{ "name": "JWT_SECRET", "required": true, "secret": true },
{ "name": "JWT_EXPIRES_IN", "required": false, "default": "1h" }
],
"exports": ["auth.module.ts"],
"files": ["auth.module.ts", "auth.service.ts", "jwt.strategy.ts"],
"compatibility": { "framework": "nest", "supportedVersions": ">=10.0.0" },
"installPath": "src/auth"
}brico.json
Created by the first brico add, and updated by add, upgrade and remove. Commit it.
{
"framework": "nest",
"adapter": "nest",
"modules": [
{
"name": "auth",
"version": "0.2.0",
"installPath": "src/auth",
"addedAt": "2026-09-14",
"updatedAt": "2026-10-02"
}
]
}| Field | Description |
|---|---|
framework | Detected framework |
adapter | Adapter that installed the bricks |
modules[].name / version | What is installed. upgrade compares this version with the Vault |
modules[].installPath | Where it was installed. remove deletes this directory |
modules[].addedAt / updatedAt | When it was added, and last upgraded |
~/.brico/config.json
{
"vaultPath": "/Users/you/.brico/vault",
"defaultVisibility": "private",
"author": "platform-team",
"publishRepo": "git@github.com:acme/team-vault.git"
}| Key | Description | Overridden by |
|---|---|---|
vaultPath | Vault location | --vault, BRICO_VAULT |
defaultVisibility | Visibility for new captures | --visibility |
author | Author written into new manifests | — |
publishRepo | Main repository for publish and pull. Saved on the first publish | --repo, -l, BRICO_PUBLISH_REPO |
All environment variables are listed in Configuration.