framechord / field guide
THE FRAMECHORD PLAYBOOK

From an idea
to media.

One command-line toolkit for the images, voices and sounds your project needs. Start with a brief. Preview the request. Make something worth reviewing.

ImagesInfographicsSpeechPodcastsMusicSound effects
YOUR FIRST PREVIEW
# Describe the image. Pick the model.
framechord generate image \
  --provider openai \
  --model gpt-image-2.5-flare \
  --prompt 'A tiny garden at sunrise' \
  --output garden.png \
  --dry-run --json
Preview first · no generation call
01 BRIEF02 PREVIEW03 GENERATE04 REVIEW
A PRACTICAL REFERENCE

Copy a command. Open its input files. Or give the same task to your agent.

START WITH A REAL TASK

What do you want to make?

Eight practical scenarios, from a single narrated article to a package of images and audio. Choose a task to see its inputs, deliverables, exact commands and review steps.

SCENARIO 01

Turn an article into audio

For a blog, newsletter or an audio version of a lesson.

Start with
A local article text file and a delivery brief.
You get
One narration WAV; long scripts also retain individual clips.
Walk through this scenario
  1. Prepare. Download the embedded examples, extract them into your project and review the scenario files below.
  2. Preview. Run these offline checks from the project root.
Preview command
framechord generate speech \
  --provider openai --model gpt-4o-mini-tts --voice alloy \
  --text-file examples/article.txt --brief-file examples/narration.md \
  --format wav --output outputs/article.wav --dry-run --json
Open the scenario files
article.txt
A small garden can begin with a single pot. Choose a bright spot, check the soil before watering, and watch how the plant responds. A few minutes of attention each day can help you learn what it needs.
narration.md
Read clearly, with a calm, warm delivery. Preserve every word of the supplied article.

Generate. When the effective inputs and limits are right, remove --dry-run from the generation or batch command. This can incur provider charges. Use returned artifact paths to locate results.

Review. Listen against the original: check every word, names, numbers and sentence endings. A saved WAV does not prove an accurate reading.

Give your agent the task

Scenario agent prompt
Use FrameChord to narrate examples/article.txt exactly. Use the delivery notes in examples/narration.md. Preview OpenAI gpt-4o-mini-tts with alloy, show the output path and limits, then generate only when authorized. Report the final WAV, any chunks and pronunciation concerns.
Open the detailed workflow →
SCENARIO 02

Produce a podcast episode package

For an interview-style explainer with an introduction and cover art.

Start with
Two exact speaker scripts, an image brief, a music brief and a batch manifest.
You get
An assembled episode WAV, the original speech clips, a cover PNG and a separate ten-second intro MP3.
Walk through this scenario
  1. Prepare. Download the embedded examples, extract them into your project and review the scenario files below.
  2. Preview. Run these offline checks from the project root.
Preview command
framechord validate --kind batch examples/podcast-kit.yaml --json
framechord batch --manifest examples/podcast-kit.yaml \
  --limits-file examples/limits.yaml \
  --output-dir outputs/podcast-kit --dry-run --json
Open the scenario files
podcast-kit.yaml
schema_version: 1
jobs:
  - image.yaml
  - podcast.yaml
  - music.yaml
podcast.yaml
schema_version: 2
id: garden-podcast
media: podcast
brief: podcast.md
locale: en-US
turns:
  - id: host-intro
    text_file: host.txt
    selection: {provider: openai, model: gpt-4o-mini-tts}
    settings: {voice: alloy, format: wav}
  - id: guest-answer
    text_file: guest.txt
    selection: {provider: openai, model: gpt-4o-mini-tts}
    settings: {voice: nova, format: wav}
assembly:
  pause_ms: 250
  turn_gain_db: {host-intro: -1}
  loudness_lufs: -19
music.yaml
schema_version: 2
id: garden-intro
media: music
selection: {provider: elevenlabs, model: music_v2_5}
brief: music.md
settings: {format: mp3, duration_seconds: 10, instrumental: true}

Generate. When the effective inputs and limits are right, remove --dry-run from the generation or batch command. This can incur provider charges. Use returned artifact paths to locate results.

Review. Check speaker order and distinct voices, all dialogue, joins and pauses, artwork framing and the music ending.

Give your agent the task

Scenario agent prompt
Produce a podcast asset package with FrameChord using examples/podcast-kit.yaml. Preview all four provider requests with examples/limits.yaml. Keep exact host/guest scripts and save outputs under outputs/podcast-kit. Report the assembled episode, source clips, artwork and separate intro music; do not claim the music has been mixed in.
Open the detailed workflow →
SCENARIO 03

Explain a schedule or set of numbers

For a poster, social graphic, project summary or presentation visual.

Start with
A structured infographic spec with exact copy, values, units and source notes, plus visual direction.
You get
One portrait PNG containing the requested information.
Walk through this scenario
  1. Prepare. Download the embedded examples, extract them into your project and review the scenario files below.
  2. Preview. Run these offline checks from the project root.
Preview command
framechord validate --kind infographic examples/infographic.yaml --json
framechord generate --job examples/infographic-job.yaml \
  --output outputs/garden-schedule.png --dry-run --json
Open the scenario files
infographic-job.yaml
schema_version: 2
id: garden-schedule
media: infographic
selection: {provider: openai, model: gpt-image-2.5-flare}
spec: infographic.yaml
settings: {format: png, size: 1024x1536, image_quality: medium}
infographic.yaml
schema_version: 1
title: "A little time for your garden"
audience: "New home gardeners"
key_message: "Make space for three short weekly sessions."
canvas: "1024x1536"
layout: "Title at top; three stacked cards; source note at bottom."
sections:
  - heading: "Monday"
    copy: "Check the soil and water if needed."
    values:
      - label: "Time"
        value: "5"
        unit: "minutes"
        source: "Illustrative weekly schedule"
  - heading: "Wednesday"
    copy: "Look for new leaves and check the light."
    values:
      - label: "Time"
        value: "5"
        unit: "minutes"
        source: "Illustrative weekly schedule"
  - heading: "Saturday"
    copy: "Tidy the pots and note what changed."
    values:
      - label: "Time"
        value: "10"
        unit: "minutes"
        source: "Illustrative weekly schedule"
visual_brief: infographic.md
references: []
infographic.md
# Visual direction
Use a warm off-white background, dark green text, large readable headings and
three stacked cards. Add simple plant icons. Keep generous margins.
Render the title, copy, values, units and source note exactly as specified.
The schedule is an illustrative example, not measured research.

Generate. When the effective inputs and limits are right, remove --dry-run from the generation or batch command. This can incur provider charges. Use returned artifact paths to locate results.

Review. Compare every value, unit, heading and source note with the YAML at full image size. Incorrect data means the output needs revision.

Give your agent the task

Scenario agent prompt
Create a schedule infographic with FrameChord from examples/infographic-job.yaml. Keep Monday 5 minutes, Wednesday 5 minutes and Saturday 10 minutes exact. Preserve the illustrative source note. Preview before generation and compare the resulting text with the source spec.
Open the detailed workflow →
SCENARIO 04

Create a visual and audio lesson

For a short course unit that learners can look at or listen to.

Start with
An infographic specification and a separately authored narration covering the same points.
You get
A schedule PNG and a matching narrated WAV generated as independent jobs.
Walk through this scenario
  1. Prepare. Download the embedded examples, extract them into your project and review the scenario files below.
  2. Preview. Run these offline checks from the project root.
Preview command
framechord validate --kind batch examples/lesson-kit.yaml --json
framechord batch --manifest examples/lesson-kit.yaml \
  --limits-file examples/limits.yaml \
  --output-dir outputs/lesson-kit --dry-run --json
Open the scenario files
lesson-kit.yaml
schema_version: 1
jobs:
  - infographic-job.yaml
  - lesson-speech.yaml
lesson-speech.yaml
schema_version: 2
id: garden-lesson
media: speech
selection: {provider: openai, model: gpt-4o-mini-tts}
brief: narration.md
text_file: lesson-script.txt
settings: {format: wav, voice: alloy}
locale: en-US
lesson-script.txt
Make time for three short garden check-ins each week. On Monday, spend five minutes checking the soil and watering if needed. On Wednesday, take five minutes to look for new leaves and check the light. On Saturday, spend ten minutes tidying the pots and noting what changed. This is an illustrative schedule; adapt it to your plants and conditions.

