MontajMontajdocs

Profile Assets

Build a per-profile library of reusable files — logos, bumpers, B-roll — that the agent automatically sees when you start a new project.

Profile Assets

A profile asset library lets you collect the files you reach for on every project — channel logos, end-card bumpers, signature sound effects, B-roll clips — and attach them to a creator profile. When you start a new project with that profile, the agent gets a snapshot of your library and your hand-written creative rules, without you having to re-explain them every time.


What it is

Each profile gets an assets/ directory and a manifest:

~/.montaj/profiles/{name}/assets/
  bumper.mov
  logo.png
  ...
  manifest.json

manifest.json holds two things:

  1. Profile-wide notes — free-form rules you want the agent to follow on every project ("Always end with bumper.mov. Keep colors warm.").
  2. Per-file metadata — a description and optional tags for each file.
{
  "notes": "Always end with bumper.mov. Keep color grading warm.",
  "files": {
    "bumper.mov": {
      "description": "End-card bumper, 3 seconds",
      "tags": ["branding", "end-card"]
    },
    "logo.png": {
      "description": "Channel logo, white on transparent",
      "tags": ["branding"]
    }
  }
}

Why it exists

Without this, the agent only knows what's in the current project. It has no memory of your go-to files or rules. With a profile attached, it gets both — as a profileSnapshot baked into project.json at init time.

The snapshot is pinned at creation — editing your profile after a project is created doesn't change what the agent already has. This keeps projects stable and reproducible.


Adding assets via the UI

  1. Open Montaj → Profiles tab
  2. Pick a profile
  3. Click the Assets tab
  4. Drop files into the upload area (or click to browse)
  5. Add a description for each file — be specific, the agent reads this
  6. Optionally add comma-separated tags
  7. Edit the Profile-wide notes field at the top of the panel — write the rules you always want the agent to follow

Changes are saved to manifest.json immediately.


Managing assets via CLI

# List all assets in a profile
montaj profile asset list <profile>

# Add a file (copies it to the assets dir and registers it in the manifest)
montaj profile asset add <profile> ./bumper.mov --description "End-card bumper, 3 seconds" --tags branding,end-card

# Remove an asset
montaj profile asset rm <profile> bumper.mov

# Read the profile-wide notes
montaj profile asset notes <profile> --get

# Set the profile-wide notes
montaj profile asset notes <profile> --set "Always end with bumper.mov. Keep colors warm."

You can also edit manifest.json directly — it's plain JSON. The UI and CLI both read from and write to the same file.


Including assets in a project

Having an asset in the library doesn't automatically add it to a project — you choose which ones to include.

When you open a project that has a profile attached, the editor side panel shows the profile's asset library. Each file has a + Include button. Clicking it:

  1. Copies the file into the project workspace
  2. Appends it to project.assets[] in project.json

Already-included files show a checkmark instead of the button.

From that point, the agent can reference the file by its src path in project.assets[] — same as any other project asset.

The agent never includes assets on your behalf without explicit instruction. File selection is always human-driven.


What the agent sees

When you run montaj run or montaj init with --profile <name>, project.json gets a profileSnapshot field:

{
  "profile": "thesampadilla",
  "profileSnapshot": {
    "name": "thesampadilla",
    "notes": "Always end with bumper.mov. Keep color grading warm.",
    "availableAssets": [
      { "filename": "bumper.mov", "description": "End-card bumper, 3 seconds", "tags": ["branding", "end-card"] },
      { "filename": "logo.png", "description": "Channel logo, white on transparent", "tags": ["branding"] }
    ]
  }
}

The agent reads notes as binding creative rules and availableAssets as a menu of files you've curated. It won't auto-include files, but it knows what's available and can refer to them by name if you ask.


style_profile.md vs profile notes

A profile has two sources of creative guidance:

SourceWhat it isWho writes it
style_profile.mdAnalysis-derived patterns from your sample videos — pacing, color, cut frequencyGenerated by montaj profile analyze
Profile notes (in manifest.json)Hand-curated rules you wrote, tied to the asset libraryYou

When they conflict, your notes win. style_profile.md describes observed patterns; notes are explicit instructions.

Example: style_profile.md might say "average video ends at 45 seconds" (a pattern it measured). Your notes might say "always end with bumper.mov" (a rule you set). The agent follows the rule.


Limits

  • 2 GB per file — for larger files, add them to the project workspace directly.
  • Local only in v1 — the assets directory lives on your machine; no cloud sync yet.
  • Works with all project types (editing, music_video, ai_video, carousel).