Files
sideline/.opencode/skills/mainline-presets/SKILL.md

2.2 KiB

name, description, compatibility, metadata
name description compatibility metadata
mainline-presets Creating pipeline presets in TOML format for Mainline opencode
audience source_type
developers codebase

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):

  1. Built-in: engine/presets.toml
  2. User config: ~/.config/mainline/presets.toml
  3. 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 feeds
  • poetry - Literature mode
  • pipeline-inspect - Live DAG visualization

Available Displays

  • terminal - ANSI terminal
  • websocket - Web browser
  • null - Headless
  • moderngl - 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 structure
  • validate_signal_path() - Detect circular dependencies
  • generate_preset_toml() - Generate skeleton preset