---
id: plugin.lumi_transcription
title: Lumi Transcription
scope: plugins
status: active
priority: 10
visibility: user
category: Plugin
tags: plugin, lumi_transcription
generated: true
editable: false
---
# Lumi Transcription
Server-hosted whisper.cpp transcription for Lumi Companion and OBS closed captions.
## Metadata
Plugin ID: lumi_transcription
Version: 0.1.0-experimental.9
Default state: enabled
## Web Routes
- /plugins/lumi_transcription
- GET /plugins/lumi_transcription
- GET /plugins/lumi_transcription/api/status
- POST /plugins/lumi_transcription/api/pairing-package
- POST /plugins/lumi_transcription/api/companion/download
- GET /plugins/lumi_transcription/api/companion/update
- POST /plugins/lumi_transcription/api/pair
- GET /plugins/lumi_transcription/api/devices
- POST /plugins/lumi_transcription/api/devices/:id/revoke
- POST /plugins/lumi_transcription/api/devices/:id/capabilities
- GET /plugins/lumi_transcription/api/tests
- GET /plugins/lumi_transcription/api/tests/:id
- GET /plugins/lumi_transcription/api/settings
- PATCH /plugins/lumi_transcription/api/settings
- POST /plugins/lumi_transcription/api/models/:id/download
- POST /plugins/lumi_transcription/api/models/:id/load
- POST /plugins/lumi_transcription/api/runtime/:id/install
- GET /plugins/lumi_transcription/api/logs
## Route Reference
### MOUNT /plugins/lumi_transcription

- Purpose: Mounts the plugin router at this base WebUI path.
- Inputs: No request parameters detected by static analysis.
- Response format: Plugin router mount point.
- Access: Access is controlled by the mount options and individual plugin routes.
- Side effects: No direct route action; child routes handle requests.
- Limits/notes: Mount metadata is inferred from static source scanning.

### GET /plugins/lumi_transcription

- Purpose: Renders or serves the lumi_transcription plugin page.
- Inputs: No request parameters detected by static analysis.
- Response format: plain or HTML response
- Access: admin access expected
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations.

### GET /plugins/lumi_transcription/api/status

- Purpose: Renders or serves the lumi_transcription plugin page for api status.
- Inputs: No request parameters detected by static analysis.
- Response format: JSON response
- Access: admin access expected
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. API consumers should expect JSON unless the response format says otherwise.

### POST /plugins/lumi_transcription/api/pairing-package

- Purpose: Processes the lumi_transcription plugin action for api pairing package.
- Inputs: No request parameters detected by static analysis.
- Response format: plain or HTML response
- Access: admin access expected; logged-in session required or used
- Side effects: Action route; side effects were not detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion. API consumers should expect JSON unless the response format says otherwise.

### POST /plugins/lumi_transcription/api/companion/download

- Purpose: Processes the lumi_transcription plugin action for api companion download.
- Inputs: No request parameters detected by static analysis.
- Response format: plain or HTML response
- Access: admin access expected; logged-in session required or used
- Side effects: Action route; side effects were not detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion. API consumers should expect JSON unless the response format says otherwise.

### GET /plugins/lumi_transcription/api/companion/update

- Purpose: Renders or serves the lumi_transcription plugin page for api companion update.
- Inputs: query: `current_version`
- Response format: JSON response
- Access: No explicit access guard detected in the route handler; check surrounding router/mount middleware.
- Side effects: writes or mutates server-side state
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Input length or numeric bounds are enforced by helper functions in the handler. API consumers should expect JSON unless the response format says otherwise.

### POST /plugins/lumi_transcription/api/pair

- Purpose: Processes the lumi_transcription plugin action for api pair.
- Inputs: body: full submitted body is passed to a helper; exact fields are defined by the matching form/service
- Response format: Form/action response; exact format was not detected statically.
- Access: No explicit access guard detected in the route handler; check surrounding router/mount middleware.
- Side effects: Action route; side effects were not detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion. API consumers should expect JSON unless the response format says otherwise.