Generate. When the effective inputs and limits are right, remove --dry-run from the generation or batch command. This can incur provider charges. Use returned artifact paths to locate results.

Review. Check that the spoken days, activities and durations agree with the image. Provide the text transcript alongside the files.

Give your agent the task

Scenario agent prompt
Use FrameChord to generate examples/lesson-kit.yaml as a bounded batch. Preview first. Preserve the same schedule in the infographic and narration, keep the transcript, and save under outputs/lesson-kit. Report any inconsistency between visual and spoken facts.
Open the detailed workflow →
SCENARIO 05

Reuse characters across a story

For an illustrated story, mascot series or recurring characters in several scenes.

Start with
Your accepted character folders with compatible original-model references, and a new scene brief.
You get
A new scene PNG using the saved cast; canonical characters remain unchanged.
Walk through this scenario
  1. Prepare. Download the embedded examples, extract them into your project and review the scenario files below.
  2. Preview. Run these offline checks from the project root.
Preview command
framechord validate --kind job examples/cast.yaml --json
framechord generate --job examples/cast.yaml \
  --output outputs/forest-play.png --dry-run --json
Open the scenario files
cast.yaml
schema_version: 2
id: forest-play
media: image
brief: forest.md
cast:
  - alias: mira
    character: ../framechord/characters/mira/character.yaml
  - alias: kito
    character: ../framechord/characters/kito/character.yaml
settings:
  format: png
  size: 1536x1024
  image_quality: medium
# Requires both saved characters with accepted references from compatible models.
# These settings assume originals made with OpenAI gpt-image-2.5-flare.
forest.md
# A shared forest scene
Mira and Kito play together with fallen leaves in a quiet forest clearing.
Preserve each selected original's face, hair, head/body proportions, materials,
colors and distinguishing accessories. Show both full bodies with ample margins.
Do not blend their identities or change their apparent ages.

Generate. When the effective inputs and limits are right, remove --dry-run from the generation or batch command. This can incur provider charges. Use returned artifact paths to locate results.

Review. Compare every character with its accepted originals: face, eye spacing, hair, head/body ratio, limbs, materials and accessories. Reject drift.

Give your agent the task

Scenario agent prompt
Use my accepted Mira and Kito profiles with examples/cast.yaml to create a shared forest scene. Validate the original provider/model bindings and references before any call. Keep the identities separate and compare the result with both originals. Report drift as needs_revision; do not accept the scene as a new reference.
Open the detailed workflow →
SCENARIO 06

Make visuals and sounds for an app

For a garden app’s empty screen and a gentle notification.

Start with
A purpose-specific illustration brief and a short sound-effect brief.
You get
A centered empty-state PNG and a separate three-second notification MP3.
Walk through this scenario
  1. Prepare. Download the embedded examples, extract them into your project and review the scenario files below.
  2. Preview. Run these offline checks from the project root.
Preview command
framechord validate --kind batch examples/app-kit.yaml --json
framechord batch --manifest examples/app-kit.yaml \
  --limits-file examples/limits.yaml \
  --output-dir outputs/app-kit --dry-run --json
Open the scenario files
app-kit.yaml
schema_version: 1
jobs:
  - empty-state.yaml
  - sfx.yaml
empty-state.yaml
schema_version: 2
id: garden-empty-state
media: image
selection: {provider: openai, model: gpt-image-2.5-flare}
brief: empty-state.md
settings: {format: png, size: 1024x1024, image_quality: medium}
empty-state.md
# Empty garden illustration
Purpose: an empty-state illustration for a garden tracking app before a user adds a plant.
Subject: one empty terracotta pot with a small hand trowel beside it.
Style: simple rounded shapes, warm cream background, forest green and terracotta accents.
Composition: centered with generous margins. No text, logo, UI chrome or photograph.
sfx.yaml
schema_version: 2
id: garden-notification
media: sfx
selection: {provider: elevenlabs, model: eleven_text_to_sound_v2}
brief: sfx.md
settings: {format: mp3, duration_seconds: 3}

Generate. When the effective inputs and limits are right, remove --dry-run from the generation or batch command. This can incur provider charges. Use returned artifact paths to locate results.

Review. Test the image in the intended screen, check empty space for UI text, and listen to the sound at its intended playback volume.

Give your agent the task

Scenario agent prompt
Create media assets for a gardening app using FrameChord and examples/app-kit.yaml. Preview first, then save the approved empty-state illustration and short notification sound under outputs/app-kit. Keep UI text out of the image and report both file paths.
Open the detailed workflow →
SCENARIO 07

Create a short original jingle

For an audio identity, campaign concept or playful podcast ending.

Start with
Original lyrics and a music brief describing mood, instruments and ending.
You get
A vocal MP3, requested at twenty seconds.
Walk through this scenario
  1. Prepare. Download the embedded examples, extract them into your project and review the scenario files below.
  2. Preview. Run these offline checks from the project root.
Preview command
framechord generate music \
  --provider elevenlabs --model music_v2_5 \
  --brief-file examples/vocal.md --duration-seconds 20 --vocal \
  --format mp3 --output outputs/garden-jingle.mp3 --dry-run --json
Open the scenario files
vocal.md
# Original short song
Mood: light, playful acoustic folk. One clear lead singer.
Duration: about twenty seconds; a short intro and a resolved ending.
Sing these original lyrics in this order:

One little seed, a patch of sun,
A quiet morning has begun.
Leaf by leaf, we watch it grow,
Small beginnings, nice and slow.

Do not add verses. Review the actual audio for omitted or changed lyrics.

Generate. When the effective inputs and limits are right, remove --dry-run from the generation or batch command. This can incur provider charges. Use returned artifact paths to locate results.

Review. Listen for exact lyrics, omitted or extra lines, intelligibility and a clean ending. Check the measured duration rather than assuming it is exact.

Give your agent the task

Scenario agent prompt
Use FrameChord to generate a short original jingle from examples/vocal.md with ElevenLabs music_v2_5. Preview the twenty-second vocal request, then save approved output to outputs/garden-jingle.mp3. Compare sung words with the supplied lyrics and report changes.
Open the detailed workflow →
SCENARIO 08

Deliver narration in two languages

For English and Spanish versions of a product explanation or article.

Start with
Two reviewed scripts, each with explicit language direction and locale.
You get
Separate English and Spanish narration WAVs, generated in parallel.
Walk through this scenario
  1. Prepare. Download the embedded examples, extract them into your project and review the scenario files below.
  2. Preview. Run these offline checks from the project root.
Preview command
framechord validate --kind batch examples/bilingual.yaml --json
framechord batch --manifest examples/bilingual.yaml \
  --limits-file examples/limits.yaml \
  --output-dir outputs/bilingual --dry-run --json
Open the scenario files
bilingual.yaml
schema_version: 1
jobs:
  - speech.yaml
  - speech-es.yaml
speech-es.yaml
schema_version: 2
id: garden-narration-es
media: speech
selection: {provider: openai, model: gpt-4o-mini-tts}
brief: narration-es.md
text_file: article-es.txt
settings: {format: wav, voice: alloy}
locale: es-419
article-es.txt
Un pequeño jardín puede comenzar con una sola maceta. Elige un lugar luminoso, revisa la tierra antes de regar y observa cómo responde la planta. Unos minutos de atención cada día pueden ayudarte a descubrir lo que necesita.
narration-es.md
Lee el texto exactamente como está escrito, en español latinoamericano, con un tono cálido y tranquilo. No agregues comentarios ni traduzcas el guion.

Generate. When the effective inputs and limits are right, remove --dry-run from the generation or batch command. This can incur provider charges. Use returned artifact paths to locate results.

Review. Have a fluent reviewer check meaning, pronunciation, names and pacing in each language. A shared voice ID does not establish equal perceived identity or accent.

Give your agent the task

Scenario agent prompt
Create English and Latin American Spanish narration using FrameChord and examples/bilingual.yaml. Keep each approved script exact, preview both requests with examples/limits.yaml, and save under outputs/bilingual. Do not translate during synthesis. Report each language’s file path and listening-review status.
Open the detailed workflow →
01 / SETUP

Set up once. Finish at your pace.

A guided terminal checklist with arrow-key choices, search and clear readiness. Initialization stays offline.

  1. Install and start

    Install without Rust or administrator access. Public release downloads do not require GitHub sign-in.

    macOS / Linux
    curl -fsSL https://maxiplux.github.io/framechord/install.sh | sh
    Windows PowerShell
    irm https://maxiplux.github.io/framechord/install.ps1 | iex

    Already downloaded? Run ./framechord install (Windows ./framechord.exe install). It installs in your user bin directory, adds user PATH when needed, and keeps project files and skills untouched. Use --no-modify-path to preserve profiles. Open a new terminal, then initialize your project. See custom install options or manual release downloads.

    Check, update, or restore the preceding binary
    framechord update --check
    framechord update
    framechord update --rollback

    Updates verify GitHub’s SHA-256 digest and executable version before replacement and keep one previous binary for offline rollback. Configuration, provider keys, characters, references, generated media and installed skills are preserved. Skill refresh and project initialization remain explicit. Supported release targets: macOS Apple Silicon, Linux x86-64 and Windows x86-64. Checksums are separate from code signing.

    From the source checkout, install with Cargo. Download native binaries directly from GitHub Releases. CI artifacts remain available for development builds. Binaries include the skills and templates.

    Terminal
    cargo install --path . --locked
    framechord init ./my-project
  2. Choose Recommended setup

    Init reads the chosen project’s .env, creates it when absent, and appends missing GEMINI_API_KEY, OPENAI_API_KEY, FISH_API_KEY, OPENROUTER_API_KEY and ELEVENLABS_API_KEY entries with empty values. Existing values, comments and unrelated entries stay intact. Shell credentials take precedence and are never copied into the file. With no destination, this is the folder where you run the command; an explicit project owns its own .env. On save, both .agents/skills/framechord/ and .claude/skills/framechord/ are installed by default. Select fewer agents with --agents codex or --agents claude. Existing modified skills and character models are preserved.

    If this folder contains the downloaded executable named framechord, start with ./framechord init ./my-project. Setup needs its own framechord/ directory. Setup detects name conflicts before the checklist and offers a project folder; existing files stay untouched. When PATH is omitted, --project selects the destination, otherwise the current folder is used. An explicit init PATH takes precedence. The full destination appears before setup and during save review.

    Google is the default: Nano Banana 2.1 handles images and infographics; Gemini 3.8 Flash TTS uses built-in Kore for speech and podcasts; Lyria 3.5 handles music; Gemini 3.8 Flash handles planning. Set GEMINI_API_KEY to make these defaults locally ready. OpenAI is the second welcome option, or use --preset openai for images, speech with coral, and planning. Standalone effects remain optional with ElevenLabs. Providers never change automatically.

    Use arrows and Enter, type to search, and Escape to return. The wizard loops back to this checklist after every section:

    Setup checklist
    Features and models
    API keys
    Voices
    Agent skills
    Characters (optional)
    Advanced settings
    Review and finish setup
    Save unfinished setup and exit
    Discard changes and exit
  3. Reuse your key and review the voice

    An existing GEMINI_API_KEY is read automatically from the shell or this project’s .env. The default Google voice is Kore; the OpenAI alternative uses coral. Keep the built-in voice or change it in Voices. Missing keys can be entered without echo; values are written only when you save. No provider voices are created and setup makes no network calls.

    Review your choices before saving. Finish requires all enabled features to be locally ready. Save unfinished setup and run init again to resume. Existing configuration, character references and credentials are preserved unless explicitly changed.

  4. Check readiness

    Terminal
    framechord --project ./my-project config status --json
    framechord --project ./my-project config show --json

    Local readiness does not verify authentication, billing, account voice access or media quality. For an explicit read-only authentication check:

    Optional online check
    framechord --project ./my-project doctor --live --provider google --json
For agents: setup without menus

JSON and noninteractive calls never prompt. Read setup_complete and pending_steps: successful scaffold creation can still leave incomplete setup. Use --preset empty for an empty scaffold, or --defaults-file for an exact custom configuration.

Agent commands
framechord init ./my-project --preset recommended --json --non-interactive
framechord init ./openai-project --preset openai --json --non-interactive
framechord --project ./my-project config status --json
framechord --project ./my-project config setup --file my-config.yaml --json
Current stable models and explicit discovery

Only current, reviewed stable model families may submit new provider requests. Older and preview models are unavailable for new generation, planning, reviews and retries. Historical files, receipts and successful results remain readable. A pinned older character needs a new character version with newly accepted references; never change its origin metadata to bypass its model lock.

Model selection
framechord models --media image --recommended
framechord models --provider fish --media speech
framechord models --all --search image
framechord models --live --provider openrouter --media image --sort popular --json

The bundled catalog was verified on October 14, 2026. It is an offline snapshot, not account entitlement or a promise of knowledge about future releases. Explicit live discovery caches a bounded provider listing; it never enables unimplemented models. Popularity, where shown, is provider-reported OpenRouter usage. Initialization never refreshes catalogs. Current GPT Image 2.5 models omit input_fidelity.

openai

  • gpt-image-2.5-flare — image: Fast everyday image generation
  • gpt-image-2.5-flare-2026-09-08 — image: Fast everyday image generation
  • gpt-image-2.5-sunburst — image: Precise image editing and quality
  • gpt-image-2.5-sunburst-2026-09-08 — image: Precise image editing and quality
  • gpt-4o-mini-tts — speech: Current dedicated OpenAI text-to-speech family
  • gpt-4o-mini-tts-2025-12-15 — speech: Current dedicated OpenAI text-to-speech family
  • gpt-6-luna — text: Current planning and review model
  • gpt-6.1-sol — text: Current planning and review model
  • gpt-6-astra — text: Current planning and review model

fish

  • s2.1-pro — speech: Current Fish speech model; requires a selected voice
  • s2.1-pro-free — speech: Current Fish speech model; requires a selected voice
  • drama-3 — speech: Current Fish speech model; requires a selected voice

google

  • gemini-nano-banana-2.1 — image: Current Nano Banana image generation and editing
  • gemini-3.1-flash-image — image: Current Nano Banana image generation and editing
  • gemini-3.1-flash-lite-image — image: Current Nano Banana image generation and editing
  • gemini-3-pro-image — image: Current Nano Banana image generation and editing
  • gemini-3.8-flash-tts — speech: Current stable speech generation
  • gemini-3.8-flash-lite-tts — speech: Current stable speech generation
  • gemini-4-argon — text: Current stable planning and multimodal review
  • gemini-3.8-flash — text: Current stable planning and multimodal review
  • gemini-3.5-flash-lite — text: Current stable planning and multimodal review
  • lyria-3.5 — music: Stable music generation

elevenlabs

  • eleven_v3 — speech: Expressive speech
  • eleven_flash_v2_5 — speech: Current low-latency speech specialist
  • music_v2_5 — music: Current vocal and instrumental music
  • eleven_text_to_sound_v2 — sfx: Current dedicated sound-effects model

openrouter

  • openai/gpt-image-2.5-flare — image: Current routed image generation; identity references are not supported by this adapter
  • openai/gpt-image-2.5-sunburst — image: Current routed image generation; identity references are not supported by this adapter
  • google/gemini-nano-banana-2.1 — image: Current routed image generation; identity references are not supported by this adapter
  • openai/gpt-6-luna — text: Current routed planning model
  • openai/gpt-6.1-sol — text: Current routed planning model
  • google/gemini-3.8-flash — text: Current routed planning model

Download YAML and Markdown examples

02 / THE COMMAND CONTRACT

One pattern, every medium

Tell the CLI what to create, what to read, which model to use, and where the result belongs.

Command pattern — replace the uppercase placeholders
framechord generate MEDIA \
  --provider PROVIDER --model MODEL \
  --brief-file examples/brief.md \
  --output outputs/result.ext \
  --dry-run --json
Choose the right input
OptionUse it for
--prompt / --brief-fileCreative direction. Use one, not both.
--text / --text-fileExact speech. A prompt is not a narration script.
--specStructured infographic copy, numbers, units and layout.
--jobA reusable YAML request, including podcast turns or a cast.
--outputOne final filename. Use --output-dir for a batch or podcast clips.
--dry-runValidate and inspect effective inputs; no provider calls or run creation.
--json --non-interactiveStructured stdout for agents; progress and diagnostics go to stderr.
03 / IMAGE

An image for an article

Create a cover, illustration or standalone visual from a specific creative brief.

Terminal
framechord generate image \
  --provider openai --model gpt-image-2.5-flare \
  --brief-file examples/image.md \
  --size 1536x1024 --image-quality medium --format png \
  --output outputs/garden-cover.png --dry-run --json
