Olenji command and model reference
Use this reference for exact commands, model IDs, settings, and agent request formats. For ordinary tasks and plain-language explanations, start with the user guide.
This reference describes the same inspected source as the user guide. Names and model counts are not substitutes for checking whether a feature runs on your computer.
CLI command directoryContents
Every command begins with olenji. Use olenji COMMAND --help for all options in your installed build. --json requests structured output; readable exports write their document bytes rather than a normal command-result wrapper.
The complete option definitions are also stored in reference-inventory.json in this bundle. They are extracted from the parser, not maintained as a second hand-written parser.
| Command | Function |
|---|---|
serve |
Run the loopback service in the foreground; set host, port, and log level. |
service start |
Start or connect to the selected workspace service. |
service status |
Report service ownership, running state, and client/service versions. |
service stop |
Request shutdown and normally wait for owned workers to finish. |
service logs |
Read a bounded suffix of the service log. |
doctor |
Report current platform, inference, capture, and capacity information. |
docs |
Print the installed offline handbook link; use --open, --list, or --section ID. Does not start a service or create a workspace. |
schema |
Return the versioned API schema. |
models list |
List the bundled catalog; optionally filter installed models or text. |
models search |
Search the bundled catalog by a text query. |
models inspect |
Inspect one model’s artifact, language, compatibility, and readiness. |
models verify |
Recheck managed model files against recorded identities. |
models remove |
Remove a model’s managed weights when no worker or live session owns them. |
models plan-install |
Plan a model/profile install, optionally filtering host compatibility or language. |
models install |
Install the selected model/profile; wait by default or return a job. |
models parity |
Report dated catalog parity and host-specific installation/readiness. |
transcribe |
Transcribe one or several local paths with shared options; each gets its own session. |
live start |
Start microphone, device, system, or browser capture; optionally open a view. |
live pause |
Pause the selected live session. |
live resume |
Resume the selected paused session. |
live stop |
Stop capture and flush/finalize accepted audio; inspect any returned job. |
live status |
Inspect the live session’s stored state. |
live sources |
Discover available input IDs and host blockers. |
sessions list |
List sessions, with a text filter and result limit. |
sessions search |
Search session titles and source text. |
sessions get |
Read a full session snapshot in this archive; prefer window/API metadata for bounded reads. |
sessions snapshot |
Read the full source, tracks, notes, labels, and cursor. |
sessions delete |
Permanently delete an inactive session and its managed data. |
sessions window |
Read selected source and connected translation context from a JSON query. |
sessions rename |
Change a session title. |
sessions configure |
Patch allowed session metadata using a JSON object. |
sessions refine |
Re-transcribe retained audio while preserving human-edited regions. |
sessions create |
Create an empty session for supplied transcript text. |
jobs list |
List durable operations. |
jobs get |
Inspect one job’s state, progress, result, or error. |
jobs cancel |
Request cancellation of the selected owned operation. |
jobs wait |
Observe a job until terminal state or an optional wait budget. |
events |
Read a bounded batch or follow replayable changes from a cursor. |
segments list |
Read source with time/speaker filters and cursor-consistent paging. |
segments add |
Append supplied timed source text. |
segments edit |
Correct text, time, or speaker with an expected revision. |
segments history |
Read prior revisions of one turn. |
segments split |
Split a turn at a time with explicit left/right text. |
segments merge |
Merge adjacent turns from a JSON file containing revisions. |
speakers list |
List session-local speaker labels. |
speakers add |
Create a user-supplied label. |
speakers rename |
Change a label without inferring identity. |
speakers color |
Set a six-digit hexadecimal display color. |
speakers merge |
Merge a label into another label in the same session. |
translate |
Run one configured-provider translation job. |
translations list |
Read translation tracks, source references, and stale state. |
translations put |
Write translations supplied in a JSON file or stdin. |
annotations list |
Read stored notes and markers. |
annotations add |
Create an annotation, optionally linked to source turns. |
annotations delete |
Delete a selected annotation. |
ui open |
Open/reuse a paired view; optionally print a one-use URL or await acknowledgment. |
ui list |
List registered views. |
ui status |
Inspect view connection, requested/applied revision, and visibility. |
ui configure |
Patch structured presentation settings, optionally guarded by a revision. |
ui detach |
Detach a view without ending service-owned capture. |
tui |
Render interactive captions or return one bounded machine snapshot. |
export |
Write JSON, JSONL, text, Markdown, subtitles, or standalone HTML. |
providers list |
List configured text providers without exposing secret keys. |
providers add |
Create or update a text endpoint and optional credential. |
providers remove |
Remove a provider and its stored credential. |
config get |
Read effective workspace defaults. |
config set |
Set one supported default using a scalar or string. |
mcp serve |
Run the stdio MCP adapter for an existing agent. |
api |
Call an authenticated local GET/POST/PATCH/DELETE operation. |
MCP tool directoryContents
These are the tools available to a connected agent. A tool's input schema defines its accepted fields. CLI operations without a dedicated MCP tool remain available through the terminal or local API.
| Tool | Function |
|---|---|
olenji_capabilities |
Report actual platform, capture and inference readiness. |
olenji_list_models |
Read catalog identities, compatibility, readiness, and inference request controls. |
olenji_plan_install |
Plan artifacts, size, terms, and exclusions for a model/profile. |
olenji_install_model |
Install and verify a model/profile; return a job. |
olenji_model_parity |
Report the reviewed FluidVoice identity set and host-specific blockers. |
olenji_list_sessions |
Search session titles and transcript text, with a bounded result count. |
olenji_session |
Read bounded session metadata and speaker labels, not the complete transcript. |
olenji_transcribe |
Submit one local media path; resolve relative paths at the MCP caller. |
olenji_live_start |
Start the selected capture route; browser sources still need a supplying tab. |
olenji_capture_control |
Pause, resume, or stop a selected capture; stop can return a finalization job. |
olenji_job |
Read durable job status, progress, result, and typed errors. A completed profile job can still report exclusions in result.complete. |
olenji_cancel_job |
Request cancellation of a durable inference/download job. |
olenji_events |
Read changes after a cursor in bounded batches. |
olenji_segments |
Read committed turns with filters and cursor-consistent pagination. |
olenji_edit_segment |
Patch source text, timing, or speaker with the expected revision. |
olenji_write_translations |
Write translations against exact source revisions without replacing source text. |
olenji_translate |
Start one configured-provider translation job under session privacy policy. |
olenji_views |
Inspect view connection, desired/applied revisions, heartbeat, and visibility. |
olenji_open_view |
Open or reuse a paired local view; optionally return a pairing link. |
olenji_configure_view |
Set structured presentation and optional session/revision preconditions. |
olenji_name_speaker |
Apply a user-supplied name or display color to an existing speaker cluster; does not infer a person's identity. |
olenji_annotate |
Store an agent-authored note, task, decision, summary, or other supported marker. |
olenji_export |
Export seven formats to a local destination or return bounded inline content. |
olenji_create_session |
Create an empty session for agent-supplied transcript segments and annotations. |
olenji_session_window |
Read a bounded source window with whole translation-group context, revisions, and cursor. |
olenji_configure_session |
Update title or allowed metadata, including privacy and automatic translation. |
olenji_refine |
Re-transcribe retained audio with a selected model, preserving human-edited regions. Returns a durable job. |
olenji_delete_session |
Permanently delete an inactive session, retained audio, transcript and associated event payloads. |
olenji_inspect_model |
Inspect exact artifacts, capabilities, language constraints, readiness and provenance for one model. |
olenji_verify_model |
Recheck installed model files against their recorded hashes. |
olenji_remove_model |
Remove model weights from managed storage. Refuses while inference or a live session holds a model lease. |
olenji_add_segment |
Append a timed committed source segment to an agent-created session. |
olenji_segment_history |
Read revision history for one source segment. |
olenji_split_segment |
Split one transcript turn at a timestamp with an expected source revision. |
olenji_merge_segments |
Merge adjacent transcript turns with expected revisions for every source segment. |
olenji_create_speaker |
Create a speaker label supplied by the user, without guessing identity. |
olenji_merge_speakers |
Merge a source acoustic cluster into another cluster in the same session; affected translations become stale. |
olenji_providers |
List configured translation endpoints and model names; secret keys are never returned. |
olenji_configure_provider |
Configure a local/HTTPS compatible text endpoint and optional secret. |
olenji_remove_provider |
Remove a configured translation provider and its stored credential. |
olenji_detach_view |
Persistently detach a browser view. Service-owned capture continues; its viewer can deliberately reconnect. |
Model catalogContents
An entry is an exact model size or conversion, not necessarily a unique model family. Each entry needs a compatible host and runtime. Native model streaming capability does not prove that Olenji uses a continuous streaming decoder for that entry.
The FV (FluidVoice) column identifies the dated 17-entry comparison set. The catalog's terms and sources are recorded in the machine-readable inventory. Inspect the installed app for actual readiness:
olenji models inspect MODEL_ID --json
| Model ID | Artifact source | Runtime and host | FV |
|---|---|---|---|
whisper.tiny.q8_0 |
handy-computer/whisper-tiny-gguf | transcribe.cpp; Desktop | Yes |
whisper.base.q8_0 |
handy-computer/whisper-base-gguf | transcribe.cpp; Desktop | Yes |
whisper.small.q8_0 |
handy-computer/whisper-small-gguf | transcribe.cpp; Desktop | Yes |
whisper.medium.q8_0 |
handy-computer/whisper-medium-gguf | transcribe.cpp; Desktop | Yes |
whisper.large-v3-turbo.q8_0 |
handy-computer/whisper-large-v3-turbo-gguf | transcribe.cpp; Desktop | Yes |
whisper.large-v3.q8_0 |
handy-computer/whisper-large-v3-gguf | transcribe.cpp; Desktop | Yes |
parakeet.tdt-v3.coreml |
FluidInference/parakeet-tdt-0.6b-v3-coreml | apple-coreml; Apple Silicon 14+ | Yes |
parakeet.tdt-v2.coreml |
FluidInference/parakeet-tdt-0.6b-v2-coreml | apple-coreml; Apple Silicon 14+ | Yes |
fluid-speech.mini.coreml |
FluidVoice model host | apple-coreml; Apple Silicon 15+ | Yes |
fluid-speech.pico.coreml |
FluidVoice model host | apple-coreml; Apple Silicon 15+; weight terms unresolved | Yes |
parakeet.flash.160ms.coreml |
FluidInference/parakeet-realtime-eou-120m-coreml | apple-coreml; Apple Silicon 14+ | Yes |
cohere.transcribe-2026-03.6bit.coreml |
BarathwajAnandan/cohere-transcribe-03-2026-CoreML-6bit | apple-coreml; Apple Silicon 15+ | Yes |
nemotron.3.5.offline.6bit.coreml |
BarathwajAnandan/nemotron-3.5-asr-offline-6bit-CoreML | apple-coreml; Apple Silicon 14+ | Yes |
nemotron.3.5.streaming320.int8.coreml |
BarathwajAnandan/nemotron-3.5-asr-streaming320-int8-CoreML | apple-coreml; Apple Silicon 15+ | Yes |
apple.speech.legacy |
Apple OS assets | apple-speech; macOS 14+ | Yes |
apple.speech.analyzer |
Apple OS assets | apple-speech; Apple Silicon 26+ | Yes |
faster-whisper.tiny |
Systran/faster-whisper-tiny | faster-whisper; Desktop | — |
faster-whisper.base |
Systran/faster-whisper-base | faster-whisper; Desktop | — |
faster-whisper.small |
Systran/faster-whisper-small | faster-whisper; Desktop | — |
faster-whisper.medium |
Systran/faster-whisper-medium | faster-whisper; Desktop | — |
faster-whisper.large-v3-turbo |
mobiuslabsgmbh/faster-whisper-large-v3-turbo | faster-whisper; Desktop | — |
faster-whisper.large-v3 |
Systran/faster-whisper-large-v3 | faster-whisper; Desktop | — |
qwen3-asr.0.6b.q8_0 |
handy-computer/qwen3-asr-0.6b-gguf | transcribe.cpp; Desktop | — |
qwen3-asr.1.7b.q8_0 |
handy-computer/qwen3-asr-1.7b-gguf | transcribe.cpp; Desktop | Yes |
moonshine.streaming-tiny.q8_0 |
handy-computer/moonshine-streaming-tiny-gguf | transcribe.cpp; Desktop | — |
moonshine.streaming-small.q8_0 |
handy-computer/moonshine-streaming-small-gguf | transcribe.cpp; Desktop | — |
moonshine.streaming-medium.q8_0 |
handy-computer/moonshine-streaming-medium-gguf | transcribe.cpp; Desktop | — |
voxtral.realtime-4b.q4_k_m |
handy-computer/Voxtral-Mini-4B-Realtime-2602-gguf | transcribe.cpp; Desktop | — |
fluid-speech.mini.onnx |
FluidVoice-Labs/fluid-speech-mini-onnx | onnxruntime; Desktop | — |
diarization.wespeaker.en |
Sherpa ONNX release asset | sherpa-onnx; Desktop | — |
Model profilesContents
A profile is a fixed selection for installation. It is not automatic routing between models.
| Profile | Included selection |
|---|---|
recommended |
Faster Whisper Tiny and WeSpeaker. |
portable |
Faster Whisper Tiny, Faster Whisper Small, and WeSpeaker. |
live |
Moonshine Streaming Tiny, Faster Whisper Small, and WeSpeaker. |
fluidvoice-parity, fluidvoice-exact |
All 17 identities in the pinned 25 October 2026 comparison. |
fluidvoice-2026-10-22 |
The earlier 16-identity comparison, without Qwen3 ASR 1.7B. |
all |
Every catalog entry, still subject to each entry's requirements. |
olenji models install --profile recommended --json
olenji models plan-install --profile fluidvoice-parity --compatible-only --json
olenji models parity --json
Inspect skipped entries. A successful compatible-only installation is not a successful installation of the entire profile. Apple-only entries remain Apple-only.
Saved settingsContents
Omitted options use the saved defaults shown here. They are values in the reviewed source, not recommendations for every machine.
| Setting | Default | Purpose |
|---|---|---|
default_model |
"faster-whisper.tiny" |
Recognition model for subsequent requests that omit a model. |
default_language |
"auto" |
Recognition language; auto requests supported language detection. |
default_translation_language |
"tr" |
Translation/display target when that operation uses the workspace default. |
default_provider |
"" |
Configured text provider ID; empty means no provider selected. |
local_only |
true |
Require local Olenji-managed processing unless a session overrides this. Apple Legacy also receives this requirement. |
retain_audio |
false |
Keep managed audio after processing when enabled. |
theme |
"light" |
Browser theme: light, dark, or system. |
ui_layout |
"conversation" |
Initial layout for new views. |
max_upload_mb |
4096 |
Upload size limit in MiB; accepted setting range is 1–102,400. |
auto_translate |
false |
Default automatic-translation preference for applicable sessions. |
max_parallel_jobs |
2 |
Ordinary executor concurrency, 1–8; restart the service after changing it. |
Read or change them through the CLI:
olenji config get --json
olenji config set default_translation_language tr --json
olenji config set ui_layout bilingual --json
olenji config set default_model faster-whisper.small --json
Changing default_model does not install it. Changes affect subsequent operations; they do not silently replace a running session's model. max_parallel_jobs takes effect after service restart. Explicit request options override defaults.
Session-level metadata permits retain_audio, translation_language, diarize, local_only, tags, auto_translate, translation_provider, and translation_model. Updating a diarization preference is not retroactive speaker processing; use refinement with retained audio to reprocess a completed recording.
Browser file-upload preference: the upload form now starts with the saved retain_audio value, just as the live form does. An explicit choice in the upload form takes precedence for that file.
Recognition settingsContents
Leave these unset unless you have a reason to tune them. More threads or a larger model do not guarantee better live performance.
| Backend | Accepted explicit controls |
|---|---|
| Faster Whisper | device, compute_type, cpu_threads. |
| transcribe.cpp | native_backend, cpu_threads. |
| Fluid Mini ONNX | device, cpu_threads. |
| Apple/Core ML helpers and speaker embeddings | No controls through this inference-options interface. |
olenji transcribe interview.wav --model faster-whisper.tiny --device cpu --compute-type int8 --cpu-threads 2
Use the individual flags or one --inference JSON object, not both. Supported thread values are 1 through 64. device accepts cpu or cuda; the actual engine checks availability. A requested backend does not install its drivers.
native_backend accepts auto, cpu, metal, vulkan, cpu_accel, cuda, or rocm, depending on the native build. Unsupported combinations fail; they should not be presented as tested accelerators.
The pinned Qwen3 and Voxtral adapters use automatic language detection. Apple Speech and the Cohere conversion need an explicit supported recognition language. Not every model accepts the same recognition controls.
Refinement inherits compatible prior settings when appropriate. A supplied inference object replaces them. --inference '{}' requests the backend defaults rather than merging selected fields.
Edit and translation examplesContents
Read the actual IDs and revisions before editing. The files in examples/ are templates, not requests that work unchanged against any session.
Read a small window
Save this as window.json:
{
"limit": 50,
"target_language": "tr",
"committed_only": true
}
olenji sessions window SESSION_ID --query @window.json --json
Without offset, the result starts near the newest turns. Use "offset": 0 to start at the beginning. window_ids identifies the requested rows; additional source rows can be included to keep multi-turn translations understandable. Use the returned paging values rather than counting those extra rows as new page entries.
Submit a translation from an agent
Save this as translations.json and replace the source reference with a real completed turn:
{
"translations": [
{
"source_refs": [{"segment_id": "SEGMENT_ID", "revision": 1}],
"target_language": "tr",
"text": "Toplantı saat üçte başlıyor.",
"producer": {"kind": "external_agent", "name": "my-agent"}
}
]
}
olenji translations put SESSION_ID --file translations.json --json
The Turkish sentence is an example, not the correct translation for every source. Include every source reference when one sentence spans several turns. Read existing translations first. Use producer.kind: "human" only for a genuine human correction.
A batch accepts up to 500 translations; a translation accepts up to 100 source references. The smaller HTTP request-size limit still applies. The CLI permits up to 8 MiB of JSON input and 256 nested containers, but that is not permission to exceed the service's 2 MiB ordinary request limit.
Merge adjacent source turns
Save this as merge.json, using real current revisions:
{
"segment_ids": ["SEGMENT_A", "SEGMENT_B"],
"expected_revisions": {"SEGMENT_A": 1, "SEGMENT_B": 2},
"text": "The combined source text."
}
olenji segments merge SESSION_ID --file merge.json --json
The turns must be adjacent source turns. Search results that happen to appear next to each other are not sufficient.
Configure a bilingual browser view
Save this as view.json:
{
"layout": "bilingual",
"target_language": "tr",
"typography": {"original_scale": 1.0, "translation_scale": 1.3},
"original_visible": true,
"follow": "live"
}
olenji ui list --json
olenji ui configure VIEW_ID --config @view.json --wait-applied 5 --json
The result distinguishes requested settings from a connected view applying them. Applied settings do not guarantee visibility, focus, microphone permission, or audible playback.
Translation service setupContents
A provider must already serve a compatible text model. Olenji's speech-model installer does not download or start that text model.
olenji providers add local --base-url http://127.0.0.1:11434/v1 --model TEXT_MODEL_ID
olenji config set default_provider local
olenji translate SESSION_ID --provider local --to tr --json
Replace the example address and model with your actual local service. Online providers require HTTPS. Use --api-key-env VARIABLE_NAME or --api-key-stdin to avoid putting the key literally in the command history. Provider files remain private local files, not an encrypted secrets vault.
Changing the configured service address discards the stored key unless you explicitly supply a replacement. Provider lists omit the key itself.
To permit an online provider for one session, obtain the user's agreement and save this as allow-online-text.json:
{"local_only": false}
olenji sessions configure SESSION_ID --metadata @allow-online-text.json --json
This permits online processing for the session, not only one translation request. An online text provider receives transcript text. Apple Legacy can also use network recognition when this restriction is removed. It does not make an external agent private or audit another service's networking.
For the inspected source, automatic recovery uses an initial attempt and at most three retries, with 30-, 60-, and 120-second delays. The retry deadline survives service restart. Permanent or exhausted failures stay blocked until relevant repair or explicit reconfiguration. A separate manual translation request has its own job.
Disabling automatic work and canceling a currently owned job are distinct actions. Do not use unrelated tag edits as a retry mechanism. Source commits and scheduler notification are separate steps in this inspected build; later conversation-described transactional recovery changes are not verified here.
Local API and agent contractsContents
Submit a local file
A local path request uses POST /api/transcribe/path. The service must be able to read that path. Save this as file-request.json:
{
"path": "/absolute/path/interview.mp4",
"model_id": "faster-whisper.tiny",
"language": "en",
"diarize": false,
"retain_audio": true
}
olenji api POST /api/transcribe/path --body @file-request.json --json
For byte uploads, use multipart POST /api/transcribe with the file field and the supported form fields. File-path requests and uploads are different routes. Neither is a website-video downloader.
Use the installed schema for exact operations:
olenji schema --json
Direct HTTP callers need the local bearer token or a paired browser session. Never paste api.token into a public issue. The CLI and MCP handle their local connection; callers should not bypass authentication or expose the service publicly.
Read metadata without the whole transcript
In this inspected build, CLI sessions get and sessions snapshot return the full record. Use the MCP olenji_session tool or the metadata endpoint for a small result:
olenji api GET /api/sessions/SESSION_ID/metadata --json
Use session windows or paginated segments for transcript text. If a cursor-consistent page request reports a change, restart that read rather than combining mismatched pages.
Follow changes and retry work
olenji events SESSION_ID --after 0 --limit 100 --committed-only --json
olenji events SESSION_ID --follow --committed-only --jsonl
olenji jobs wait JOB_ID --wait-timeout 30 --json
The returned cursor records which changes have been consumed. Following events is not a substitute for retaining the current source revision when editing. A reset response means the saved position is no longer valid and a fresh read is needed.
A wait timeout ends observation, not the underlying job. Keep the returned ID and inspect it rather than automatically creating duplicate work. Supported starts accept --idempotency-key; reuse the same key and arguments only when retrying the same intended request.
Successful ordinary responses use ok, schema_version, and data. Failures include an error code, message, details, and retryability. A success envelope for job admission is not proof that the job later completed. Export bytes and MCP messages have their own output formats.
Reviewed build and evidenceContents
The source branch reviewed on 28 October 2026 descends from the 5,374,566-byte olenji-1.0.0.zip archive identified below. The review uses the supplied olenji-source-update.zip, then applies the matching changes documented in this edition. The original archive has SHA-256:
7543479f38124b183aefd24f07522a4fde42664103241e0bda1ffa1ac07c304c
This branch preserves offline help and the upload audio-retention fix. The current review separates shared helpers from service startup, validates translation addresses consistently, enables repair or removal of damaged provider entries, preserves created views when browser launch fails, and fixes search highlighting of literal text. Command examples and request templates are checked against the actual parser and schemas. Other changes described in conversation but absent from the supplied source are not implied. The unchanged 1.0.0 version string is not a unique build identity; use the source fingerprints and review report.
source-provenance.json identifies reviewed files. reference-inventory.json records complete commands, settings, model records, and tool schemas. The verifier checks these without changing the expected fingerprints. Review actual source changes before updating them.
The evidence separates parser checks, schema validation, source-backed behavior tests, and presentation checks. It does not claim new speech-recognition, physical capture, GPU, Mac, or Windows validation.
The upload-default patch is applied in this source branch. Its real-browser test checks the selected preference and the submitted form data; it does not test speech recognition or audio deletion. See MAINTAINING_DOCUMENTATION.md for repeatable checks and future updates.