ThistleOS ships with 14 built-in apps covering system management, communication, productivity, security, and utilities. All apps follow the same manifest and signing model — built-in apps are compiled into the firmware, while additional apps are loaded from .app.elf files on SPIFFS or SD card.
Overview
All 14 built-in apps at a glance.
| Name | Description | Category | Status |
|---|---|---|---|
| Launcher | Home screen with app grid and favorites dock | System | Built-in |
| Settings | System configuration (WiFi, display, theme) | System | Built-in |
| Messenger | Messaging app with working LoRa transport and in-progress SMS/BLE/Internet backends | Communication | Built-in |
| Navigator | GPS position, bearing, grid reference display | Navigation | Built-in |
| Notes | Simple text editor with SD card save/load | Productivity | Built-in |
| File Manager | Browse SD card, view/copy/delete files | Utility | Built-in |
| Reader | E-book reader for text files and PDFs | Productivity | Built-in |
| App Store | Browse, download, install signed apps OTA | System | Built-in |
| WiFi Scanner | Scan networks, show RSSI, channel, encryption | Security | Built-in |
| Terminal | Serial terminal with shell and UART mode | Utility | Built-in |
| AI Assistant | Claude-powered assistant via HTTP API | Productivity | Built-in |
| Vault | Encrypted file storage on SD card | Security | Built-in |
| Weather | Weather display (requires internet) | Utility | Built-in |
| Flashlight | Screen-as-flashlight, LED control | Utility | Built-in |
App Manifest Format
Every app — whether built-in or loaded from storage — has an accompanying manifest.json that declares its identity, permissions, and requirements:
{
"name": "my-app",
"version": "1.0.0",
"display_name": "My App",
"description": "A sample ThistleOS application",
"category": "Utility",
"entry": "my-app.app.elf",
"permissions": ["network", "storage"],
"min_kernel": "0.1.0"
}
Loading from Storage
Apps stored as .app.elf files on SPIFFS or SD card are discovered and loaded by the kernel's app manager at boot. The kernel verifies the Ed25519 signature on each ELF before loading — signed apps receive full permissions, while unsigned apps are restricted to IPC-only access.
Apps communicate with the kernel through the syscall table (C ABI), which exports 45+ ESP-IDF APIs for display, storage, networking, and hardware access.