Advanced settings reference

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

Topic: Settings, privacy, and plans 7 min read Verified against the current RoughCut app on 28 August 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, 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_providerselectgeminigemini, openaiWhich provider runs the editing pass and evaluations. Gemini is recommended: its long context usually fits a whole video in one pass.
Gemini API keygemini_api_keysecretemptyYour own key, stored in the Keychain. Requires billing enabled on its Google project.
Gemini modelgemini_modelstringgemini-3.1-pro-previewThe model used for editing. Change only if your project cannot access the default, and expect different editing behaviour.
Gemini timeout (sec)gemini_timeout_secint600Raise for very long transcripts on slow connections.
OpenAI API keyopenai_api_keysecretemptyYour own key, stored in the Keychain. Also required for Cloud transcription.
OpenAI modelopenai_modelstringgpt-5.2The model used for editing when the provider is OpenAI.
OpenAI timeout (sec)openai_timeout_secint600Also used as the Cloud transcription timeout.

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.00.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.
LLM editor max output tokensllm_editor_max_output_tokensint65536min 1024Always set, to prevent silent truncation. Lowering it risks a truncated edit list.
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_pathpathemptyOverrides the default bank location. Empty means the standard location inside the app's container.
Second Look passessecond_look_passesint0030 is off. The job toggle sets 1 when enabled. See Second Look.
Second Look min confidencesecond_look_min_confidencefloat0.950.01.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_pctfloat10.00.0100.0Per-pass budget as a share of the words that survived so far.
Second Look max spanssecond_look_max_spansint10min 0Hard cap on automatically applied cuts per pass.
Second Look auto categoriessecond_look_auto_categoriesstringretake_verbatim,retake_reworded,false_start,noiseWhich 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.binThe tested default for word timestamps in English and Arabic.
Whisper model pathwhisper_cpp_model_pathpathemptyOverrides 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_gatedbooltrueTranscribes speech regions rather than the whole file. Leave on.
Hallucination loop recoveryasr_loop_recoverybooltrueRe-transcribes regions where the model looped. Leave on. On-device only.
OpenAI transcription modelopenai_transcribe_modelstringwhisper-1Cloud transcription requires word timestamps; only whisper-1 returns them today, and other models fail loudly.
Cloud transcription by defaultcloud_transcription_defaultboolfalsePre-selects Cloud for new jobs. Requires Pro and your OpenAI key; each job still shows the choice.

Evals

Optional. See Evaluate RoughCut against your own edits.

LabelKeyTypeDefaultRangeEffect
Eval dataset rooteval_dataset_rootpathemptyYour 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_keysecretemptyKeychain. Only needed for tracing.
Langfuse secret keylangfuse_secret_keysecretemptyKeychain. Only needed for tracing.
Langfuse base URLlangfuse_base_urlstringhttps://cloud.langfuse.comChange for a different region or a self-hosted instance.
Langfuse tracinglangfuse_tracingboolfalseOff means fully local: no telemetry leaves the machine.
Langfuse sample ratelangfuse_sample_ratefloat1.00.01.0Present in the schema. See the note below.
Langfuse environmentlangfuse_environmentstringrevamp-v2Environment 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?