Skip to main content
Version: 2.0.0

Getting Started

Develop new features for Luniris OS easily thanks to its modular architecture.


How Features Work

Features are lightweight programs that communicate with the Luniris OS main application through a local gRPC API. This architecture enables features to control various system components, including:

  • Eye movement and positioning
  • Bluetooth LE communication
  • Settings storage
  • And much more

Technical Implementation

The gRPC communication uses a UNIX socket file located at: [temp_directory]/features.socket

Socket Path Examples by Language/Framework:

var socketPath = Path.Combine(Path.GetTempPath(), "features.socket");

Supported Development Options

Programming Languages and Frameworks

Thanks to gRPC's wide compatibility, you can develop features using:

  • .NET 10 (C#)
  • NodeJS (Javascript / Typescript)
  • Native binary (wide compatibility)
Important Note

Native binaries must be compiled for the ARM64 platform with static linking.


Feature Structure

Required Manifest Files

Each feature requires two JSON manifest files and two PNG icons, located in the root directory:

  1. manifest.json

  2. settings.manifest.json

  3. icon.256.png and icon.64.png

    • Used to display the feature icon across different sections of the OS
    • Requires one 256x256 PNG file named icon.256.png
    • Requires one 64x64 PNG file named icon.64.png

Packaging

Package all feature files, including the manifest files, into a standard ZIP archive.


Building Your Feature

  1. Create a project directory containing:

    • Your source code files
    • The required manifest files
    • Any additional assets
  2. Package your feature into a ZIP file:

    • Your source code files
    • The required manifest files
  3. Install your feature by following the installation guide