Input files · image.md
image.md
# Article cover
Purpose: a calm editorial illustration about urban gardening.
Subject: three terracotta pots with leafy herbs on a sunny balcony.
Composition: wide view with empty space on the left for a separately added title.
Style: soft paper texture, forest green and warm cream. No lettering or logos.
Ask your agent
Agent prompt
Use FrameChord to create an editorial image for an urban gardening article. Read examples/image.md, keep the left side clear for a title, and save to outputs/garden-cover.png. Validate with --dry-run first and show me the resolved provider, model and limits before generation.
04 / INFOGRAPHIC

Make the facts part of the input

An infographic needs an exact content specification as well as visual direction. Keep copy and numeric strings in YAML.

Terminal
framechord validate --kind infographic examples/infographic.yaml --json
framechord generate infographic \
  --provider openai --model gpt-image-2.5-flare \
  --spec examples/infographic.yaml \
  --size 1024x1536 --image-quality medium --format png \
  --output outputs/garden-schedule.png --dry-run --json
Input files · infographic.yaml, infographic.md
infographic.yaml
schema_version: 1
title: "A little time for your garden"
audience: "New home gardeners"
key_message: "Make space for three short weekly sessions."
canvas: "1024x1536"
layout: "Title at top; three stacked cards; source note at bottom."
sections:
  - heading: "Monday"
    copy: "Check the soil and water if needed."
    values:
      - label: "Time"
        value: "5"
        unit: "minutes"
        source: "Illustrative weekly schedule"
  - heading: "Wednesday"
    copy: "Look for new leaves and check the light."
    values:
      - label: "Time"
        value: "5"
        unit: "minutes"
        source: "Illustrative weekly schedule"
  - heading: "Saturday"
    copy: "Tidy the pots and note what changed."
    values:
      - label: "Time"
        value: "10"
        unit: "minutes"
        source: "Illustrative weekly schedule"
visual_brief: infographic.md
references: []
infographic.md
# Visual direction
Use a warm off-white background, dark green text, large readable headings and
three stacked cards. Add simple plant icons. Keep generous margins.
Render the title, copy, values, units and source note exactly as specified.
The schedule is an illustrative example, not measured research.
Ask your agent
Agent prompt
Use FrameChord to make an infographic from examples/infographic.yaml. Preserve Monday 5 minutes, Wednesday 5 minutes and Saturday 10 minutes exactly, including the illustrative source note. Preview first. After generation, compare every word and value with the YAML and report errors.
05 / SPEECH

Read an article aloud

Give the CLI the exact words to speak and a separate brief for delivery.

Terminal
framechord generate speech \
  --provider openai --model gpt-4o-mini-tts --voice alloy \
  --text-file examples/article.txt \
  --brief-file examples/narration.md --format wav \
  --output outputs/article.wav --dry-run --json
Input files · article.txt, narration.md
article.txt
A small garden can begin with a single pot. Choose a bright spot, check the soil before watering, and watch how the plant responds. A few minutes of attention each day can help you learn what it needs.
narration.md
Read clearly, with a calm, warm delivery. Preserve every word of the supplied article.
Ask your agent
Agent prompt
Read examples/article.txt aloud with FrameChord using OpenAI gpt-4o-mini-tts and alloy. Preserve every word. Preview the request, save the final WAV to outputs/article.wav, and report chunk artifacts if the text is split.
06 / PODCAST

Give each speaker a turn

Author the conversation explicitly. Each turn has its own script, model and voice; the CLI generates clips and assembles the episode.

Terminal
framechord validate --kind job examples/podcast.yaml --json
framechord generate --job examples/podcast.yaml \
  --output-dir outputs/podcast \
  --limits-file examples/limits.yaml --dry-run --json
Input files · podcast.yaml, host.txt, guest.txt, podcast.md
podcast.yaml
schema_version: 2
id: garden-podcast
media: podcast
brief: podcast.md
locale: en-US
turns:
  - id: host-intro
    text_file: host.txt
    selection: {provider: openai, model: gpt-4o-mini-tts}
    settings: {voice: alloy, format: wav}
  - id: guest-answer
    text_file: guest.txt
    selection: {provider: openai, model: gpt-4o-mini-tts}
    settings: {voice: nova, format: wav}
assembly:
  pause_ms: 250
  turn_gain_db: {host-intro: -1}
  loudness_lufs: -19
host.txt
Welcome to Small Habits. Today we are talking about making room for a small garden. Where should we begin?
guest.txt
Start with one pot and one plant. Choose a bright spot, and check the soil before watering.
podcast.md
A friendly, concise conversation. Clear articulation and natural pauses. Speak only the exact text assigned to each turn.
Ask your agent
Agent prompt
Build a two-speaker podcast with FrameChord using examples/podcast.yaml. Keep the host and guest scripts exact, preserve turn order, and use separate voices. Preview the two speech requests, then save the final WAV and original clips under outputs/podcast.
07 / MUSIC

A music bed or an original song

Describe mood, instrumentation, structure and duration. Choose instrumental or vocal explicitly.

Instrumental podcast intro

Terminal
framechord generate music \
  --provider elevenlabs --model music_v2_5 \
  --brief-file examples/music.md \
  --duration-seconds 10 --instrumental --format mp3 \
  --output outputs/intro.mp3 --dry-run --json
Input files · music.md
music.md
# Podcast opening music
Purpose: a ten-second instrumental opening for a gardening podcast.
Mood: optimistic, relaxed and welcoming.
Instruments: soft acoustic guitar, light hand percussion and warm keys.
Structure: short opening motif, gentle development, clean ending.
No singing, spoken words, artist imitation or recognizable existing melody.

Short vocal song

Terminal
framechord generate music \
  --provider elevenlabs --model music_v2_5 \
  --brief-file examples/vocal.md \
  --duration-seconds 20 --vocal --format mp3 \
  --output outputs/song.mp3 --dry-run --json
Input files · vocal.md
vocal.md
# Original short song
Mood: light, playful acoustic folk. One clear lead singer.
Duration: about twenty seconds; a short intro and a resolved ending.
Sing these original lyrics in this order:

One little seed, a patch of sun,
A quiet morning has begun.
Leaf by leaf, we watch it grow,
Small beginnings, nice and slow.

Do not add verses. Review the actual audio for omitted or changed lyrics.
Ask your agent
Agent prompt
Use FrameChord for a ten-second instrumental podcast intro from examples/music.md. Preview using ElevenLabs music_v2_5, then save outputs/intro.mp3. Listen for the requested ending and report the measured duration.
08 / SOUND EFFECT

Small sounds with a clear purpose

Specify the event, texture, duration and what should be absent.

Terminal
framechord generate sfx \
  --provider elevenlabs --model eleven_text_to_sound_v2 \
  --brief-file examples/sfx.md \
  --duration-seconds 3 --format mp3 \
  --output outputs/notification.mp3 --dry-run --json
Input files · sfx.md
sfx.md
# Gentle notification
A single soft wooden tap followed by a short, airy chime decay.
Three seconds total. Clean and isolated. No voice, music bed or background hiss.
Ask your agent
Agent prompt
Generate a gentle three-second notification sound with FrameChord from examples/sfx.md. Preview first; save to outputs/notification.mp3. Check for unwanted speech, background music and an abrupt ending.
09 / REUSABLE CHARACTERS

Define identity once. Review every reuse.

Save stable visual and voice profiles separately from scene direction. Characters are optional for ordinary generation.

Terminal
framechord persona add mira
framechord persona show mira --json
framechord templates export authoring

Edit the new character’s persona.md, visual.md, voice.md and character.yaml. Set explicit models and settings before generation. Templates include identity checklists and reference-sheet briefs.

Stable identity

Face geometry, eye spacing, hair silhouette, body proportions, materials and distinguishing accessories. The original provider/model and accepted references stay pinned.

Scene direction

Pose, action, expression, camera and environment belong in the job brief. They must not silently rewrite the character’s canonical identity.

Create candidates, then explicitly accept one
framechord validate --kind character \
  framechord/characters/mira/character.yaml --json

# Paid generation: only run when you want new candidates.
framechord persona bootstrap mira --output-dir candidates --json

# After you select an actual candidate; replace the path below.
framechord persona accept mira --kind image \
  --reference candidates/SELECTED_IMAGE.png

Put two accepted characters in a scene

