Future Roadmap & GUI Plans
Relevant source files
The following files were used as context for generating this wiki page:
Kilde aims to provide a native macOS screen and system audio recording solution that requires zero setup. The project follows a structured progression from a technical verification tool (Spike) to a robust library (KildeCore) and eventually a user-friendly menu bar application.
Sources: README.md:4-9, Package.swift:8-10
Development Roadmap Phases
The development of Kilde is divided into distinct milestones to ensure technical feasibility before building the final user interface.
Phase M0: Spike (Current)
The current phase focuses on the spike executable, which serves as a validation tool for core technical requirements. It verifies ScreenCaptureKit (SCK) integration, CoreAudio aggregate device management, and AVFoundation file finalization.
- Validation Goals: Diagnosing permissions (
doctor), enumerating devices (devices), and testing synchronized recording of system audio and microphones. - Safety: Implementing signal handlers to ensure files finalize correctly even during unexpected termination.
Sources: Sources/Spike/main.swift:22-45, README.md:12-18, Sources/Spike/Util.swift:65-78
Phase M1: KildeCore and CLI
Following the successful validation of the spike tool, the project will restructure its codebase. The core recording logic will move into a shared library called KildeCore, and a formal kilde CLI tool will be established for power users.
Sources: Package.swift:8-12
Phase M2: GUI Application
The roadmap concludes with the development of a macOS Menu Bar application. This GUI will leverage the underlying KildeCore to provide a simplified interface for recording tasks that previously required terminal commands.
Sources: README.md:6-10
Architecture Evolution
The transition from a command-line tool to a GUI-supported ecosystem requires a modular architecture. The KildeCore library acts as the central engine for both the CLI and GUI frontends.
The diagram shows how the future KildeCore library serves as a unified interface between multiple frontends and native macOS frameworks.
Sources: Package.swift:8-12, README.md:4-9
GUI and Menu Bar Integration Plans
The GUI application is planned as a menu bar utility to provide quick access to recording features. Key planned interactions include:
- Zero-Setup Interaction: Initiating system audio and screen recording without manual configuration of loopback devices.
- Device Management: Selecting displays, windows, and audio sources via visual menus instead of CLI flags.
- Permission Monitoring: Providing visual status updates for Screen Recording and Microphone permissions, currently handled by the
doctorcommand.
Sources: README.md:6-15, Sources/Spike/Doctor.swift:10-40
Feature Summary by Milestone
| Feature | Phase M0 (Spike) | Phase M1 (CLI/Core) | Phase M2 (GUI) |
|---|---|---|---|
| Technical Verification | Command-line validation | Unit/Integration testing | N/A |
| System Audio Capture | Supported via rec-system | Encapsulated in KildeCore | One-click activation |
| Library Structure | Monolithic spike target | Separated KildeCore | Utilizes KildeCore |
| User Interface | Terminal-only | Terminal-only | macOS Menu Bar |
| Permissions | spike doctor check | CLI-based feedback | Visual status indicators |
Sources: README.md:4-18, Package.swift:8-12, Sources/Spike/main.swift:10-20
Technical Requirements for Roadmap Success
To transition to the GUI phase, the system must maintain the robust synchronization and safety features established in the Spike phase.
This sequence illustrates the data flow managed by KildeCore to ensure synchronization between multiple streams and safe file creation.
Sources: Sources/Spike/RecSystemCmd.swift:20-50, Sources/Spike/MovieWriter.swift:120-140
Key Components for Future Integration
| Component | Responsibility | Relevant Files |
|---|---|---|
MovieWriter | Wraps AVAssetWriter for synchronized AV file output. | MovieWriter.swift |
MonitorDevice | Manages aggregate devices for system audio loopback. | AggregateDevice.swift, MonitorCmd.swift |
SckCapture | Interfaces with SCStream for raw sample acquisition. | SckCapture.swift |
MicCapture | Handles asynchronous microphone audio via AVCaptureSession. | MicCapture.swift |
Sources: Sources/Spike/MovieWriter.swift:8-15, Sources/Spike/AggregateDevice.swift:8-15, Sources/Spike/SckCapture.swift:7-15, Sources/Spike/MicCapture.swift:8-15
Conclusion
The Kilde roadmap transitions from technical validation in the M0 "Spike" phase to a refined architecture in M1, ultimately leading to a native macOS menu bar application. This progression ensures that the complex task of system audio capture remains stable and user-friendly across different interfaces.