kernel-services

Automate Zephyr kernel orchestration with zbus, SMF, k_work, and settings.

59|13|Updated Feb 7, 2026
One-click install
npx skills add https://github.com/beriberikix/zephyr-agent-skills --skill kernel-services
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: kernel-services
Source: https://github.com/beriberikix/zephyr-agent-skills/tree/main/skills/kernel-services
Command: npx skills add https://github.com/beriberikix/zephyr-agent-skills --skill kernel-services

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill enables modular orchestration of Zephyr kernel services, allowing developers to compose event-driven interactions, robust state management, and persistent configuration without boilerplate.

Core Features & Use Cases

  • Event-driven communication: Use Zbus to decouple modules and propagate changes.
  • State management: Apply the State Machine Framework (SMF) for clear lifecycles and transitions.
  • Background processing & persistence: Offload work with k_work queues and persist settings with the Settings subsystem, ensuring reboot persistence.
  • Use Case: Build a multi-module sensor suite where sensors publish data via Zbus, SMF coordinates modes, and settings persist calibration data.

Quick Start

Define a Zbus channel, implement an SMF-based state machine, and load settings during system startup to enable a modular Zephyr kernel services app.

Frequently Asked Questions about kernel-services

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I decouple modules and propagate changes in Zephyr using Zbus?

To decouple Zephyr modules and propagate changes, define a Zbus channel for event-driven communication. This allows independent modules to publish and subscribe to data without direct coupling, enabling scalable and feature-rich embedded architectures.

What is the best way to manage hierarchical state machines in Zephyr?

Managing hierarchical state machines in Zephyr is best handled by the State Machine Framework (SMF). SMF provides clear lifecycles and transitions, allowing developers to coordinate complex application modes and workflows reliably.

How do I offload background processing in Zephyr to prevent blocking the main thread?

To offload background processing in Zephyr and prevent main thread blocking, use k_work queues. This work-queue mechanism allows you to defer non-critical tasks, ensuring event-driven modules remain responsive.

Can I combine Zbus, SMF, and settings in a single Zephyr application?

Yes, you can combine Zbus, SMF, and settings in a single Zephyr application. This modular orchestration allows sensors to publish data via Zbus, SMF to coordinate modes, and settings to persist calibration data across reboots.

Does this approach suit scalable embedded applications with complex workflows?

Yes, this approach suits scalable embedded applications with complex workflows. By enforcing Zephyr APIs like zbus, smf, k_work, and settings, it supports event-driven modules, hierarchical state machines, and reliable non-volatile settings.