forked from genewildish/Mainline
2.2 KiB
2.2 KiB
name, description, compatibility, metadata
| name | description | compatibility | metadata | ||||
|---|---|---|---|---|---|---|---|
| mainline-presets | Creating pipeline presets in TOML format for Mainline | opencode |
|
What This Skill Covers
This skill covers how to create pipeline presets in TOML format for Mainline's rendering pipeline.
Key Concepts
Preset Loading Order
Presets are loaded from multiple locations (later overrides earlier):
- Built-in:
engine/presets.toml - User config:
~/.config/mainline/presets.toml - Local override:
./presets.toml
PipelinePreset Dataclass
@dataclass
class PipelinePreset:
name: str
description: str = ""
source: str = "headlines" # Data source
display: str = "terminal" # Display backend
camera: str = "scroll" # Camera mode
effects: list[str] = field(default_factory=list)
border: bool = False
TOML Format
[presets.my-preset]
description = "My custom pipeline"
source = "headlines"
display = "terminal"
camera = "scroll"
effects = ["noise", "fade"]
border = true
Creating a Preset
Option 1: User Config
Create/edit ~/.config/mainline/presets.toml:
[presets.my-cool-preset]
description = "Noise and glitch effects"
source = "headlines"
display = "terminal"
effects = ["noise", "glitch"]
Option 2: Local Override
Create ./presets.toml in project root:
[presets.dev-inspect]
description = "Pipeline introspection for development"
source = "headlines"
display = "terminal"
effects = ["hud"]
Option 3: Built-in
Edit engine/presets.toml (requires PR to repository).
Available Sources
headlines- RSS news feedspoetry- Literature modepipeline-inspect- Live DAG visualization
Available Displays
terminal- ANSI terminalwebsocket- Web browsernull- Headlessmoderngl- GPU-accelerated (optional)
Available Effects
See effects_plugins/:
- noise, fade, glitch, firehose
- border, crop, tint, hud
Validation Functions
Use these from engine/pipeline/presets.py:
validate_preset()- Validate preset structurevalidate_signal_path()- Detect circular dependenciesgenerate_preset_toml()- Generate skeleton preset