Advanced settings reference

Every configuration key in RoughCut with its default, range, effect, and the risk of changing it.

Topic: Settings, privacy, and plans 12 min read Verified against the current RoughCut app on 7 November 2026 العربية

This is the complete reference for every key in RoughCut's configuration schema, grouped exactly as the Settings Full tab groups them: LLM, Pipeline v2, Transcription, Evals, and System. For each key it gives the interface label, the internal key name, the type, the shipping default, any enforced bounds, and what changing it actually does. Settings resolve in one order only — schema defaults, then your configuration file, then per-job overrides. Saving writes only values that differ from a default, and secrets never enter that file. Most users should change none of this: the ordinary workflow articles cover the controls that matter day to day.

On this page

Read this first

This page is advanced. Nothing here is required for normal use. The defaults are the tested configuration, and the ordinary controls on the New Rough Cut screen — covered in Create your first rough cut — are what most users should change.

Change a key here only when you have a documented problem or an evaluation result that justifies it, and note how to return to the default: clear the field or set it back to the value in the table, then Save Configuration. A value equal to its default is removed from the configuration file entirely.

Changing a provider, a model, a reasoning level, or the transcription source invalidates comparability with earlier evaluation runs. Cached evaluation responses are keyed to those choices, so results before and after a change are not a clean comparison.

How settings resolve

There is exactly one resolution order:

schema default  <  configuration file  <  per-job override

A layer wins only when its value is meaningful — not missing, and not an empty string. Per-job overrides are the controls on the New Rough Cut and Transcribe Only screens; they apply to that job only.

The modified badge next to a field means the value differs from the shipping default. It does not mean unsaved. Secret fields never show it.

LLM

Which provider runs the editor pass, and how it is called.

LabelKeyTypeDefaultRange or choicesEffect and when to change
LLM providerllm_providerselectopenaiopenai, gemini, anthropicWhich provider runs the editing pass and evaluations. The help text: OpenAI is the default for new installations. gemini is Google Gemini and anthropic is Claude. Each provider uses its own API key and bills you directly. Existing provider choices are preserved; long transcripts are split into chunks and merged back on every provider.
Gemini API keygemini_api_keysecretempty—Your own key, stored in the Keychain. Requires billing enabled on its Google project.
Gemini modelgemini_modelstringgemini-3.1-pro-preview—The model used for editing on Gemini. The field shows the current ID next to a Choose Model & Estimate… button, which lists the models your key can reach, accepts a custom ID, and estimates cost; Use Model fills the field and Save Configuration applies it. Gemini has no reasoning-level control in RoughCut. Expect different editing behaviour from a different model.
Gemini timeout (sec)gemini_timeout_secint600—Raise for very long transcripts on slow connections.
OpenAI API keyopenai_api_keysecretempty—Your own key, stored in the Keychain. Also required for Cloud transcription.
OpenAI modelopenai_modelstringgpt-5.6-sol—The model used for editing when the provider is OpenAI. The help text: Sol is the default. Sol and Astra use medium reasoning unless you choose another level; other model IDs use the provider's default. Choose the model and its reasoning level, and estimate cost, here. Save Configuration to apply it to future jobs. GPT-6 Astra is offered as an optional upgrade in Choose Model & Estimate…. The field reads <model> · reasoning <level>.
OpenAI timeout (sec)openai_timeout_secint600—Also used as the Cloud transcription timeout. A reasoning level of high, xhigh or max raises the editing wait to at least 900, 1800 or 2700 seconds; a higher value you set is kept.
OpenAI reasoning levelopenai_reasoning_effortstringdefaultthe levels the model supportsRead-only here; choose it in Choose Model & Estimate… next to OpenAI model. The help text: How long the OpenAI model thinks before it answers. default keeps RoughCut's tested setting (medium on Sol and Astra). Higher levels are slower and cost more. Change it in Choose Model & Estimate, which lists the levels your model supports. Used by the first pass and Second Look.
Claude API keyanthropic_api_keysecretempty—Your own key from the Claude Console, stored in the Keychain. Anthropic bills its usage.
Claude modelanthropic_modelstringclaude-opus-5-5—The model used for editing when the provider is anthropic. The help text: Claude model for the editor pass. Opus 5.5 is the starting choice; Claude models have not been scored on RoughCut's evaluation set yet. Choose the model and its reasoning level, and estimate cost, here. The field reads <model> · reasoning <level>.
Claude timeout (sec)anthropic_timeout_secint600—The help text: Max seconds without any data from Claude before a call fails. Claude responses are streamed, so this is a silence limit. 600 covers most videos. The same reasoning-level floor as OpenAI applies.
Claude reasoning levelanthropic_reasoning_effortstringdefaultthe levels the model supportsRead-only here; choose it in Choose Model & Estimate… next to Claude model. The help text: How long the Claude model thinks before it answers. default sends no level, so the model's own default applies. Higher levels are slower and cost more. Change it in Choose Model & Estimate, which lists the levels your model supports. Used by the first pass and Second Look.

