iPolloWork Docs

System architecture

Understand the local work runtime, the optional control plane, and the two API surfaces that connect them.

iPolloWork is designed as a local-first system. The desktop client, local server, workspace files, and agent sidecar can complete normal work without an organization Cloud deployment. When a team needs identity, shared capabilities, connector administration, or managed workers, the control plane adds those functions without replacing the local Work path.

This split is intentional. It keeps local files and immediate creative work close to the person doing the work, while keeping organization policy and reusable configuration in the systems that own them.

System boundariesFive boundaries, one work loop

Each lane owns a different type of state. The client should use the interface belonging to that state instead of bypassing a boundary.

01
Work surface

Person-facing and editable

React and Vite app

Renders sessions, files, browser output, design, and video surfaces.

Electron shell

Owns native lifecycle, local permissions, and desktop integration.

02
Local runtime

Workspace execution boundary

iPolloWork server

Serves workspace state, approval gates, artifacts, and runtime adapters.

OpenCode sidecar

An external agent runtime reached through the supported server adapter.

03
Workspace data

Local source of truth

Repository and files

The directly editable project material and outputs.

Session and audit records

Context, tool trace, approvals, and exported activity for a workspace.

04
Optional control plane

Organization-level state

Den API

Identity, organizations, capabilities, connectors, and worker lifecycle.

Managed workers

Remote runtimes created only when a hosted worker is required.

The execution path

An agent task is a loop with explicit review points. The runtime should not silently switch to an unrelated client, a private local API must not become a public admin API, and a rendered output must remain editable in the surface where it was produced.

Execution topologyFrom outcome to an inspectable result

The same session can cross code, design, browser, and video work, but all execution remains observable through the local server boundary.

  1. 01Outcome

    A person supplies a goal, constraints, files, repository, or URL.

  2. 02Session context

    The client preserves task context and selects the needed work surface.

  3. 03Approval and tools

    The local server brokers tool work and asks for approval when its policy requires it.

  4. 04Editable artifact

    Files, visual canvas, browser state, or video scene can be inspected and revised.

Two API surfaces

The project exposes two different integration planes. Choosing the correct one prevents accidental coupling between a local workspace and organization administration.

SurfaceOwnerTypical addressUse it forDo not use it for
Local iPolloWork serverThe person or workspace hosthttp://127.0.0.1:8787 by defaultWorkspace files, sessions, local approval, artifacts, server status, and the supported OpenCode proxyOrganization membership, shared Cloud configuration, or managed worker provisioning
Den control planeThe organizationA configured iPolloWork Cloud base URLIdentity, organization scope, configuration resources, connectors, plugins, Skills, and hosted workersReaching directly into an arbitrary local file system or bypassing a workspace approval policy

The local server documents /health, /status, /capabilities, /whoami, workspace routes, audit routes, and the /opencode/* proxy boundary. The control plane contract is maintained in packages/docs/openapi.json and described in the API reference.

Local work remains useful without Cloud

Local-first guaranteeWhat continues to work when no control plane is configured

Cloud connection adds organization capabilities. It is not a prerequisite for a local project, local server, or the desktop work loop.

  1. 01Open a workspace

    Launch the desktop or browser work surface against a local project.

  2. 02Run the local server

    Keep workspace state, approval policy, artifacts, and runtime adapters on the local path.

  3. 03Use supported sidecars

    Prepare OpenCode and Orchestrator through the repository launcher.

  4. 04Add Cloud later

    Connect only when team identity, shared capabilities, or hosted workers are needed.

Design rules for integrations

  1. Let the server own workspace operations. A client should call the local server API rather than inventing a second local execution path.
  2. Keep OpenCode behind the supported adapter. It is an external sidecar, not an API surface for application code to modify directly.
  3. Make remote work explicit. A hosted worker begins with a worker lifecycle request. It is not silently created because a local task exists.
  4. Keep secrets at their owning boundary. Local server tokens, Cloud session tokens, provider credentials, and connector credentials should never be copied into artifacts or logs.
  5. Preserve a reversible review loop. Outputs should stay inspectable as files, editable visual structures, or recorded runtime state.

For the component-level package layout and exact commands, continue with Local development. For route shapes and authentication, continue with OpenAPI and integration.