Terminal
framechord validate --kind job examples/cast.yaml --json
framechord generate --job examples/cast.yaml \
  --output outputs/forest.png --dry-run --json
Input files · cast.yaml, forest.md
cast.yaml
schema_version: 2
id: forest-play
media: image
brief: forest.md
cast:
  - alias: mira
    character: ../framechord/characters/mira/character.yaml
  - alias: kito
    character: ../framechord/characters/kito/character.yaml
settings:
  format: png
  size: 1536x1024
  image_quality: medium
# Requires both saved characters with accepted references from compatible models.
# These settings assume originals made with OpenAI gpt-image-2.5-flare.
forest.md
# A shared forest scene
Mira and Kito play together with fallen leaves in a quiet forest clearing.
Preserve each selected original's face, hair, head/body proportions, materials,
colors and distinguishing accessories. Show both full bodies with ample margins.
Do not blend their identities or change their apparent ages.

This example requires your own mira and kito folders with accepted, compatible original-model references. It intentionally fails validation until those exist.

Carry a character to another project

Terminal
framechord persona export mira --destination mira-bundle
framechord --project ../another-project persona import mira-bundle

Bundles preserve relative dependencies and identity provenance. ID conflicts are rejected. Provider voice bindings remain account-specific.

Ask your agent
Agent prompt
Help me define a character with the FrameChord templates. Separate stable identity from scene directions, pin the original provider/model, and show candidates for selection before accepting any reference. For future scenes, compare face and body proportions with the actual accepted originals.
10 / VOICES

Reuse a saved voice, or design a candidate

Speech voice identity is independent of visual identity. Start with an accessible provider voice binding.

Terminal
framechord voices --provider elevenlabs --account \
  --page-size 10 --max-pages 1 --json

# Replace YOUR_VOICE_ID with a voice ID accessible to your account.
framechord generate speech --provider elevenlabs \
  --model eleven_v3 --voice YOUR_VOICE_ID \
  --text-file examples/article.txt --format wav \
  --output outputs/saved-voice.wav --dry-run --json

For repeatable character speech, save the provider/model, voice binding and delivery description in its voice profile, then use --character path/to/character.yaml.

Voice design and creation previews
framechord persona voice-design narrator --model eleven_ttv_v3 \
  --text-file examples/article.txt --run-id narrator-design-1 \
  --dry-run --json

# After generating and selecting an actual design candidate:
framechord persona voice-create narrator \
  --design-run narrator-design-1 --candidate SELECTED_CANDIDATE_ID \
  --name Narrator --bind --dry-run --json

First create narrator and configure an ElevenLabs speech profile with a voice description. Design returns candidate previews. Creating a saved provider voice and binding it are explicit later operations; remove each preview flag only when intended.

11 / AGENT WORKFLOW

Use it from any agent with process access

The skill teaches authoring and review. The executable handles credentials, provider requests and local records.

Terminal
framechord skills install --scope project --agents codex,claude
framechord skills export ./portable-framechord-skill
framechord schema job --json
Skill discovery locations
AgentProject path
Codex.agents/skills/framechord/
Claude Code.claude/skills/framechord/
Other process-based agentsRead the exported SKILL.md and references, then call the binary.

User-wide installation is a separate choice: framechord skills install --scope user --agents codex,claude. It does not change global agent permissions.

Ask your agent
Agent prompt
Use the framechord skill. Inspect config and supported models, author YAML and Markdown from the templates, validate locally, and show the resolved request and output destination. Generate only the media I authorize. Use --json --non-interactive, preserve exact scripts, and report artifact paths, failed jobs and uncertain requests accurately.

Let the CLI draft the files

Paid text planning — does not generate media
framechord plan --kind job \
  --provider openai --model gpt-6-luna \
  --prompt "Draft an OpenAI gpt-image-2.5-flare image job for a gardening article cover." \
  --output-dir planned/cover --json --non-interactive
12 / PARALLEL JOBS

Run independent work together

Keep each job in its own manifest. A batch schedules independent jobs concurrently and preserves successes if another job fails.

Terminal
framechord validate --kind batch examples/batch.yaml --json
framechord batch --manifest examples/batch.yaml \
  --limits-file examples/limits.yaml \
  --output-dir outputs/batch --dry-run --json
Input files · batch.yaml, image.yaml, speech.yaml, limits.yaml
batch.yaml
schema_version: 1
jobs:
  - image.yaml
  - speech.yaml
image.yaml
schema_version: 2
id: garden-cover
media: image
selection: {provider: openai, model: gpt-image-2.5-flare}
brief: image.md
settings: {format: png, size: 1536x1024, image_quality: medium}
speech.yaml
schema_version: 2
id: garden-narration
media: speech
selection: {provider: openai, model: gpt-4o-mini-tts}
brief: narration.md
text_file: article.txt
settings: {format: wav, voice: alloy}
locale: en-US
limits.yaml
requests: 4
images: 2
audio_seconds: 120
speech_chars: 5000
revisions: 1
attempts: 1
concurrency: 2
per_provider: 2

This batch contains one image and one narration. The limits file allows two concurrent jobs, bounded volume and one attempt per job. Limits count requests/media, not dollars. Shared host ceilings still apply.

Terminal
# Paid execution after reviewing the batch preview:
framechord batch --manifest examples/batch.yaml \
  --limits-file examples/limits.yaml --output-dir outputs/batch \
  --async --json --non-interactive

# Replace RUN_ID with the returned run ID.
framechord runs status RUN_ID --json
framechord runs wait RUN_ID
framechord usage --json
13 / REVIEW & RECOVERY

A saved file is the start of review

Generation success means a result was saved and checked structurally. It does not prove accurate text, voice quality or character identity.

Terminal
# Replace ARTIFACT_ID with an ID from generation output.
framechord review check --artifact ARTIFACT_ID --json
framechord review report --artifact ARTIFACT_ID \
  --output comparison.md --json
framechord review status --artifact ARTIFACT_ID --json
  • Images: composition, framing, anatomy and identity against selected originals.
  • Infographics: every word, value, unit, source note and the reading order.
  • Speech / podcast: exact script, speaker, pronunciation, missing words and clip joins.
  • Music / effects: duration, lyrics, texture, distortion and clean endings.
Terminal
# Paid revision: preserves the original and makes a child run.
framechord revise --artifact ARTIFACT_ID \
  --instructions-file examples/revision.md --json
Input files · revision.md
revision.md
Preserve the original composition and identity. Increase the outer margins so the entire subject is inside the image.

For changed copy or scripts, use an updated --source-job. A podcast revision can target --turn guest-answer and reuse unchanged verified clips. Record an actual assessment with review record --file review.yaml and honest human/agent provenance.

Recovery — replace RUN_ID and inspect status first
framechord runs status RUN_ID --json
framechord runs reconcile RUN_ID --json
framechord resume RUN_ID --json
14 / KEEP EXPLORING

The full command reference travels with you

Use built-in help for exact options and schemas for file contracts.

Terminal
framechord --help
framechord generate --help
framechord persona --help
framechord schema job --json
framechord templates export authoring
framechord config show --json

This guide targets FrameChord 0.6.1. Video generation is outside this version. Provider adapters implement different capabilities; inspect models --json before selecting a model. Live model discovery is read-only and does not prove generation readiness.

COMMAND REFERENCE

Every command. Every flag.

Exact bundled help for all 65 command pages. Expand an entry to inspect its options.

framechord
framechord
Generate images, infographics, exact speech, podcasts, music, and sound effects. Use direct flags for one asset or versioned YAML jobs for repeated work. Run --help on any command for inputs, output destinations, and examples. Initialization and validation are offline.

Usage: framechord [OPTIONS] <COMMAND>