### GET /plugins/lumi_transcription/api/devices

- Purpose: Renders or serves the lumi_transcription plugin page for api devices.
- Inputs: query: `status`
- Response format: JSON response
- Access: admin access expected
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. API consumers should expect JSON unless the response format says otherwise.

### POST /plugins/lumi_transcription/api/devices/:id/revoke

- Purpose: Processes the lumi_transcription plugin action for api devices id revoke.
- Inputs: path params: `id`
- Response format: JSON response
- Access: admin access expected
- Side effects: Action route; side effects were not detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Most non-API POST routes are browser form submissions and usually redirect after completion. API consumers should expect JSON unless the response format says otherwise.

### POST /plugins/lumi_transcription/api/devices/:id/capabilities

- Purpose: Processes the lumi_transcription plugin action for api devices id capabilities.
- Inputs: path params: `id`; body: `capabilities`
- Response format: JSON response
- Access: admin access expected
- Side effects: writes or mutates server-side state
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Most non-API POST routes are browser form submissions and usually redirect after completion. API consumers should expect JSON unless the response format says otherwise.

### GET /plugins/lumi_transcription/api/tests

- Purpose: Renders or serves the lumi_transcription plugin page for api tests.
- Inputs: No request parameters detected by static analysis.
- Response format: JSON response
- Access: admin access expected
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. API consumers should expect JSON unless the response format says otherwise.

### GET /plugins/lumi_transcription/api/tests/:id

- Purpose: Renders or serves the lumi_transcription plugin page for api tests id.
- Inputs: path params: `id`
- Response format: JSON response
- Access: admin access expected
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. API consumers should expect JSON unless the response format says otherwise.

### GET /plugins/lumi_transcription/api/settings

- Purpose: Renders or serves the lumi_transcription plugin page for api settings.
- Inputs: No request parameters detected by static analysis.
- Response format: JSON response
- Access: No explicit access guard detected in the route handler; check surrounding router/mount middleware.
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. API consumers should expect JSON unless the response format says otherwise.

### PATCH /plugins/lumi_transcription/api/settings

- Purpose: Processes the lumi_transcription plugin action for api settings.
- Inputs: body: `changes`
- Response format: Form/action response; exact format was not detected statically.
- Access: No explicit access guard detected in the route handler; check surrounding router/mount middleware.
- Side effects: No side effects detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. API consumers should expect JSON unless the response format says otherwise.

### POST /plugins/lumi_transcription/api/models/:id/download

- Purpose: Processes the lumi_transcription plugin action for api models id download.
- Inputs: path params: `id`; body: `confirmed`
- Response format: Form/action response; exact format was not detected statically.
- Access: admin access expected
- Side effects: Consumes submitted data; state mutation happens in called helpers if present.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion. API consumers should expect JSON unless the response format says otherwise.

### POST /plugins/lumi_transcription/api/models/:id/load

- Purpose: Processes the lumi_transcription plugin action for api models id load.
- Inputs: path params: `id`
- Response format: JSON response
- Access: admin access expected; logged-in session required or used
- Side effects: Action route; side effects were not detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion. API consumers should expect JSON unless the response format says otherwise.

### POST /plugins/lumi_transcription/api/runtime/:id/install

- Purpose: Processes the lumi_transcription plugin action for api runtime id install.
- Inputs: path params: `id`; body: `confirmed`
- Response format: Form/action response; exact format was not detected statically.
- Access: admin access expected
- Side effects: writes or mutates server-side state
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion. API consumers should expect JSON unless the response format says otherwise.

### GET /plugins/lumi_transcription/api/logs

- Purpose: Renders or serves the lumi_transcription plugin page for api logs.
- Inputs: No request parameters detected by static analysis.
- Response format: JSON response
- Access: admin access expected
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. API consumers should expect JSON unless the response format says otherwise.
## Commands
- No plugin command triggers detected.
## Source
Plugin folder: plugins/lumi_transcription
