Skip to main content

Architecture for Builders

If you are building on Codebolt, start with this mental model:

  • packages/server is the central execution and stateful core.
  • clients connect to that server
  • agents run outside that server
  • plugins run outside that server
  • the server owns the system of record

That split is the reason Codebolt has multiple SDKs. Each SDK serves a different boundary around the same server.

The core idea

Codebolt is built around a central execution server in packages/server.

The server owns:

  • files and project access
  • memory and retrieval
  • tool execution and MCP integration
  • event logs and replay
  • orchestration, delegation, and run state
  • guardrails and evaluation

Everything else connects to or extends that server.

The builder-facing pieces

PieceWhat it isUse it when
ServerThe central execution runtime in packages/serverYou are reasoning about how Codebolt works overall
Client SDK@codebolt/client-sdkYou are building a custom UI, CLI, dashboard, widget, or editor client
Agent SDK@codebolt/codeboltjsYou are building an agent that runs as its own process and connects back to the server
Plugin SDK@codebolt/plugin-sdkYou are extending the application runtime with providers, gateways, hooks, or embedded panels
Agent extensionsCapabilities, skills, MCP tools, blocksYou want to extend what agents can do without building a new runtime

What runs where

custom client / desktop / CLI

│ WebSocket + HTTP

codebolt server (packages/server)
│ │
│ ├── plugin processes
│ │ ↑
│ │ plugin-sdk
│ │
│ └── agent processes
│ ↑
│ codeboltjs / raw protocol

└── state, tools, memory, orchestration, event log

The key boundary is simple:

  • the server owns execution state
  • clients present interfaces to users
  • agents contain agent logic and run separately
  • plugins extend the runtime around the server

Why the agent logic lives outside the server

Codebolt no longer needs to embed all agent logic inside the main execution environment.

Instead, an agent can run as its own process and connect to the server. That gives you:

  • isolation: one broken agent does not take down the server
  • flexibility: agents can be written and versioned independently
  • multiple runtimes: native Codebolt agents, wrapped third-party agents, and non-JS agents can all connect to the same system
  • cleaner architecture: the server remains the control and execution core, while agent behavior lives at the edge

This is the reason @codebolt/codeboltjs matters so much: it is the main SDK for building those external agent runtimes.

Which SDK should I choose?

How this relates to Internals

This page is the builder's mental model.

Internals is the deeper system view:

  • the five planes
  • process ownership and restart policy
  • subsystem boundaries
  • detailed end-to-end flows

Read this page first. Read Internals when you need to understand how the server implements the model.

See also