A job whose saved level is not offered by a reviewed model stops before any provider call. See Choose OpenAI, Gemini or Claude for the level lists.

Pipeline v2

How cuts are decided and shaped. These are the settings most likely to damage a cut.

LabelKeyTypeDefaultRangeEffect and when to change
Min silence to cut (sec)silence_min_cut_sfloat0.7min 0.1The configuration-level floor for cutting a silence. Distinct from the per-job Min silence (sec), which defaults to 0.5. Raising it keeps more breathing room.
Cut pad into removed (sec)pad_into_removed_sfloat0.050.0–0.5How far a kept segment extends into removed material. Raising it softens cuts; too high reintroduces the noise you cut.
Min keep island (sec)min_keep_island_sfloat0.25min 0.0Kept fragments shorter than this are absorbed into the surrounding cut. Raising it removes more stray syllables.
Unreliable span: max speech activity to cutunreliable_active_maxfloat0.150.0–1.0Transcription-noise loops are cut automatically when the audio underneath has at most this share of non-silent frames; loops over real speech are always kept and flagged for review. 0 cuts only loops over detected silence. Raising it risks cutting real speech.
First-pass confidence gatefirst_pass_gatestringtangent:0.98—Comma-separated <category>:<min confidence> floors for the first editor pass on English and other non-Arabic jobs. Spans below a floor are kept and listed as review suggestions. Type off to apply every span; an empty field restores the default.
First-pass confidence gate (Arabic)first_pass_gate_arstringempty—The same format, applied to Arabic jobs. Empty by default: the editor's Arabic tangent cuts measured precise enough to apply.
Exemplar word budgetllm_editor_exemplar_max_wordsint500min 100Words the few-shot exemplar block may use inside the editor prompt. 500 truncates after about five examples; 1500 lets sixteen through untruncated.
Exemplar retrieval rankingllm_editor_exemplar_retrievalboolfalse—Rank exemplars by vocabulary overlap with this transcript instead of by length, so the examples come from similar videos.
Negative exemplarsllm_editor_exemplar_negativesint00–16How many kept passages that looked cuttable to show the editor as counter-examples. Needs a bank mined with negatives.
Editor samples (voting)llm_editor_samplesint11–5Run the first editor pass this many times and cut only what a majority agrees on; the rest become review suggestions reading Only some editor samples cut this (…) — kept until you decide. Each extra sample is one more AI call.
Snap cuts to loudness valleyssnap_rms_valleyboolfalse—When a cut boundary falls in a gap without detected silence, place it at the quietest 50 ms of the gap instead of the midpoint. Uses the recording's loudness envelope; no AI call.
Editor consistency post-passllm_editor_consistencyboolfalse—After the first editor pass, merge cuts of the same take group separated by three words or fewer without a pause, and extend a retake or false start over a stranded echo to the next pause. No AI call.
LLM editor max output tokensllm_editor_max_output_tokensint65536min 1024Always set, to prevent silent truncation. Lowering it risks a truncated edit list. Claude Haiku 4.5 accepts at most 64,000 output tokens, so a job on that model fails with Claude HTTP 400 until you set this to 64000.
LLM editor chunk size (words)llm_editor_chunk_wordsint24000min 2000How much transcript goes to the model at once. Also the ceiling above which Second Look cannot run.
LLM editor chunk overlap (words)llm_editor_overlap_wordsint600min 0Overlap between chunks so cuts near a boundary are not missed.
LLM editor exemplarsllm_editor_exemplarsint8min 0How many example removals are injected into the prompt. 0 disables exemplars. Needs an imported bank — see Exemplars.
Exemplar bank pathexemplar_bank_pathpathempty—Overrides the default bank location. Empty means the standard location inside the app's container.
Second Look passessecond_look_passesint00–30 is off. The job toggle sets 1 when enabled. See Second Look.
Second Look condense passsecond_look_condenseboolfalse—After the Second Look passes, one extra call proposes paragraph-scale passages of twenty words or more that this creator would drop, as Condense suggestion (…) — kept until you decide. Suggestions only — never applied automatically. Needs Second Look on.
Second Look min confidencesecond_look_min_confidencefloat0.950.0–1.0Refine-pass proposals below this are never cut automatically; they become review suggestions. Lowering it makes automatic removal far more aggressive.
Second Look max removal %second_look_max_removal_pctfloat15.00.0–100.0Per-pass budget as a share of the words that survived so far. Proposals beyond the budget become review suggestions.
Second Look max spanssecond_look_max_spansint20min 0Hard cap on automatically applied cuts per pass. Excess proposals become review suggestions.
Second Look auto categoriessecond_look_auto_categoriesstringretake_verbatim,retake_reworded,false_start,noise—Which categories may be applied automatically. tangent is deliberately excluded as the known over-cutting risk.

