| name | pipeline-component-integration |
| description | Integrate a new component into the ORBIS pipeline — import, builder function, config wiring, pipeline insertion, pyproject extra, and env/yaml examples. |
/pipeline-component-integration
When to use
Use this when adding a new processing stage (e.g. wake-word detector, speaker gate, echo guard) to the ORBIS app.py pipeline. Covers every touch-point from code to config to docs.
Steps
- Import — Add the component's import to
app.py.
- Builder function — Add a
_build_<component>() helper next to the other _build_* functions in app.py.
- Config resolution — Locate the behavior-block resolution section and add the component's config key (e.g.
ww_cfg).
- Instantiate in pipeline setup — Add
<component> = _build_<component>(<cfg>) beside the other component constructions.
- Insert into pipeline — Add the component at the correct position in the pipeline chain (e.g. first, before echo-guard).
- pyproject.toml extra — Add a
[<component>] optional-dependencies extra so the dependency is opt-in.
- Update
.env.example and orbis.example.yaml — Document any new env vars and config keys so users know what to set.
Examples
Adding a wake-word detector:
from orbis.wake_word import WakeWordDetector in app.py
def _build_wake_word_detector(cfg): ... next to _build_speaker_gate
- Add
ww_cfg = cfg.get("wake-word", {}) in the behavior-block resolution section
wake_word = _build_wake_word_detector(ww_cfg) beside speaker_gate = _build_speaker_gate(sg_cfg)
- Insert
wake_word as the first stage in the pipeline, before echo-guard
- Add
wake-word = ["pvporcupine>=3"] under [project.optional-dependencies] in pyproject.toml
- Add
WAKE_WORD_MODEL= to .env.example and wake-word: { enabled: false } to orbis.example.yaml
Adding a noise suppressor:
Follow the same 7 steps, inserting the suppressor after echo-guard but before the speaker gate.