OpenWork Skills System

The Skills System is OpenWork’s modular architecture for extending automation capabilities through standalone tools and services. Skills provide specialized functionality that integrates seamlessly with the core automation engine.

Purpose

Skills enable OpenWork to handle complex, domain-specific tasks by:

  • Modular Extension: Adding new capabilities without modifying core code
  • Isolation: Running tools in separate processes for safety and stability
  • Standardization: Using Model Context Protocol (MCP) for consistent interfaces
  • Discoverability: Skills are auto-detected and registered during installation

Architecture

Directory Structure

Skills are located in apps/desktop/skills/ with each skill as a subdirectory:

apps/desktop/skills/
├── dev-browser/           # Browser automation skill
├── file-permission/       # File permission management
└── [future-skills...]

Registration & Installation

Skills are automatically registered during the desktop app installation process:

// From apps/desktop/package.json postinstall script
"postinstall": "electron-rebuild && npm --prefix skills/dev-browser install && npm --prefix skills/file-permission install"

Communication Model

Skills communicate with the main OpenWork process through:

  1. MCP Servers: Standard protocol for tool exposure
  2. HTTP APIs: Direct REST endpoints for UI integration
  3. IPC Events: Electron inter-process communication

Built-in Skills

OpenWork includes several bundled skills out of the box:

Browser Automation

  • Skill: dev-browser
  • Purpose: Web automation with persistent page state
  • Protocol: MCP + WebSocket relay

File Management

  • Skill: file-permission
  • Purpose: Safe file operations with user consent
  • Protocol: MCP + HTTP API

Skill Development

Skills follow Open standards and can be developed independently:

Technology Stack

  • Runtime: Node.js with TypeScript
  • Protocol: Model Context Protocol (MCP)
  • Communication: Stdio, HTTP, or IPC
  • Packaging: Standard npm modules

Key Features

  • Auto-discovery: Skills are detected by directory structure
  • Hot-reload: Development mode with file watching
  • Error isolation: Failed skills don’t crash the main app
  • Permission boundaries: Each skill operates within defined constraints

Security Model

  • Sandboxed Execution: Skills run in separate processes
  • Explicit Permissions: File access requires user approval
  • Network Restrictions: Controlled API endpoints only
  • Content Validation: Input sanitization and output filtering

Future Skills

The modular architecture allows for easy extension with additional skills such as:

  • Database interaction tools
  • API testing frameworks
  • Data analysis capabilities
  • Cloud service integrations
  • Development environment tools

Source Files

This documentation is based on the OpenWork repository at commit 8855d5f31ca0dd485379af1ad241071fe62052a0.


Back to top

OpenWork Documentation - Community documentation for accomplish-ai/openwork