| Need | Doc |
|---|---|
| Quick start (this page) | continue below |
| Contribute / PR | CONTRIBUTING.md |
| AI agent rules | AGENTS.md |
| Architecture | docs/Architecture.md |
| UI / visual contract | DESIGN.md |
| Full doc map | docs/README.md |
| Phase 2 / enterprise prep | docs/design/2026-08-02-phase-2-enterprise-prep.md |
Local office workspace. Work stays on your machine; pick any model.
OnMyAgent is an open-source desktop office agent workspace — drafts, sheets, automations, and approvals on your computer, not another cloud chat window.
Product phase: Phase 2 — ship a durable local config foundation and prepare for optional intranet B-side control (OnMyCompany: identity, isolation, policy, audit, gateway). Logged-out local use remains the default; company connect is opt-in, not a login wall. Details: phase-2 roadmap.
- Office-first: home chat, files, automations, and channels for everyday work deliverables.
- Local-first: workspace and outputs default to this machine; sensitive actions can require approval.
- Any model (BYOK): hosted providers, compatible APIs, local Ollama, and more — not locked to one vendor.
- Experts & verticals later: marketplace and industry experts keep improving; the current promise is a solid office path, not unfinished verticals.
- Org control (roadmap): prepare isomorphic config + dual-mode for internal OnMyCompany pilots — not a public multi-tenant SaaS claim.
Advanced access (local coding CLIs, MCP, multi-agent) remains available under settings / advanced entry points, not as the default home story.
Models are strong enough for office work. What’s missing is finishing work locally, keeping it, and running it again on a schedule:
- Chat apps are great at talk, but files, schedules, approvals, and channels are often scattered.
- Many office agents lock you to one model or cloud with opaque data paths.
- Developer CLIs are powerful, but they are not a default office entry.
- You need a local workspace: read/write files, resumable sessions, reviewable artifacts.
OnMyAgent is local office + bring-your-own-model — not a chat clone and not a cloud workflow canvas.
OnMyAgent is:
- A local office desktop workspace for knowledge workers and AI users.
- One place for sessions, files, automations, skills/experts, messaging channels, and approvals.
- A local-first, BYOK, provider-neutral open-source project.
OnMyAgent is not:
- A generic chat clone.
- A cloud workflow platform like n8n, Dify, or Zapier.
- A public multi-tenant hosted enterprise SaaS (Phase 2 prepares intranet OnMyCompany-style control for pilots; local-first remains the default).
- A replacement for Cursor / Claude Code as a coding IDE (local coding agents are advanced attach points).
| Tool | What it does | How OnMyAgent relates |
|---|---|---|
| Hosted models / compatible APIs / Ollama | Inference | Bring your own; keys and default model live in Settings |
| ChatGPT / consumer chat apps | Conversation UI | Different category: we emphasize local workspace + files/automations/approvals |
| WorkBuddy-class office agents | Ecosystem office assistants | Similar job-to-be-done; we stress local + model choice |
| OpenCode | Local agent runtime | Main session / server stack (implementation detail under the local workspace) |
| Codex / Claude Code CLIs | Coding agents | Advanced attach (Personal auxiliary path), not the office home default |
| MCP / Skills | Tools and reusable capabilities | Configured and invoked in the workspace |
| n8n / Dify / Zapier | Cloud workflows | Different category: we focus on local office tasks, not canvas orchestration |
- Workspace: A local folder where tasks and outputs land by default.
- Session: A resumable office collaboration.
- Provider / model: Any inference service you connect; the default model powers new chats and automations.
- Automation: Scheduled or triggered office work (digests, summaries, reminders).
- Artifact: Deliverables such as docs, sheets, reports, screenshots — open or edit externally from Files.
- Experts / skills (extensions): Installable capability packs; vertical experts ship as they become ready.
- Home sessions: Dispatch office work and follow progress.
- Experts & store: Capability extensions (verticals ship by readiness; not the primary promise pre-launch).
- Automations: Schedule recurring office runs and review history.
- Files: Workspace files, task outputs, preview / open-in-app.
- Channels: Feishu / Weixin-style reach (platform-dependent).
- Models & settings: Any provider, default model, env vars, system permissions, preferences.
- Skills / MCP / Memory: Reusable capabilities, external tools, long-lived preferences.
- Permission & approval: Explicit confirmation for risky local actions.
- Local-first / BYOK: Work stays local; you own the keys.
- Desktop packaging: macOS primary; Windows NSIS developer preview.
- Internationalization: English, Simplified Chinese, Traditional Chinese.
- macOS is the primary release and dogfood target (Apple Silicon + Intel).
- Windows runs the Electron shell, sidecars, and most product UI; see
docs/windows-compat.mdfor preflight, NSIS packaging, and macOS-only gaps (Computer Use / Appshot desktop capture,sandbox-exec). - Linux packages (including Arch AUR) are not supported for now.
- Computer Use + Appshot require the native HandsFree helper and are macOS only.
Pick a local workspace folder
↓
Connect any model (hosted / compatible API / local)
↓
Dispatch office work (chat / automation)
↓
Approve sensitive actions when needed
↓
Open or edit outputs in Files
↓
Deliver or continue
- Node.js matching
.nvmrcandpackage.json#engines. pnpm@10.27.0.- Bun
1.3.9+for runtime scripts that use Bun. - Git.
- OpenCode CLI available on
PATHwhen using the OpenCode runtime. - Xcode Command Line Tools on macOS for desktop development.
Install dependencies:
pnpm installRun the desktop app:
pnpm devpnpm dev starts the Electron shell, UI, and local runtime. It defaults to desktop and uses isolated OpenCode state in development mode.
Use the unified dev selector for a specific app:
pnpm dev -- app
pnpm dev -- server
pnpm dev -- orchestrator
pnpm dev -- headlesspnpm check
pnpm check:i18n
pnpm check:security
pnpm check:boundaries
pnpm check:forbidden-types
pnpm task check app
pnpm task check server
pnpm task build app
pnpm test:unit
pnpm test:api
pnpm test:runtime
pnpm test:ui
pnpm task test server:automation| Group | Scripts | Notes |
|---|---|---|
| Daily dev | dev -- <target> |
dev defaults to desktop; targets are app, server, orchestrator, and headless. |
| Build | build, task build app, task build desktop |
Use task build app for UI-only builds. |
| Checks | check, check:type, check:types:all, task check <target> |
Run before handoff. check:type runs the full workspace type gate. |
| Test gates | test:unit, test:api, test:runtime, test:ui |
Layered server/orchestrator, API, Electron/runtime, and app UI smoke coverage. |
| Targeted tests | task test <target> |
Session, permission, event, automation, server, orchestrator, and module-specific tests. |
| Versioning | task bump <target> |
App version updates. |
| Website | task website <target> |
Website dev, build, check, and preview commands. |
| Release | release:* |
Release review, prepare, and ship flows. |
For local Electron packaging, see BUILD.md.
For the full documentation map, see docs/README.md.
apps/desktop Electron shell, IPC, sidecar/runtime management
apps/app React UI, session workspace, settings, artifacts, i18n
apps/server Local HTTP API for workspace/session/skill/MCP operations
apps/orchestrator Host process that starts OpenCode, server, sandbox
packages/types Shared Zod schemas and type boundaries
packages/ui Shared React visual components (`@onmyagent/ui/react`)
packages/handsfree Local Computer Use runner
packages/onmyagent-ui-mcp MCP server that lets agents inspect/control the UI
The desktop app can start a local host stack, connect to an existing OpenCode server, or attach to a remote worker. The UI talks to the agent backend through the OpenCode SDK and OnMyAgent local APIs.
Dual-runtime boundary: OpenCode is the primary session and server source of truth; Personal Local Agent is the desktop harness for local CLI agents (auxiliary path). UI may share a conversation timeline shape; storage and hot-write paths must not cross. See Dual Runtime Boundary and Server Archive Runtime in docs/Architecture.md.
For deeper architecture details, see docs/Architecture.md.
packages/onmyagent-ui-mcp exposes the desktop UI as MCP tools so agents can inspect and operate published UI actions:
ui_statuschecks whether the desktop bridge is reachable.ui_snapshotreads the current route, narration, status, and visible actions.ui_list_actionslists actions available in the current UI state.ui_execute_actionexecutes a published UI action by ID.
Use this only against trusted local development sessions.
OnMyAgent is local-first, but it can still touch sensitive surfaces: provider keys, local files, MCP tools, shell commands, and external URLs.
Before submitting changes, run:
pnpm check:securityFor vulnerability reporting and project security boundaries, see SECURITY.md.
- Local workspace sessions, file artifacts, office automations, permissions and approvals.
- Any model: hosted providers, compatible APIs, local models; default model and empty-state guidance in Settings.
- Skills / MCP / Memory, software environment, and system permissions (platform-dependent).
- Messaging channels (Feishu / Weixin and similar) on desktop integration paths.
- Experts / store: extension surface; vertical experts ship by readiness — not a full pre-launch promise.
- OpenCode as the local main session stack (server + archive); Personal auxiliary path can attach Codex / Claude Code CLIs.
- UI control bridge and headless / orchestrator developer paths.
- Keep shrinking folder → connect model → first successful office task.
- Productize empty states, default-model status, and failure copy (less engine jargon).
- Grade the expert shelf by readiness; ship verticals in waves.
- Channel E2E, Windows office main path, approval and audit polish.
- Optional team collaboration layer — without blocking the personal office line.
For the full contribution guide, see CONTRIBUTING.md.
Before opening a PR:
- Read
AGENTS.md,docs/Architecture.md, and — for any UI change —DESIGN.md(the visual contract at the repo root). - Keep changes small and focused.
- Add or update tests when behavior changes.
- For cross-module or architecture changes, use Graphify to inspect impact:
graphify query "what area does this change touch" --budget 1200
graphify affected "path/or/symbol"- Run the most relevant checks:
pnpm check:security
pnpm check:i18n
pnpm check:type
pnpm task build appIf desktop or runtime behavior changes, also run the relevant Electron or headless smoke test and mention the command in the PR description.
After larger code changes, run graphify update . to refresh graphify-out/graph.json.
Community participation is governed by CODE_OF_CONDUCT.md.
The app currently maintains English, Simplified Chinese, and Traditional Chinese locale files. User-visible product copy should go through the existing i18n system instead of hardcoded single-language strings.
OnMyAgent is licensed under the Apache License 2.0. See LICENSE for details.