Main Directories in the Palmier Pro Project Structure: Complete Breakdown

The Palmier Pro repository organizes its macOS video-editing codebase into eleven top-level directories, including Sources/ for Swift implementation, Metal/ for GPU shaders, Models/ for ML assets, and mcpb/ for the Node.js control panel bridge.

Palmier Pro is a macOS video-editing application developed under the palmier-io/palmier-pro repository. Understanding the main directories in the Palmier Pro project structure is essential for navigating the Swift codebase, extending video effects, or modifying the machine learning pipeline. The layout follows conventional macOS app standards while accommodating specialized folders for Metal compute kernels and external service integration.

Core Application Code

The foundation of Palmier Pro resides in two primary directories that handle source code and quality assurance.

Sources/ - Swift Implementation

The Sources/ directory contains the core Swift source files that power the application logic, UI theming, and data models. This is where the majority of development activity occurs, housing everything from view controllers to platform-specific glue code.

Key files within this directory include Sources/PalmierPro/UI/AppTheme.swift, which defines the central design-system constants for spacing, colors, and fonts, along with model definitions such as VideoLayout.swift and Timeline.swift that manage the video editing state.

Tests/ - XCTest Validation

The Tests/ directory holds the XCTest-based unit and integration tests that ensure code reliability. This suite includes smoke tests to verify app launch stability, transcription accuracy checks, caption generation validation, and media handling integration tests.

You can find the entry point for sanity checks in Tests/PalmierProTests/SmokeTests.swift, which provides simple verification that the app initializes without crashing.

Graphics Processing and Extensions

Video effects in Palmier Pro leverage GPU acceleration through custom Metal shaders and AppKit plugins.

Metal/ - GPU Shader Kernels

The Metal/ directory stores custom *.metal shader files used for real-time video effects, color grading, and image processing. These low-level GPU kernels power performance-critical visual features.

Notable files include Metal/GradeCurves.metal for color grading operations and Metal/Vignette.metal for vignette effects. Accessing these from Swift follows the standard bundle pattern:

// Loading a colour-grading shader from the Metal folder
let vignetteShader = try! Shader(bundle: .main, name: "Vignette")

Plugins/ - AppKit Bridge Extensions

The Plugins/ directory contains optional AppKit plugins that extend the editor's capabilities beyond standard SwiftUI components. The primary resident is MetalCIKernelPlugin, which bridges Metal compute kernels with Core Image filters to enable custom video effects within the AppKit environment.

Machine Learning and External Services

Palmier Pro integrates on-device AI and external service communication through dedicated directories.

Models/ - On-Device Inference Assets

The Models/ directory stores pre-trained machine learning models and Python helper scripts for tasks like automatic caption generation and transcription. These assets enable local inference without external API calls.

Loading a tokenizer from this directory typically references the Python helper scripts bundled within:

// Loading a pre-trained model from the models folder
let tokenizer = try! Tokenizer(path: Bundle.main.path(forResource: "export_tokenizer", ofType: "py")!)

mcpb/ - Control Panel Bridge

The mcpb/ directory houses the "Mac Control Panel Bridge," a small Node.js server (index.js) that facilitates communication between the Palmier Pro application and external services. This bridge enables remote control capabilities and integration with external editing hardware or web-based control panels.

Resources and Developer Tooling

Supporting directories manage static assets, documentation, and build automation.

assets/ and docs/ - Static Content

The assets/ directory contains static graphical resources including application icons, UI screenshots, and marketing badges used throughout the interface. The docs/ directory maintains human-readable documentation, including multilingual README files and user guides.

scripts/ - Build Automation

The scripts/ directory provides helper shell scripts for common development workflows. Key utilities include dev.sh for local development builds, release.sh for packaging and notarization, and bundle.sh for distribution packaging.

Execute development builds directly from the repository root:


# Running the development script from the scripts folder

./scripts/dev.sh

The scripts/release.sh file specifically automates the packaging and notarization process required for macOS distribution.

.github/ - Continuous Integration

The .github/ directory contains GitHub Actions workflow definitions and contribution guidelines that manage CI/CD pipelines, automated testing, and release creation.

Package Configuration

At the repository root, Package.swift serves as the Swift Package Manager manifest that defines all build targets, dependencies, and linker settings for the Palmier Pro application. This file coordinates how the Sources/ and Tests/ directories relate to external packages and system frameworks.

Summary

  • Sources/ contains the primary Swift codebase including UI themes (AppTheme.swift) and data models (VideoLayout.swift, Timeline.swift).
  • Metal/ provides GPU shaders like GradeCurves.metal and Vignette.metal for real-time video effects.
  • Tests/ houses XCTest suites including SmokeTests.swift for validation.
  • Models/ stores ML assets and Python scripts for on-device caption generation.
  • mcpb/ runs a Node.js bridge (index.js) for external service communication.
  • Plugins/, assets/, docs/, scripts/, and .github/ handle extensions, static resources, documentation, build automation, and CI/CD respectively.

Frequently Asked Questions

What directory contains the main Swift source code in Palmier Pro?

The Sources/ directory contains all core Swift implementation files, including UI components, business logic, and model definitions. Key files like Sources/PalmierPro/UI/AppTheme.swift and timeline management code reside here, making it the primary location for application development.

Where are the GPU shaders located in the Palmier Pro project?

GPU shaders are stored in the Metal/ directory, which contains .metal files such as GradeCurves.metal and Vignette.metal. These files provide the low-level compute kernels that power real-time color grading and video effects within the editing interface.

How do I run the development build scripts for Palmier Pro?

Execute ./scripts/dev.sh from the repository root to trigger the development build script. The scripts/ directory also contains release.sh for distribution packaging and bundle.sh for final app assembly, automating the entire build and notarization workflow for macOS.

What is the purpose of the mcpb directory in Palmier Pro?

The mcpb/ (Mac Control Panel Bridge) directory contains a Node.js server (index.js) that enables communication between Palmier Pro and external control surfaces or web services. This bridge allows the application to receive commands from hardware devices or remote interfaces beyond the native macOS environment.

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:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →