App-server, handled
Discovery, process lifecycle, typed JSONL transport, authentication, catalogs, history, reconnects, and server requests.
Open-source building blocks for Codex apps. One runtime, Electron and web transports, and a shared Vue conversation UI.
Build your own Codex experience on an Apache-2.0 SDK. Start with the mocked component lab, connect a real app-server, then make the application your own.
Share renderer-safe surface, event, attachment, and host-capability contracts across every runtime.
Own app-server startup, global state, concurrent conversations, semantic events, extensions, tools, and MCP configuration.
Project the surface over typed IPC and provide native attachments, clipboard, links, and speech capabilities.
Bind a host-authorized WebSocket without taking ownership of HTTP, authentication, users, or process pooling.
Drop in the shared sidebar and conversation pane or compose the same messages, composer, tools, media, and menus yourself.
Start with the complete application scaffold, then update the generated project with your own shell, backend modules, tools, and product behavior. The renderer boundary remains intentionally small:
<script setup lang="ts">
import { CodexConversationPane, useCodexSurface } from '@codex-app-sdk/vue';
import '@codex-app-sdk/vue/styles.css';
const surface = useCodexSurface(rendererApi);
</script>
<template>
<CodexConversationPane :surface="surface" />
</template>The pane connects through the SDK bridge and renders the active app-server conversation. Your app can add its own conversation list, workspace controls, business UI, or custom tools without recreating the conversation system.
| If you are building… | Start from… |
|---|---|
| A new Electron + Vue application | Project scaffolder |
| A web application embedded in an existing site | Web integration |
A runnable Express + ws web baseline | Basic web sample |
| A full multi-thread Codex client | Basic sample |
| A focused, branded chat experience | Spark sample |
| A business application with model-driven operations | Relay sample |
| A custom runtime or non-Vue renderer | Surface runtime and surface contracts |
| A protocol experiment not yet projected by the SDK | Low-level client |
Design rule
Ordinary application code should speak in conversations, messages, approvals, goals, and events—not thread/*, turn/*, JSON-RPC envelopes, or generated protocol types.
The repository and documentation are public. You can clone the source and run the component lab or samples without package credentials. Starting with 0.14.0, all six scoped packages, including the scaffolder, are public on npm and install without authentication. See installation for setup and migration from the older GitHub Packages releases.
The SDK is pre-1.0. These docs follow main; package releases may lag behind. The JSON-RPC inventory records the checked-in app-server schema version and its coverage.