Skip to main content
Version: 2.2.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