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).