How to Build Palmier Pro from Source: Complete Guide for macOS Developers
Build Palmier Pro by cloning the repository, ensuring you have macOS 26 (Tahoe) and Xcode 16+ on Apple Silicon, then run swift build to compile the Swift 6.2 package and ./scripts/dev.sh to launch with live log streaming.
Palmier Pro is an AI-native macOS video editor written in Swift 6.2 using a hybrid SwiftUI and AppKit architecture. This guide explains exactly how to build Palmier Pro from source using Swift Package Manager (SPM), targeting macOS 26 on Apple Silicon hardware.
Prerequisites for Building Palmier Pro
The project requires specific macOS and toolchain versions due to its use of modern Swift features and latest Apple APIs.
macOS 26 (Tahoe) on Apple Silicon
Palmier Pro exclusively targets Apple Silicon Macs running macOS 26 (Tahoe) or later. The Package.swift manifest declares platforms: [.macOS(.v26)], and the codebase uses UI APIs only available on this release.
Xcode 16+ or Swift 6.2 Toolchain
You need Xcode 16 or the standalone Swift 6.2 toolchain to handle the swift-tools-version:6.2 declared in the package manifest. Verify your installation with:
swift --version
The output should report Swift 6.2.
Command-Line Tools
Ensure you have the macOS Command Line Tools installed to access swift, xcodebuild, and git. These are required for dependency resolution and compilation.
Step-by-Step Build Process
1. Clone the Repository
Fetch the source code and the Package.swift manifest from the palmier-io organization:
git clone https://github.com/palmier-io/palmier-pro.git
cd palmier-pro
The repository follows standard SPM structure with Sources/PalmierPro/ containing the main executable code and Tests/PalmierProTests/ housing the unit test suite.
2. Resolve Swift Package Dependencies
The Package.swift declares several external dependencies including DSWaveformImage, Sparkle, Sentry, Lottie, Convex, and swift-transformers. Resolve these automatically:
swift package resolve
This downloads the required packages from GitHub, caching them locally for subsequent builds.
3. Compile the Executable
Build the PalmierPro executable target with debug configuration:
swift build
For a production-optimized build, specify the release configuration:
swift build -c release
The compiler produces the binary at .build/debug/PalmierPro or .build/release/PalmierPro respectively, bundling all resources (fonts, images, and MCP bindings) defined in the target's resources: declaration.
4. Run the Application
Launch the app directly from the build directory:
swift run
Or open the built app bundle:
open .build/debug/PalmierPro.app
Development Workflow with Live Reloading
Using the dev.sh Script
The repository includes scripts/dev.sh, the recommended workflow for iterative development. This script performs a fast debug build, creates the app bundle, launches it, and streams OSLog output to your terminal:
./scripts/dev.sh
To launch without log streaming:
./scripts/dev.sh --no-stream
Under the hood, dev.sh calls scripts/bundle.sh debug --fast to generate .build/PalmierPro.app, then executes log stream --predicate 'subsystem == "io.palmier.pro"' to display real-time diagnostic messages from the io.palmier.pro subsystem.
Running the Test Suite
Validate your build by executing the comprehensive test suite covering timeline logic, transcription, and rendering:
swift test
A successful run executes 292+ tests with output similar to:
Test Suite 'All tests' passed at 2026-06-22 12:45:00.000.
Executed 292 tests, with 0 failures (0 unexpected) in 7.32 seconds
Architecture Highlights
Understanding the codebase structure helps when modifying or debugging the build.
Design System in AppTheme.swift
All visual constants—colors, spacing, fonts, radii, shadows, and animation timings—are centralized in Sources/PalmierPro/UI/AppTheme.swift. UI components reference these static constants rather than hard-coding values, ensuring consistent theming across the SwiftUI and AppKit interfaces.
Timeline Rendering Engine
The core editing surface lives in Sources/PalmierPro/Timeline/TimelineView.swift. This NSView hosts a TimelineCanvasView that handles high-performance CoreGraphics drawing, scroll/zoom logic, and drag-and-drop operations. Input handling is delegated to TimelineInputController, which manages mouse events, playhead positioning, and clip snapping.
AI Agent Integration via MCP
The Model Context Protocol (MCP) integration enables external AI agents (Claude, Cursor, Codex) to control the editor. Sources/PalmierPro/Agent/AgentService.swift orchestrates a local HTTP MCP server, while ToolExecutor extensions translate natural language commands into timeline edits. This architecture allows programmatic video editing through AI interfaces.
Key Source Files Reference
| File | Purpose |
|---|---|
Package.swift |
Declares the executable target, macOS 26 platform requirement, and external dependencies |
Sources/PalmierPro/UI/AppTheme.swift |
Centralized design system constants for styling |
Sources/PalmierPro/Timeline/TimelineView.swift |
Core timeline canvas and rendering logic |
Sources/PalmierPro/Agent/AgentService.swift |
MCP server coordination and AI agent management |
Sources/PalmierPro/Export/ExportService.swift |
Project export logic for XML and custom formats |
scripts/dev.sh |
Development helper for fast builds and log streaming |
Tests/PalmierProTests/Timeline/ClipMathTests.swift |
Unit tests for timeline geometry calculations |
Summary
- Palmier Pro requires macOS 26 (Tahoe) on Apple Silicon and Xcode 16+ to build successfully
- Clone the repository and run
swift buildto compile the Swift 6.2 package with automatic dependency resolution - Use
./scripts/dev.shfor the optimal development workflow with fast builds and live OSLog streaming - Execute
swift testto run the full test suite covering timeline, rendering, and transcription logic - Key architectural components include
AppTheme.swiftfor UI constants,TimelineView.swiftfor the editing canvas, andAgentService.swiftfor AI integration
Frequently Asked Questions
What are the minimum system requirements for building Palmier Pro?
You need a Mac with Apple Silicon (M1, M2, M3, or later) running macOS 26 (Tahoe) and Xcode 16 or newer. The Package.swift explicitly targets macOS(.v26), and the codebase uses Swift 6.2 language features unavailable in earlier toolchains. Intel-based Macs are not supported due to Apple Silicon-specific optimizations in the rendering pipeline.
How do I run Palmier Pro after building it from source?
After running swift build, launch the app using swift run for immediate execution, or open the generated bundle with open .build/debug/PalmierPro.app. For development, use ./scripts/dev.sh instead, which builds the app, launches it, and streams diagnostic logs from the io.palmier.pro subsystem to your terminal window.
Can I build Palmier Pro without Xcode?
Yes, you can build using the standalone Swift 6.2 toolchain if you prefer not to install the full Xcode IDE. Ensure you have the Command Line Tools installed so that swift and xcodebuild are available in your PATH. However, Xcode 16 provides the easiest setup as it bundles the correct Swift version and macOS SDK automatically.
How do I debug Palmier Pro during development?
Use the ./scripts/dev.sh script to launch the app with OSLog streaming enabled. This displays real-time diagnostic messages including track loading, clip rendering status, and MCP server communications. You can also set breakpoints in Xcode by opening the Package.swift as a project, or use swift run with LLDB debugging attached for command-line debugging.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →