Online vs Offline
Every Flowork app runs in one of two modes:
Online Mode (Web Sandbox)
- Languages: HTML, CSS, client-side JavaScript
- Environment: Chromium WebEngine renderer
- Access: Zero file system, zero native binaries
- Use case: UI tools, dashboards, web-based utilities
Offline Mode (Native OS)
- Languages: Python, Node.js, Go, C, C++, Ruby
- Environment: Operating System level, powered by Go Engine
- Access: Full system resources — files, processes, network
- Use case: Automation scripts, CLI tools, background services
How It Works
The execution mode is set in the app's schema.json manifest file. When the engine loads an app, it reads this field and routes execution accordingly:
- Online: App HTML is loaded into a sandboxed iframe via
SandboxedApp.vue - Offline: App entry script is spawned as a child process via
internal/runner/
Security Model
Online apps are completely sandboxed — they cannot access the file system, spawn processes, or interact with the OS. They communicate with the engine only through the REST API on Port 5000.
Offline apps have full system privileges. They can read/write files, execute commands, and access network resources without restrictions.