profiles/<your-nick>/ for sharing via PR. The model is “portable identity”: the brand voice you tuned, the personas you built, the reference plates you locked, the templates you extracted from your wins, all bundled in one folder that other Ralphy users can clone, import, and extend. Profiles are how the community grows; they’re also how you carry your setup between machines without losing the master shots.
What lives in a profile
profiles/<nickname>/ mirrors the layout of workspace/ but selectively. The export defaults skip renders and intermediate video clips because those are heavy and rarely useful to a recipient. You can include them with a flag if you want a fully-reproducible PR.
| Folder | In default export? | Notes |
|---|---|---|
brands/ | Yes | Logo, palette, tone, default persona pointer |
personas/ | Yes | Archetype, voice id, master shot |
references/ | Yes | Pulled URLs, design tokens, blueprints |
templates/ | Yes | Workspace-local templates you extracted |
projects/ | Yes (metadata + scenarios + manifests) | Logs and .json files; renders stripped by default |
projects/*/render/ | No (default) | Final mp4s. Add with --include-renders. |
projects/*/assets/*.mp4 | No (default) | Intermediate video clips. Add with --include-videos. |
.ralph/asset-cache/ | No | Auto-pulls from ralphy-assets companion repo on import |
Exporting
--dry-run to actually copy workspace/ → profiles/alex/ and commit the result to git. The export is non-destructive — your workspace stays as it is.
Your nick. Becomes the folder name under
profiles/.Include
render/final.mp4 and other render outputs. Heavy; opt in.Include every
.mp4 and .mov under projects. Heaviest; opt in only for full repro packs.Print what would be copied; do not write.
PROFILE.md summarizing what’s inside — brand count, persona count, template count, project count with statuses. Read it with ralphy profile show <nick>.
Importing someone else’s profile
profiles/alex/ into your local workspace/, but it will not overwrite files that already exist locally. Collisions get skipped with a stderr warning so you can resolve them by hand. The registry (the central index of brands, personas, projects) gets merged too — every entity in the imported profile shows up in your ralphy brand list, ralphy persona list, and so on.
The nick under
profiles/ to import from.Replace existing local files instead of skipping. Use when you want a hard reset to someone else’s setup.
Print what would be copied; do not write.
Listing and inspecting
ralphy profile show <nick> prints the profile’s PROFILE.md so you can read the description before importing.
Sharing via PR
The whole point ofprofiles/ being a committed folder is that it travels through git. Typical share workflow:
ralphy profile export <your-nick>to land everything underprofiles/<your-nick>/.- Review the diff. Check that no
.env, no API keys, no PII slipped in. (The export is selective about.envfiles, but a manual sanity check costs nothing.) git add profiles/<your-nick>/and commit.- Push and open a PR on the
ugc-clirepo. - Once merged, other users can
git pullandralphy profile import <your-nick>to grab your setup.
ralphy-assets companion repo, which Ralphy auto-pulls on import via the SHA-256-verified asset cache at workspace/.ralph/asset-cache/. Your PR stays small; the heavy assets stay where they belong.
Why profiles exist
Three reasons, in order of how often each one bites:- Portability between machines. You set up Ralphy on your laptop, you tuned a persona for three months, the laptop dies. Without a profile, you’d start from scratch. With a profile committed to your fork of
ugc-cli, yougit pullandralphy profile import <your-nick>on the new machine and you’re back. - Team sharing. Two creators on the same team share a brand and a persona. One exports a profile; the other imports it. Both teammates’ projects pick up the brand’s palette and tone without retyping.
- Community templates with provenance. When you extract a template from a successful project (
ralphy template create --from-project <id>), the template lives underworkspace/templates/. Bundle it into your profile and the community canimportyour workflow with the master shots intact — not just the template definition. That’s why the showcase projects underralphy-assetsship as profiles, not just templates.
What profiles are not
A profile is not a backup tool. It captures the durable parts of your workspace — the entities you’d want to recreate. It does not capture in-flight renders, daemon job queues, or local-only scratch files. For real backup, use whatever you use for the rest of your dotfiles. A profile is also not a permission grant. Importing someone’s profile gives you their brand and persona definitions, not their API keys. You need your ownOPENROUTER_API_KEY and ELEVENLABS_API_KEY to actually generate anything (see Setup and doctor).
Related
- Batches — a common source of profile-worthy outputs
- Brands, personas, refs — the entities profiles carry
- Templates concept — workspace-local templates ship via profiles
cli/commands/profile.ts— source of truthralphy-assets— companion repo for heavy assets