The first-party, Codex-native application host for One Person Lab
A DeepSeek Harness/Cordis workbench for persistent conversations, OPL Packages, project progress, files, results, and runtime operations.
Download One Person Lab · Documentation · Architecture · Verification
OPL Studio is the current first-party Application Host for One Person Lab. It combines a persistent Codex backend, the OPL App product model, Framework-owned runtime and Package projections, and a shared desktop/WebUI renderer in one workbench.
Studio is built on a pinned DeepSeek Harness (DSH) v0.2.1-alpha.1 application
skeleton and GUI source cohort. DSH supplies the Cordis application host,
plugin lifecycle, layout system, UI primitives, and interaction foundations.
OPL supplies the product identity, Codex integration, Framework bridge, product
policy, and first-party plugins.
This repository is not a second OPL Framework implementation. The product boundary remains:
OPL Base runtime and Package authority
OPL App product, GUI contract, adoption, and release authority
OPL Studio Application Host, Codex backend, renderer, and plugin host
OPL Packages professional Agents, Skills, Tools, Plugins, and Workflows
OPL Cloud optional online workspaces and hosted services
The ordinary product is One Person Lab App, distributed through the
App Latest Release.
macOS Stable has used Studio since 26.9.25, retaining cn.onepersonlab.opl,
the One Person Lab.app installation and the App update feed. The
App installation guide
owns platform selection and trusted installation.
App releases offer two payload densities on macOS arm64; read the exact release assets for availability:
| Package | Intended use | Payload |
|---|---|---|
| Standard | Upgrades or connected first installs | Smaller app package; managed setup prepares OPL Base and the Official Profile |
| Full | First-time installation | Offline runtime and Package seeds for the same Official Profile, reducing first-launch downloads |
Standard and Full are two payloads of one version, not separate product versions or update channels. Studio resolves the external or Framework-managed Codex executable through the App-owned launch and qualification contract.
Existing Preview installations: the retained macOS arm64 Preview release uses
cn.onepersonlab.opl.studio.previewand its own update feed. A terminal handoff verifies and installs one exact Stable target, preserving allowlisted settings, drafts and canonical thread references. Its fixed target and historical route evidence do not qualify every later release. See Desktop distribution.
Windows and Linux Desktop assets are published through the App's same-tag platform routes; installed acceptance remains platform-specific. Studio also implements standalone WebUI and the App's independent Docker WebUI line. OCI Preview uses a separate publication workflow and immutable Cloud handoff; see OCI distribution. Read the release assets and handoff for the current platform and digest rather than inferring publication from source support.
- Persistent Codex threads, turns, approvals, streaming events, and history.
- One project and conversation directory backed by canonical Codex App Server thread APIs rather than a copied Native conversation store.
- Dynamic OPL Agent and capability discovery from App/Framework projections, without a hard-coded roster of Package brands.
- Project progress, files and results, and Agents and capabilities in an on-demand task inspector.
- App-owned Settings, Gateway account configuration, model selection, permission controls, runtime status, and update status.
- DSH-native tool plugins exposed to Codex through an authenticated loopback MCP bridge.
- One renderer and Host contract across Electron and the standalone WebUI candidate.
Electron / WebUI renderer
|
v
OPL Studio DSH/Cordis Application Host
|-- opl-codex-native ------> persistent Codex App Server
|-- opl-dsh-tool-mcp ------> DSH tool plugins
|-- opl-framework-bridge --> OPL App state/action contracts
`-- opl-web-routes --------> HTTP/SSE WebUI transport
|
v
OPL Framework Host
runtime and Package authority
Studio runs a dedicated opl-studio DSH profile but deliberately excludes
dsh-base. It therefore does not adopt a second DSH session store, LLM/provider
router, Agent loop, or credential authority. opl-codex-native is the only
owner of the persistent Codex App Server, canonical threads and turns,
approvals, and live turn events inside Studio.
opl-framework-bridge consumes only the App/Framework public state, action,
authentication, and channel callback contracts. Framework remains the owner of
runtime currentness, Package discovery, installation, and Package state.
| Concern | Authority |
|---|---|
| Product behavior, model policy, GUI ABI, adoption, and release | one-person-lab-app contracts and workflows |
| Studio Host, DSH profile, renderer, plugin lifecycle, and Codex integration | This repository |
| Runtime and Package graph | one-person-lab / OPL Framework |
| Thread identity, history, approvals, and turns | Codex App Server through opl-codex-native |
| Professional quality, artifacts, and delivery decisions | The corresponding OPL Package/domain owner |
See Implementation and authority architecture for the complete boundary.
Install dependencies and start the Electron development carrier:
npm ci
npm run dev:desktopStart the standalone WebUI candidate at http://127.0.0.1:4178:
npm run devFor App-managed Preview launch and environment injection, use the sibling
one-person-lab-app repository:
npm run gui -- --shell opl-studio
npm run gui -- --shell opl-studio --rebuild
npm run gui -- --shell opl-studio --allow-actionsThe App-managed route supplies the product profile and external runtime inputs.
Directly opening a locally built bundle is useful for development, but it is
not equivalent to the App-owned launch or release qualification path.
For direct Desktop or WebUI runs, set OPL_CODEX_BIN and OPL_APP_OPL_BIN
when the corresponding codex and opl executables are not discoverable on
PATH.
Build and run the standalone Node Host:
npm run build:webui
npm run start:headlessBuild the local Docker candidate:
docker compose up --buildBoth local routes default to loopback. Cloud deployment uses the password, signed-session, and CSRF boundary described in OCI distribution, with TLS and tenant isolation supplied by the Cloud owner. Desktop distribution and qualification are described in desktop distribution.
The DSH source ref, package cohort, vendored GUI roots, and file inventory are
pinned in
deepseekHarnessSourceManifest.json.
The binding is designed to follow upstream through an explicit replay rather
than an untracked fork.
Read the current binding and produce a no-write upgrade plan with:
npm run dsh:status
npm run dsh:preflight -- --source /absolute/path/to/clean/deepseek-harnessAn upgrade must update the manifest and dependency cohort together, re-vendor the declared GUI source roots, replay the Studio profile and overlays, and pass the focused Host, renderer, and candidate gates. Package installation or GUI byte parity alone is not sufficient compatibility evidence.
Run the repository source gate:
npm testnpm test covers type checking, Desktop/headless/OCI contracts, the DSH Host
and MCP bridge, thread and workspace services, product projections, Client
Cordis composition, and candidate invariants. It does not construct or certify
a public Release.
For App-contract-driven local carrier evidence from a committed, tracked-clean Studio checkout:
OPL_APP_REPO_ROOT=/absolute/path/to/one-person-lab-app npm run packageThat command produces local Electron, standalone WebUI, and Docker candidate evidence. Signing, notarization, publication, clean-VM qualification, and Stable App adoption remain App-owned release operations. See Verification and evidence boundaries before interpreting a test or package result.
- Documentation and owner map
- Implementation and authority architecture
- Current state and remaining gaps
- Verification and evidence boundaries
- Desktop distribution
- Historical candidate baseline
OPL Studio is licensed under the Apache License 2.0. Vendored and
runtime third-party components retain their own licenses and notices in
THIRD_PARTY_NOTICES.md.