Commands:
  install    Install this downloaded binary in your user bin directory, offline and without administrator access
  update     Update this executable from a verified public GitHub Release; optional GH_TOKEN/GITHUB_TOKEN authenticates metadata checks
  init       Initialize offline, preserving existing files and credentials
  config     Inspect or explicitly replace validated configuration
  verify     Preview a bounded live verification suite; execution requires the exact approved preview hash
  usage      Report provider-returned usage separately from unknown costs
  storage    Inspect storage or apply a previously reviewed conservative cleanup plan
  migrate    Preview migration of a v1 job, config or run; --apply creates a non-overwriting backup
  doctor     Inspect credentials offline, or explicitly check all provider endpoints and keys with --live
  schema     Print a JSON Schema for a versioned manifest
  models     List implemented provider/model capabilities (not account entitlements)
  voices     List built-in voices or search bounded pages of provider account voices
  templates  Inspect or export embedded authoring templates
  persona    Create, inspect, bootstrap, accept, or port character definitions
  validate   Validate local YAML and all referenced files; never generate
  generate   Generate one media job. Example: generate image --prompt 'A forest' --provider openai --model gpt-image-2.5-flare --output forest.png
  batch      Execute independent jobs concurrently using a YAML batch manifest
  runs       Inspect, wait, cancel, or resume durable runs
  resume     Continue a recorded run, preserving successes; ambiguous retries are explicit
  review     Check artifact integrity, request explicit image/audio AI review, or record a human/agent review
  revise     Create a revision child run with inherited identity and limits
  plan       Explicit text-model planning; saves reviewable files without generating media
  skills     Export a portable skill or install it in agent discovery locations
  help       Print this message or the help of the given subcommand(s)

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help (see a summary with '-h')

  -V, --version
          Print version
framechord install
framechord install
Install this downloaded binary in your user bin directory, offline and without administrator access

Usage: framechord install [OPTIONS]

Options:
      --bin-dir <BIN_DIR>
          Executable destination directory (default: ~/.local/bin; Windows: LOCALAPPDATA/framechord/bin)

      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --no-modify-path
          Do not add the directory to your user PATH or shell profile

      --force
          Explicitly replace an existing executable not managed by framechord

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord update
framechord update
Update this executable from a verified public GitHub Release; optional GH_TOKEN/GITHUB_TOKEN authenticates metadata checks

Usage: framechord update [OPTIONS]

Options:
      --check
          Only check release metadata; do not download or replace the executable

      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --version <VERSION>
          Select an exact stable version, for example 0.4.0; defaults to the latest stable release

      --force
          Reinstall the selected version even when already current

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --allow-downgrade
          Explicitly allow installing an older stable release

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

      --rollback
          Restore the verified backup saved by the preceding install or update; offline

  -h, --help
          Print help
framechord init
framechord init
Initialize offline, preserving existing files and credentials

Usage: framechord init [OPTIONS] [PATH]

Arguments:
  [PATH]
          Project folder (defaults to --project or the current directory); must allow a framechord/ subfolder

Options:
      --agents <AGENTS>
          [default: codex,claude]

      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --defaults-file <DEFAULTS_FILE>
          Complete configuration YAML: provider/models, settings, locales, consistency, and limits

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --preset <PRESET>
          New-project preset: Google first, OpenAI alternative; existing choices are preserved

          Possible values:
          - recommended: Google images, speech, podcasts, music and planning
          - google:      Same as recommended: Google for supported media
          - openai:      OpenAI images, speech, podcasts and planning; music/effects optional
          - empty:       Empty scaffold without enabled generation features

      --interactive
          Configure explicit provider/model, generation settings, limits, and identity policy offline

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help (see a summary with '-h')
framechord config
framechord config
Inspect or explicitly replace validated configuration

Usage: framechord config [OPTIONS] <COMMAND>

Commands:
  wizard  Terminal-only guided defaults; agents use setup --file instead
  host    Explicit user-scope host concurrency ceilings, independent of agent settings
  show
  status  Inspect local setup readiness without network calls or revealing credentials
  setup   Replace config only after validating the supplied file
  limits  Inspect finite generation limits
  help    Print this message or the help of the given subcommand(s)

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord config wizard
framechord config wizard
Terminal-only guided defaults; agents use setup --file instead

Usage: framechord config wizard [OPTIONS]

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord config host
framechord config host
Explicit user-scope host concurrency ceilings, independent of agent settings

Usage: framechord config host [OPTIONS] <COMMAND>

Commands:
  show
  setup
  help   Print this message or the help of the given subcommand(s)

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord config host show
framechord config host show
Usage: framechord config host show [OPTIONS]

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord config host setup
framechord config host setup
Usage: framechord config host setup [OPTIONS] --file <FILE>

Options:
      --file <FILE>


      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord config show
framechord config show
Usage: framechord config show [OPTIONS]

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord config status
framechord config status
Inspect local setup readiness without network calls or revealing credentials

Usage: framechord config status [OPTIONS]

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord config setup
framechord config setup
Replace config only after validating the supplied file

Usage: framechord config setup [OPTIONS] --file <FILE>

Options:
      --file <FILE>


      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord config limits
framechord config limits
Inspect finite generation limits

Usage: framechord config limits [OPTIONS]

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord verify
framechord verify
Preview a bounded live verification suite; execution requires the exact approved preview hash

Usage: framechord verify [OPTIONS] --suite <SUITE>

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --suite <SUITE>


      --execute


      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --preview-hash <PREVIEW_HASH>


      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord usage
framechord usage
Report provider-returned usage separately from unknown costs

Usage: framechord usage [OPTIONS]

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord storage
framechord storage
Inspect storage or apply a previously reviewed conservative cleanup plan

Usage: framechord storage [OPTIONS] <COMMAND>

Commands:
  inspect
  plan     Save a cleanup preview; only unreferenced blobs can be removed
  clean    Revalidate and apply a saved cleanup preview; fails if stale or workers active
  help     Print this message or the help of the given subcommand(s)

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord storage inspect
framechord storage inspect
Usage: framechord storage inspect [OPTIONS]

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord storage plan
framechord storage plan
Save a cleanup preview; only unreferenced blobs can be removed

Usage: framechord storage plan [OPTIONS] --output <OUTPUT>

Options:
      --output <OUTPUT>


      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord storage clean
framechord storage clean
Revalidate and apply a saved cleanup preview; fails if stale or workers active

Usage: framechord storage clean [OPTIONS] --plan <PLAN>

Options:
      --plan <PLAN>


      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord migrate
framechord migrate
Preview migration of a v1 job, config or run; --apply creates a non-overwriting backup

Usage: framechord migrate [OPTIONS] --kind <KIND> --file <FILE>

Options:
      --kind <KIND>
          [possible values: job, config, run]

      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --file <FILE>


      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --apply


      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord doctor
framechord doctor
Inspect credentials offline, or explicitly check all provider endpoints and keys with --live

Usage: framechord doctor [OPTIONS]

Options:
      --live
          Make one read-only authenticated GET per selected provider; never generate media

      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --provider <PROVIDER>
          Selected providers (repeat or comma-separate); default all five, including missing keys

          [possible values: openai, google, fish, openrouter, elevenlabs]

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --timeout-seconds <TIMEOUT_SECONDS>
          Timeout per provider, including response download; 1–60 seconds, no retries

          [default: 10]

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord schema
framechord schema
Print a JSON Schema for a versioned manifest

Usage: framechord schema [OPTIONS] <KIND>

Arguments:
  <KIND>
          [possible values: config, character, infographic, job, batch, run, artifact, review, effective, budget, revision, operation, voice_design, voice_consent, voice_clone, host_limits, diagnostics, verification]

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord models
framechord models
List implemented provider/model capabilities (not account entitlements)

Usage: framechord models [OPTIONS]

Options:
      --live
          Explicit read-only provider catalog lookup; not a generation entitlement check

      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --provider <PROVIDER>
          [possible values: openai, google, fish, openrouter, elevenlabs]

      --media <MEDIA>
          Filter by generation purpose (infographic uses image; podcast uses speech)

          [possible values: image, infographic, speech, podcast, music, sfx, text]

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --search <SEARCH>
          Search model names, IDs and descriptions

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

      --recommended
          Show only recommended current supported models

      --all
          Include nonselectable historical and unsupported provider catalog entries

      --sort <SORT>
          Popularity requires --live --provider openrouter; no rankings are invented

          [default: recommended]
          [possible values: recommended, name, popular]

  -h, --help
          Print help
framechord voices
framechord voices
List built-in voices or search bounded pages of provider account voices

