FeaturesModulesPricingAbout
Modular Architecture

The Modular Agent

sysc-agent is a modular runtime. Each module is a self-contained plugin that adds capabilities to a device — monitoring, management, remote access, and more. You only include what you need.

What is a Module?

A module is a plugin that implements a simple interface. When the agent starts, it discovers all compiled modules, initializes them, and registers their handlers. Each module can expose state, accept configuration, handle remote procedure calls, open WebSocket connections, and push notifications to the platform.

Modules are compiled into the agent binary via build tags. A warehouse monitoring agent might include the system and camera modules, while a container host includes docker and system. The binary stays lean — no unused code shipped.

Module Capabilities

Every module can leverage these six core capabilities provided by the agent runtime.

State

Modules expose real-time state — CPU usage, container lists, pod status, service health. The platform polls state every 5 seconds and renders rich HTML views directly from the agent. See your infrastructure live, as it changes.

Configuration

Each module defines a JSON schema describing its configurable parameters. The platform generates forms from the schema automatically and pushes config changes to agents in real-time. Support per-device and per-profile configurations.

Remote Procedure Calls

Modules register RPC handlers that can be invoked from the platform or API. Start a container, restart a service, run a speedtest, trigger a backup — any action you define becomes a button on the dashboard.

WebSocket Connections

Modules can open persistent bidirectional WebSocket channels proxied through the platform. Used to provide remote terminal access, live log streaming, and real-time data feeds directly in the browser.

Notifications

Modules push notifications to the platform with severity levels — info, warning, and error. Get alerted when disk is full, a container crashes, a service goes down, or any condition your module detects.

AI Integration

The platform's AI assistant can view and navigate module state across your entire fleet. Ask questions in natural language — "which devices have high CPU?" — and get answers based on real module data, helping operators resolve issues fast.

How Modules Work

1

Agent Starts

The agent binary launches and discovers all compiled modules. Each module initializes and registers its state, config, RPC, and WebSocket handlers with the agent runtime.

2

Platform Connects

The platform discovers the agent via mTLS. It queries the module registry to learn what modules are available, their schemas, and their capabilities.

3

State & Config Sync

The platform polls module state on a regular interval. Config changes made in the dashboard are pushed to the agent and applied immediately — no restarts needed.

4

Actions & Notifications

Operators invoke RPCs from the dashboard. Modules push notifications back to the platform when they detect issues. WebSocket channels stay open in the background when active.

5

AI Resolves Issues

The AI assistant accesses module state across the fleet, correlates data, and helps operators navigate to the right device and module to resolve problems quickly.

module lifecycle · 5 steps Start agent launch Connect mTLS auth Sync state · config Act RPC · notify Resolve AI · insight01 02 03 04 05discover modules register handlers poll every 5s dashboard actions fleet insights agent → platform → operator → AI → resolution 5 × 80 + 4 × 24 = 496px module lifecycle

Build Your Own

The module SDK provides a clean interface. Implement it, register your handlers, and your module integrates seamlessly with the agent runtime and platform dashboard.

Your module gets state polling, config management, RPC buttons, WebSocket proxying, notifications, and AI integration — all without writing any platform code.

// sdk.Module interface
type Module interface {
    // Module metadata and schema
    Meta() *ModuleMetadata
    // Register handlers
    Init(ctx ModuleContext) error
    // Load initial config
    LoadConfiguration() (any, error)
    // Cleanup on shutdown
    Cleanup(ctx ModuleContext) error
}

// Register capabilities in Init()
ctx.OnState(handler)
ctx.OnChange(pattern, handler)
ctx.OnRPC(name, handler)
ctx.OnWebSocket(path, handler)
ctx.Notifier().Notify(notification)
section 04 · deploy

See What Modules Can Do

Every module extends your infrastructure management capabilities. Contact us to discuss which modules fit your needs.