Skip to content

Getting Started

tonythethompson edited this page Jul 28, 2026 · 4 revisions

Getting Started & Build

Section: Overview · Introduction-to-Trackdub · Home · Architecture-Overview

Trackdub is a cross-platform, local-first AI dubbing workstation (.NET 10, Avalonia, ONNX, FFmpeg). This page gets you building and running the desktop app.

Prerequisites

Requirement Notes
.NET 10 SDK Required
Git 2.30+ Submodules required for a full checkout
FFmpeg / ffprobe On PATH for media stages (bootstrap scripts can fetch natives)

Docker is not required for the desktop app.

Clone and build

git clone --recurse-submodules https://github.com/trackdubllc/Trackdub-gated.git
cd Trackdub-gated
# If clone skipped submodules:
git submodule update --init --recursive

dotnet restore Trackdub.slnx
dotnet build Trackdub.slnx -m:1
dotnet test Trackdub.slnx -m:1

Engine, Sdk, and Cli sources live under external/Trackdub/ in this checkout.

Run the desktop app

Platform Command
Windows dotnet run --project src/Trackdub.App.Avalonia -f net10.0-windows10.0.19041.0 --no-restore
Linux/macOS dotnet run --project src/Trackdub.App.Avalonia -f net10.0

CLI, tools, and benchmarks

dotnet run --project external/Trackdub/src/Trackdub.Cli -- --help
dotnet run --project external/Trackdub/src/Trackdub.Tools -- --help
dotnet run --project external/Trackdub/src/Trackdub.Benchmarks -- --help

Solution filters

Filter Scope
Trackdub.slnx Full solution
Trackdub.Inference.slnx Inference, Onnx, Composition, Benchmarks
Trackdub.Sdk.slnx Sdk, Cli, Sdk tests

Filters apply under external/Trackdub/ (or a Trackdub checkout of the same tree).

Shared .NET configuration

File Purpose
Directory.Packages.props Centralized NuGet package versions (never put Version in .csproj)
Directory.Build.props Nullable, ImplicitUsings, TreatWarningsAsErrors, package lock files
NuGet.config / NuGet.Config dotnet-libraries Azure feed for Microsoft.ML.Tokenizers preview
Directory.Build.targets ONNX DLL deduplication (CPU vs DirectML/WinML)

Portal (optional)

Account portal and API are separate TypeScript services (portal.trackdub, api.trackdub). They are not required to run the desktop dubbing pipeline. See Cloud-API-and-Job-Management and Web-Dashboard when working on those surfaces.

Next steps

Clone this wiki locally