Usage: framechord voices [OPTIONS] --provider <PROVIDER>

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --provider <PROVIDER>
          [possible values: openai, google, fish, openrouter, elevenlabs]

      --account
          Read account voices from Google, Fish, or ElevenLabs; default one page

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --public
          Fish only: explicitly query licensed public voices instead of owned voices

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --voice-id <VOICE_ID>
          ElevenLabs only: inspect one voice binding and provider verification status

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

      --page-size <PAGE_SIZE>
          Maximum voices per page, 1–100

          [default: 20]

      --max-pages <MAX_PAGES>
          Maximum catalog requests, 1–20; default one

          [default: 1]

      --page-token <PAGE_TOKEN>
          Resume a Google or ElevenLabs catalog with the same filters

      --page-number <PAGE_NUMBER>
          Fish catalog page, starting at one

          [default: 1]

      --search <SEARCH>


      --language <LANGUAGE>


      --category <CATEGORY>
          Google: prebuilt/replicated/prompted; ElevenLabs: premade/cloned/generated/professional

  -h, --help
          Print help
framechord templates
framechord templates
Inspect or export embedded authoring templates

Usage: framechord templates [OPTIONS] <COMMAND>

Commands:
  list
  show
  export
  help    Print this message or the help of the given subcommand(s)

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord templates list
framechord templates list
Usage: framechord templates list [OPTIONS]

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord templates show
framechord templates show
Usage: framechord templates show [OPTIONS] <NAME>

Arguments:
  <NAME>


Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord templates export
framechord templates export
Usage: framechord templates export [OPTIONS] <DIRECTORY>

Arguments:
  <DIRECTORY>


Options:
      --overwrite
          Explicitly replace bundled template files, preserving unrelated files

      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord persona
framechord persona
Create, inspect, bootstrap, accept, or port character definitions

Usage: framechord persona [OPTIONS] <COMMAND>

Commands:
  voice-clone         Explicitly create an ElevenLabs clone from selected authorized recordings
  voice-clone-status  Inspect cloned-voice receipts and unresolved creation attempts
  voice-design        Generate ElevenLabs voice preview candidates without creating or binding a saved voice
  voice-create        Create a provider voice from one selected candidate; canonical binding is explicit
  voice-status        Inspect saved voice candidates, creation results, and uncertain operations
  add
  list
  show
  bootstrap           Generate visual candidates; this never promotes references
  accept-sample       Accept a selected recording, exact transcript, and granted consent as a portable voice sample
  accept              Accept a user-selected image or recording into the canonical profile
  export
  import
  help                Print this message or the help of the given subcommand(s)

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord persona voice-clone
framechord persona voice-clone
Explicitly create an ElevenLabs clone from selected authorized recordings

Usage: framechord persona voice-clone [OPTIONS] --request <REQUEST>

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --request <REQUEST>


      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --limits-file <LIMITS_FILE>


      --dry-run


      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --retry-unknown


      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

      --refresh-verification


  -h, --help
          Print help
framechord persona voice-clone-status
framechord persona voice-clone-status
Inspect cloned-voice receipts and unresolved creation attempts

Usage: framechord persona voice-clone-status [OPTIONS] <RUN_ID>

Arguments:
  <RUN_ID>


Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord persona voice-design
framechord persona voice-design
Generate ElevenLabs voice preview candidates without creating or binding a saved voice

Usage: framechord persona voice-design [OPTIONS] --model <MODEL> --text-file <TEXT_FILE> <ID>

Arguments:
  <ID>


Options:
      --model <MODEL>
          Use eleven_ttv_v3 for new previews; the historical v2 value remains readable but cannot submit

          [possible values: eleven_multilingual_ttv_v2, eleven_ttv_v3]

      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --text-file <TEXT_FILE>
          Exact 100–1000 character preview script

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --run-id <RUN_ID>
          Stable design run ID for recovery; omit for a new run

      --limits-file <LIMITS_FILE>


      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

      --dry-run


      --retry-unknown
          Explicit retry of an uncertain paid design request

  -h, --help
          Print help
framechord persona voice-create
framechord persona voice-create
Create a provider voice from one selected candidate; canonical binding is explicit

Usage: framechord persona voice-create [OPTIONS] --design-run <DESIGN_RUN> --candidate <CANDIDATE> --name <NAME> <ID>

Arguments:
  <ID>


Options:
      --design-run <DESIGN_RUN>


      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --candidate <CANDIDATE>


      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --name <NAME>


      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --bind
          Bind the created voice ID to this character after confirmed provider verification status

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

      --replace-binding


      --refresh-verification
          Refresh provider verification with one metadata lookup before binding

      --dry-run


      --retry-unknown


  -h, --help
          Print help
framechord persona voice-status
framechord persona voice-status
Inspect saved voice candidates, creation results, and uncertain operations

Usage: framechord persona voice-status [OPTIONS] <RUN_ID>

Arguments:
  <RUN_ID>


Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord persona add
framechord persona add
Usage: framechord persona add [OPTIONS] <ID>

Arguments:
  <ID>


Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord persona list
framechord persona list
Usage: framechord persona list [OPTIONS]

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord persona show
framechord persona show
Usage: framechord persona show [OPTIONS] <ID>

Arguments:
  <ID>


Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord persona bootstrap
framechord persona bootstrap
Generate visual candidates; this never promotes references

Usage: framechord persona bootstrap [OPTIONS] --output-dir <OUTPUT_DIR> <ID>

Arguments:
  <ID>


Options:
      --output-dir <OUTPUT_DIR>


      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --async


      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord persona accept-sample
framechord persona accept-sample
Accept a selected recording, exact transcript, and granted consent as a portable voice sample

Usage: framechord persona accept-sample [OPTIONS] --audio <AUDIO> --transcript <TRANSCRIPT> --consent <CONSENT> <ID>

Arguments:
  <ID>


Options:
      --audio <AUDIO>


      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --transcript <TRANSCRIPT>


      --consent <CONSENT>


      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord persona accept
framechord persona accept
Accept a user-selected image or recording into the canonical profile

Usage: framechord persona accept [OPTIONS] --reference <REFERENCE> --kind <KIND> <ID>

Arguments:
  <ID>


Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --reference <REFERENCE>


      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --kind <KIND>
          [possible values: image, audio]

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord persona export
framechord persona export
Usage: framechord persona export [OPTIONS] --destination <DESTINATION> <ID>

Arguments:
  <ID>


Options:
      --destination <DESTINATION>


      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord persona import
framechord persona import
Usage: framechord persona import [OPTIONS] <DIRECTORY>

Arguments:
  <DIRECTORY>


Options:
      --id <ID>


      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord validate
framechord validate
Validate local YAML and all referenced files; never generate

Usage: framechord validate [OPTIONS] --kind <KIND> <PATH>

Arguments:
  <PATH>


Options:
      --kind <KIND>
          [possible values: config, character, job, batch, infographic, review, voice_consent, voice_clone, host_limits]

      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord generate
framechord generate
Generate one media job. Example: generate image --prompt 'A forest' --provider openai --model gpt-image-2.5-flare --output forest.png

Usage: framechord generate [OPTIONS] [MEDIA]

Arguments:
  [MEDIA]
          [possible values: image, infographic, speech, podcast, music, sfx, text]

Options:
      --job <JOB>
          Reusable YAML job; settings/provider overrides are explicit, authoring flags conflict

      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --identity-reference <IDENTITY_REFERENCE>
          Preserve referenced character identities; repeat for multiple selected characters

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --input-fidelity <INPUT_FIDELITY>
          Historical image-edit fidelity field; omit for current GPT Image 2.5 models

          [possible values: high, low]

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --voice-sample <VOICE_SAMPLE>
          Authorized audio sample for Fish reference synthesis or voice review evidence

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

      --sample-transcript <SAMPLE_TRANSCRIPT>
          Exact transcript of --voice-sample

      --consent-file <CONSENT_FILE>
          Versioned permission record and referenced evidence for --voice-sample

      --image-quality <IMAGE_QUALITY>
          OpenAI image quality: low/medium/high/auto; current 2.5 models also support xhigh/max

          [possible values: low, medium, high, auto, xhigh, max]

      --provider <PROVIDER>
          [possible values: openai, google, fish, openrouter, elevenlabs]

      --model <MODEL>


      --prompt <PROMPT>
          Creative direction (not speech script); conflicts with --brief-file

      --brief-file <BRIEF_FILE>


      --text <TEXT>
          Exact spoken words; conflicts with --text-file

      --text-file <TEXT_FILE>


      --spec <SPEC>
          Structured infographic YAML

      --character <CHARACTER>
          Character YAML; pins identity, provider/model, and accepted references

      --reference <REFERENCE>


      --voice <VOICE>


      --locale <LOCALE>


      --format <FORMAT>


      --size <SIZE>


      --duration-seconds <DURATION_SECONDS>


      --instrumental


      --vocal
          Request vocal music; conflicts with --instrumental

      --limits-file <LIMITS_FILE>
          Explicit limits YAML for this run (otherwise project limits apply)

      --output <OUTPUT>
          Final filename for a single job; mutually exclusive with --output-dir

      --output-dir <OUTPUT_DIR>
          Directory for final artifacts and podcast clips

      --overwrite
          Explicitly allow replacing a requested destination

      --dry-run
          Validate and print effective inputs without network calls or run creation

      --fresh
          Bypass verified local cache

      --async
          Start a local worker and return the durable run ID

      --request-id <REQUEST_ID>
          Repeated submissions with this ID must have identical effective inputs

  -h, --help
          Print help
