momentum-app-creator

joseguzman1337's avatarfrom joseguzman1337

Create new Flipper Zero applications for Momentum Firmware

⭐1stars🔀1forks📁View on GitHub🕐Updated Jan 11, 2026

When & Why to Use This Skill

This Claude skill automates the development lifecycle of Flipper Zero applications specifically for Momentum Firmware. It streamlines the creation of boilerplate code, directory structures, and manifest files, ensuring all projects adhere to the Furi framework standards and FBT (Flipper Build Tool) requirements for seamless compilation and deployment.

Use Cases

  • Case 1: Rapidly bootstrapping new third-party applications with the correct folder hierarchy and boilerplate C code.
  • Case 2: Generating valid application.fam manifest files with precise metadata, stack size configurations, and icon definitions.
  • Case 3: Implementing complex user interfaces using the Furi Scene Manager and View Dispatcher to ensure consistent UX/UI.
  • Case 4: Scaffolding embedded C applications with proper memory management, error handling, and Furi logging system integration.
namemomentum-app-creator
descriptionCreate new Flipper Zero applications for Momentum Firmware
short-descriptionGenerate complete Flipper Zero apps with proper structure

Momentum App Creator

Create new Flipper Zero applications following Momentum Firmware conventions and best practices.

Context

  • Momentum Firmware uses FBT (Flipper Build Tool) for compilation
  • Apps are organized in applications/ directory with subdirectories for different categories
  • Each app requires an application.fam manifest file
  • Apps use Furi framework and GUI system

Instructions

When creating a new Flipper Zero app:

  1. Determine app category and location:

    • applications/main/ - Core system apps
    • applications/external/ - Third-party apps
    • applications/debug/ - Debug/development tools
    • applications/examples/ - Example applications
  2. Create app structure:

    applications/[category]/[app_name]/
    ├── application.fam
    ├── [app_name].c
    ├── [app_name]_i.h (if needed)
    ├── scenes/ (if using scene manager)
    └── icons/ (if custom icons needed)
    
  3. Generate application.fam:

    App(
        appid="app_name",
        name="App Display Name",
        apptype=FlipperAppType.EXTERNAL,
        entry_point="app_name_app",
        cdefines=["APP_NAME"],
        requires=["gui"],
        stack_size=2 * 1024,
        order=10,
        fap_icon="icon.png",
        fap_category="Category",
    )
    
  4. Create main C file with:

    • Proper includes for Furi framework
    • App structure definition
    • Entry point function
    • GUI setup and event handling
    • Memory management
  5. Follow Momentum conventions:

    • Use consistent naming (snake_case for files, PascalCase for types)
    • Include proper error handling
    • Use Furi logging system
    • Follow memory allocation patterns
    • Include proper cleanup in app exit

Required Includes

#include <furi.h>
#include <gui/gui.h>
#include <gui/view_dispatcher.h>
#include <gui/scene_manager.h>
#include <gui/modules/submenu.h>

Build and Test

  • Use ./fbt launch APPSRC=app_name to build and run
  • Test on actual hardware when possible
  • Verify memory usage and cleanup