English | 简体中文
OpenWorker's desktop agent, connected to QMG models. Marlo is a Qumge distribution of OpenWorker: it keeps the upstream agent foundation and adds Qumge sign-in and model access.
- Work on your machine. Use the upstream workspace, files, terminal, connectors, conversations and automation features.
- Connect QMG models. Sign in to Qumge from the app to use the models available to your account. Other upstream provider options remain available.
- Use skills from any source. Create or import local skills, manage them in the app, and use their supporting files. Skills do not require a Qumge account or a Qumge skill catalog.
Marlo no longer bundles a Qumge skill-store connection or automatically registers its old skill MCP server. Previously installed skills remain local; custom MCP configurations are preserved. Skill and tool execution still follows the app's permission and approval controls.
Download the installer for your platform from GitHub Releases. Open Marlo, connect your Qumge account in model settings, choose an available model, then start a task in your workspace. Model use is billed through Qumge; signing in does not make calls free.
For skills, open Skills to create one, import a .md/.zip file, or manage what is installed. Imported skills are third-party instructions: inspect them before use. General MCP connections remain configurable independently.
Requires Python 3.10+, Node.js 20+, and Rust for the desktop shell.
git clone https://github.com/Qumge/marlo.git
cd marlo
bash packaging/setup_dev_env.sh
.venv/bin/openworker-server --cwd ~/some/project --port 8765In a second terminal:
cd marlo/surfaces/gui
npm install
npm run devOn Windows, use .venv\Scripts\openworker-server.exe for the server. To run the desktop app instead of the browser UI, use npm run tauri:dev in surfaces/gui; this selects the Marlo configuration and starts its sidecar.
The standalone server creates a per-launch token at <state-dir>/sidecar-8765.token. Vite reads that user-only file; direct API calls need its value in X-OpenWorker-Token. The desktop shell uses an in-memory launch token.
The agent runs locally. Model requests go to your selected provider (Qumge when using QMG models); connected services receive the data required by the actions you authorize. Local-first does not mean all data stays offline. Keep the app's approval controls enabled and review third-party skills and integrations.
See SECURITY.md for vulnerability reporting.
- Backend tests:
.venv/bin/pytest - GUI tests:
npm testinsurfaces/gui - GUI build/type check:
npm run buildinsurfaces/gui - Integration tests:
npm run e2einsurfaces/gui
The engine is developed upstream in OpenWorker, built on aisuite. Marlo's focus is the Qumge model connection, not a separate skill marketplace. Upstream updates must preserve the Qumge account flow and model routing while keeping general skills and MCP support open.
Upstream update checklist, 2026-11-02 — the 0.9.3 release includes the Qumge skill-catalog removal; the newer upstream engine remains unmerged.
Report a Marlo issue · OpenWorker upstream
MIT. Derived from OpenWorker by Andrew Ng, Copyright (c) 2024 Andrew Ng. See LICENSE. Upstream authors retain credit for the foundation; Marlo adds the Qumge-specific integration.