framechord batch
framechord batch
Execute independent jobs concurrently using a YAML batch manifest

Usage: framechord batch [OPTIONS] --manifest <MANIFEST>

Options:
      --manifest <MANIFEST>


      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --limits-file <LIMITS_FILE>
          Explicit limits YAML for this run (otherwise project limits apply)

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --output <OUTPUT>
          Final filename for a single job; mutually exclusive with --output-dir

      --output-dir <OUTPUT_DIR>
          Directory for final artifacts and podcast clips

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

      --overwrite
          Explicitly allow replacing a requested destination

      --dry-run
          Validate and print effective inputs without network calls or run creation

      --fresh
          Bypass verified local cache

      --async
          Start a local worker and return the durable run ID

      --request-id <REQUEST_ID>
          Repeated submissions with this ID must have identical effective inputs

  -h, --help
          Print help
framechord runs
framechord runs
Inspect, wait, cancel, or resume durable runs

Usage: framechord runs [OPTIONS] <COMMAND>

Commands:
  recover    Stage a manually recovered response for an uncertain job; resume publishes without a new paid request
  reconcile  Retrieve saved Google interactions without a new generation; resume publishes recovered output
  list
  status
  wait
  cancel
  resume
  help       Print this message or the help of the given subcommand(s)

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord runs recover
framechord runs recover
Stage a manually recovered response for an uncertain job; resume publishes without a new paid request

Usage: framechord runs recover [OPTIONS] --job <JOB> --file <FILE> --format <FORMAT> --fingerprint <FINGERPRINT> --evidence <EVIDENCE> <RUN_ID>

Arguments:
  <RUN_ID>


Options:
      --job <JOB>


      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --file <FILE>


      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --format <FORMAT>


      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --fingerprint <FINGERPRINT>


      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

      --evidence <EVIDENCE>
          Markdown reconciliation evidence, without account information or credentials

  -h, --help
          Print help
framechord runs reconcile
framechord runs reconcile
Retrieve saved Google interactions without a new generation; resume publishes recovered output

Usage: framechord runs reconcile [OPTIONS] <RUN_ID>

Arguments:
  <RUN_ID>


Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord runs list
framechord runs list
Usage: framechord runs list [OPTIONS]

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord runs status
framechord runs status
Usage: framechord runs status [OPTIONS] <RUN_ID>

Arguments:
  <RUN_ID>


Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord runs wait
framechord runs wait
Usage: framechord runs wait [OPTIONS] <RUN_ID>

Arguments:
  <RUN_ID>


Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --timeout-seconds <TIMEOUT_SECONDS>


      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord runs cancel
framechord runs cancel
Usage: framechord runs cancel [OPTIONS] <RUN_ID>

Arguments:
  <RUN_ID>


Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord runs resume
framechord runs resume
Usage: framechord runs resume [OPTIONS] <RUN_ID>

Arguments:
  <RUN_ID>


Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --retry-unknown


      --async


      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord resume
framechord resume
Continue a recorded run, preserving successes; ambiguous retries are explicit

Usage: framechord resume [OPTIONS] <RUN_ID>

Arguments:
  <RUN_ID>


Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --retry-unknown


      --async


      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord review
framechord review
Check artifact integrity, request explicit image/audio AI review, or record a human/agent review

Usage: framechord review [OPTIONS] <COMMAND>

Commands:
  report     Export a comparison report and immutable references without making acceptance decisions
  reconcile  Retrieve uncertain Google audio reviews without submitting another assessment
  status     Inspect recorded AI review attempts, provider receipts, and uncertain outcomes
  check      Verify an artifact; AI review uses OpenAI/OpenRouter for images and Google for audio
  record     Record a schema-validated assessment with human/agent provenance
  help       Print this message or the help of the given subcommand(s)

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord review report
framechord review report
Export a comparison report and immutable references without making acceptance decisions

Usage: framechord review report [OPTIONS] --artifact <ARTIFACT> --output <OUTPUT>

Options:
      --artifact <ARTIFACT>


      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --output <OUTPUT>


      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord review reconcile
framechord review reconcile
Retrieve uncertain Google audio reviews without submitting another assessment

Usage: framechord review reconcile [OPTIONS] --artifact <ARTIFACT>

Options:
      --artifact <ARTIFACT>


      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord review status
framechord review status
Inspect recorded AI review attempts, provider receipts, and uncertain outcomes

Usage: framechord review status [OPTIONS] --artifact <ARTIFACT>

Options:
      --artifact <ARTIFACT>


      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord review check
framechord review check
Verify an artifact; AI review uses OpenAI/OpenRouter for images and Google for audio

Usage: framechord review check [OPTIONS] --artifact <ARTIFACT>

Options:
      --artifact <ARTIFACT>


      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --ai


      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --provider <PROVIDER>
          [possible values: openai, google, fish, openrouter, elevenlabs]

      --model <MODEL>


      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

      --retry-unknown
          Explicitly retry an uncertain AI review; it may already have incurred a charge

  -h, --help
          Print help
framechord review record
framechord review record
Record a schema-validated assessment with human/agent provenance

Usage: framechord review record [OPTIONS] --file <FILE>

Options:
      --file <FILE>


      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord revise
framechord revise
Create a revision child run with inherited identity and limits

Usage: framechord revise [OPTIONS] --artifact <ARTIFACT> --instructions-file <INSTRUCTIONS_FILE>

Options:
      --artifact <ARTIFACT>


      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --instructions-file <INSTRUCTIONS_FILE>


      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --source-job <SOURCE_JOB>
          Updated source job for explicit script or infographic copy changes

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --turn <TURN>
          Revise one podcast turn and reuse verified unchanged clips

      --async


      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord plan
framechord plan
Explicit text-model planning; saves reviewable files without generating media

Usage: framechord plan [OPTIONS] --kind <KIND> --prompt <PROMPT> --output-dir <OUTPUT_DIR>

Options:
      --kind <KIND>
          [possible values: job, character, infographic]

      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --prompt <PROMPT>


      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --output-dir <OUTPUT_DIR>


      --character <CHARACTERS>
          Existing character manifests copied into the contained authoring bundle

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --asset <SELECTED_ASSETS>
          Selected image/audio assets copied by the binary

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

      --provider <PROVIDER>
          [possible values: openai, google, fish, openrouter, elevenlabs]

      --model <MODEL>


  -h, --help
          Print help
framechord skills
framechord skills
Export a portable skill or install it in agent discovery locations

Usage: framechord skills [OPTIONS] <COMMAND>

Commands:
  export
  install
  help     Print this message or the help of the given subcommand(s)

Options:
      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord skills export
framechord skills export
Usage: framechord skills export [OPTIONS] <DIRECTORY>

Arguments:
  <DIRECTORY>


Options:
      --overwrite
          Explicitly replace bundled skill files, preserving unrelated files

      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help
framechord skills install
framechord skills install
Usage: framechord skills install [OPTIONS]

Options:
      --agents <AGENTS>
          [default: codex,claude]

      --project <PROJECT>
          Target project root; credentials are loaded only from this root's .env

          [default: .]

      --json
          Emit a structured JSON result; diagnostics stay on stderr, with no animation

      --scope <SCOPE>
          [default: project]
          [possible values: project, user]

      --non-interactive
          Never prompt; supply YAML files or explicit flags for automation

      --overwrite
          Explicitly replace bundled skill files, including modified bundled assets

      --progress <PROGRESS>
          Terminal progress mode; redirected auto progress uses plain stage updates

          [default: auto]
          [possible values: auto, plain, off]

      --color <COLOR>
          Terminal colors; auto honors NO_COLOR

          [default: auto]
          [possible values: auto, always, never]

  -h, --help
          Print help