Transcription

LabelKeyTypeDefaultChoicesEffect and when to change
Whisper model namewhisper_cpp_model_namestringggml-large-v3-turbo.bin—The tested default for word timestamps in English and Arabic.
Whisper model pathwhisper_cpp_model_pathpathempty—Overrides where the model is loaded from. Empty means the standard location.
Whisper devicewhisper_deviceselectmetalauto, cpu, metalmetal is correct on Apple Silicon. cpu is for debugging and much slower.
Silence-gated transcriptionasr_silence_gatedbooltrue—Transcribes speech regions rather than the whole file. Leave on.
Hallucination loop recoveryasr_loop_recoverybooltrue—Re-transcribes regions where the model looped. Leave on. On-device only.
OpenAI transcription modelopenai_transcribe_modelstringwhisper-1—Cloud transcription requires word timestamps; only whisper-1 returns them today, and other models fail loudly.
Cloud transcription by defaultcloud_transcription_defaultboolfalse—Pre-selects Cloud for new jobs. Requires Pro and your OpenAI key; each job still shows the choice.

Evals

Optional, and this whole group is hidden in the App Store build — since RoughCut 1.9.2 the Evals group is development-only. Four of its keys (Eval dataset root, Full eval max clips, Langfuse tracing, Langfuse base URL) do still appear on the Basic tab, but the Evaluation dashboard and the golden-set folder picker are not in that build, so there is nothing for them to drive. The two Langfuse key fields appear nowhere, so tracing cannot be supplied with keys. See Evaluate RoughCut against your own edits.

LabelKeyTypeDefaultRangeEffect
Eval dataset rooteval_dataset_rootpathempty—Your golden-set folder. Grant access through Models & Data rather than typing a path.
Full eval max clipseval_full_max_clipsint15min 0Cap on a full run. 0 runs all clips.
Langfuse public keylangfuse_public_keysecretempty—Keychain. Only needed for tracing.
Langfuse secret keylangfuse_secret_keysecretempty—Keychain. Only needed for tracing.
Langfuse base URLlangfuse_base_urlstringhttps://cloud.langfuse.com—Change for a different region or a self-hosted instance.
Langfuse tracinglangfuse_tracingboolfalse—Off means fully local: no telemetry leaves the machine.
Langfuse sample ratelangfuse_sample_ratefloat1.00.0–1.0Present in the schema. See the note below.
Langfuse environmentlangfuse_environmentstringrevamp-v2—Environment tag applied to traces.

System

LabelKeyTypeDefaultEffect
Job TTL hoursjob_ttl_hoursint24Finished jobs older than this are cleaned up automatically.
Max video GBmax_video_gbint12Present in the schema. See the note below.
Max audio GBmax_audio_gbint10Present in the schema. See the note below.
Max total GBmax_total_gbint25The jobs folder is trimmed oldest-first to stay under this.
Keep analysis audiokeep_analysis_audioboolfalseOff deletes the extracted analysis audio (~115 MB per hour) when a cut finishes. Neither the FCPXML nor review needs it.
Log levellog_levelselectINFOPresent in the schema. See the note below.
Four keys — Max video GB, Max audio GB, Langfuse sample rate, and Log level — appear as editable fields but are not read anywhere in the current build. Setting them has no effect. In particular, do not rely on the two GB values as enforced file-size limits.

Keeping this page honest

This table is generated from the app's configuration schema at the version stated in the page metadata, and the drift check treats a change to that schema as a documentation-affecting change. If the app adds or renames a key, this page is regenerated before the change is published.

Still stuck?

Contact support

Was this page helpful?