remFREE Support
Support / Architecture & Security / Cross-Platform Capability Provider Model

Cross-Platform Capability Provider Model

Why remFREE keeps server-side operations platform-neutral while Windows, Linux, and future platforms implement capabilities differently.

Reference Windows Linux Agent Architecture macOS Capabilities

Cross-platform management software becomes difficult when operating-system differences leak into every layer of the product.

remFREE aims to avoid that design.

The server should describe the capability it wants.

The endpoint should determine how that capability is implemented on its operating system.

Capability versus implementation

Consider screen capture.

The server-level concept can remain simple:

capture screenshot

The implementation may vary:

Windows
    Windows-specific capture provider

Linux X11
    X11-compatible capture provider

Linux Wayland
    Wayland-compatible permission and capture path

future macOS
    macOS capture APIs and privacy permissions

The job does not need to become:

capture_screenshot_windows_11_console_session

That would make platform details leak into the entire application.

Provider boundary

A cleaner model is:

Server job
    |
    v
capability
    |
    v
agent provider selection
    |
    +---- Windows provider
    |
    +---- Linux provider
    |
    +---- future macOS provider

The same pattern can apply to:

  • screenshot capture
  • remote-control input
  • inventory
  • process enumeration
  • patch operations
  • service management
  • session discovery

Why capability reporting matters

Not every endpoint supports every action.

The agent should eventually be able to describe what it can currently provide.

For example:

screen_capture = available
mouse_input = available
keyboard_input = available
patch_scan = available

or:

screen_capture = unavailable
reason = no interactive graphical session

This is much more useful than allowing the server to blindly send work and discover unsupported behavior only through failure.

Windows

Windows introduces explicit session boundaries.

The service typically performs service-level management.

Interactive desktop capabilities may require a user-session helper.

This creates a natural provider distinction between:

service context

and:

interactive user context

Linux X11

X11 historically permits different styles of capture and synthetic input than newer Linux display systems.

Permissions and environment information still matter, particularly when a system service needs to interact with a logged-in graphical session.

Linux Wayland

Wayland intentionally changes many assumptions that older X11 tooling relied upon.

Screen capture and synthetic input are more tightly controlled.

A production Wayland implementation should therefore respect the Wayland security model rather than pretending X11 techniques are universally portable.

macOS

Future macOS support would bring another permission model.

Desktop capture and control can depend on privacy permissions explicitly granted by the user or administrator.

That means macOS should receive a native provider rather than being treated as Unix-with-a-different-logo.

Mobile platforms

Mobile operating systems introduce still different application sandboxes and interaction models.

The provider model allows remFREE to support future platforms without rewriting the server around every operating system limitation.

Explicit failure beats mysterious failure

A strong capability provider should be able to explain why it cannot perform an operation.

Examples:

no interactive session

display permission denied

unsupported display server

helper unavailable

capability not implemented

Those messages are far more useful than:

command failed

Platform-neutral jobs

The long-term architectural goal is for server-side workflows to remain focused on intent.

Examples:

inventory.collect
screenshot.capture
patch.scan
patch.install
remote.start
input.key
input.mouse

The endpoint then maps those intents to the correct native implementation.

Why this architecture matters

Without a provider boundary, every new operating system tends to create conditional logic everywhere:

if Windows...
else if Linux...
else if macOS...

That becomes difficult to test and maintain.

A provider model keeps operating-system complexity where it belongs:

at the endpoint implementation boundary.

That gives remFREE a much stronger foundation for long-term cross-platform management.