Platform Nodes
Platform nodes are pre-built templates for common CLI tools. Each declares the correct Nix packages, input/output types, and command structure.
ffmpeg
Section titled “ffmpeg”Video and audio processing. Nix package: ffmpeg.
transcode-video: type: deterministic op: cli.run template: ffmpeg.transcode params: command: > ffmpeg -i {{ input_path }} -vf scale={{ width }}:{{ height }} -c:v libx264 -preset {{ preset }} artifacts/{{ output_name }}.mp4 nix: { packages: [ffmpeg] } inputs: config: { type: Record } outputs: result: { type: Record }| Template | Description |
|---|---|
ffmpeg.transcode | Convert between video formats. |
ffmpeg.extract_audio | Extract audio track from video. |
ffmpeg.thumbnail | Generate thumbnail at timestamp. |
ffmpeg.concat | Concatenate multiple media files. |
pandoc
Section titled “pandoc”Document conversion. Nix packages: pandoc, texlive.combined.scheme-small.
convert-docs: type: deterministic op: cli.run template: pandoc.convert params: command: > pandoc {{ input_path }} -f {{ from_format }} -t {{ to_format }} -o artifacts/{{ output_name }}.{{ to_format }} nix: { packages: [pandoc, texlive.combined.scheme-small] } inputs: config: { type: Record } outputs: result: { type: Record }| Template | Description |
|---|---|
pandoc.convert | Convert between document formats. |
pandoc.pdf | Render to PDF via LaTeX. |
pandoc.html | Render to standalone HTML. |
imagemagick
Section titled “imagemagick”Image manipulation. Nix package: imagemagick.
resize-batch: type: deterministic op: cli.run template: imagemagick.resize params: command: > convert {{ input_path }} -resize {{ dimensions }} -quality {{ quality }} artifacts/{{ output_name }} nix: { packages: [imagemagick] } inputs: images: { type: Table } outputs: results: { type: Table }| Template | Description |
|---|---|
imagemagick.resize | Resize images to target dimensions. |
imagemagick.convert | Convert between image formats. |
imagemagick.composite | Overlay images (watermark, badge). |
imagemagick.annotate | Add text to images. |
yt-dlp
Section titled “yt-dlp”Media download from supported sites. Nix package: yt-dlp.
download-media: type: source op: cli.run template: yt-dlp.download params: command: > yt-dlp -f "{{ format }}" -o "artifacts/%(title)s.%(ext)s" {{ url }} nix: { packages: [yt-dlp] } inputs: request: { type: Record } outputs: result: { type: Record }| Template | Description |
|---|---|
yt-dlp.download | Download video in specified format. |
yt-dlp.audio | Extract audio only (mp3, opus, wav). |
yt-dlp.metadata | Fetch metadata without downloading. |
yt-dlp.playlist | Download all items in a playlist. |