DEVELOPER GUIDE / START HERE

Purpose and architecture

English | 简体中文

Octoscript is a generic DSL for LLM-generated workflows. It gives models a compact way to express tool orchestration, data transformation and multi-step behavior that an application can inspect and execute.

The host supplies the available services and their contracts. A workflow can run in a service, on a device or as part of an interactive application. App Cards are one application: a model composes an interface over data and actions that the host continues to manage.

Shared VM, defined host responsibilities

Octoscript and Makepad’s Splash UI host use the same makepad-script VM implementation. This repository consumes it as a pinned dependency from the octoscript branch of OctoSense-org/makepad. VM changes belong there; the pin and update policy are in UPSTREAM.md.

PartResponsibility
Makepad makepad-scriptShared VM, parser and script execution machinery
OctoscriptWorkflow language contract, review, execution limits, capability APIs, workflow dataflow and UI profile checking/realization
Workflow embedding hostRegister services, bind accounts and data, authorize actions, schedule work and retain application state
Octoscript-MakepadTranslate UI nodes into Makepad’s widget DSL and supply native component kits
Makepad Splash hostProvide widget bindings, mount the generated widget DSL and handle native rendering and interaction
OctoScript-App-Design-FlowApp authoring, component composition, CLI launch and design-to-card flows
App HubBundle admission, installation, contained UI hosting and host-service transport
OctoSense + octosShell-owned app data and service adapters; kernel-owned agent turns, sessions and peer routing

Sharing a VM implementation does not require sharing one VM instance, heap or set of host bindings. Workflow hosts expose their registered tools; UI hosts install the widget modules and event-loop integration needed by their views.

Workflow path

LLM output
  → Octoscript source, or an ordered draft containing source steps
  → syntax and tool-call review
  → host-selected tools, data contracts and execution policy
  → execution on makepad-script
  → results, workflow state and external operations managed by the host

The workflow language supports functions, control flow, structured data and explicit tool calls. A host can expose ordinary registered tools through mod.tool, or reviewed direct module facades. Deferred calls yield to the host and resume when their results are available.

For multi-step work, a model proposes a data-only draft. The host creates the executable plan, supplies input, connects completed step outputs and selects the grants. The draft itself does not authorize a call. See workflow drafts, tool catalogs and workflow checkpoints.

Optional UI path

generated L0/L1 declarations
  → realized semantic card tree and data bindings
  → theme/component kit and renderer nodes
  → Makepad Splash DSL
  → Splash host using makepad-script
  → native Makepad widgets

The UI path gives a host a rendering handoff. It does not require the standalone workflow CLI to load Makepad widgets, nor does it make every workflow produce a screen. The host connects card actions to its services and supplies updated data to the view.

L0 is declarative: components, slots, sources, keyed collections, state and event transitions. Its realization does not need a VM. L1 adds bounded pure arithmetic to that UI profile. These are sibling profiles of the workflow language, not a sequence of product or rendering layers. The formal UI profile defines admission; the Makepad integration guide explains the handoff.

App authoring belongs in OctoScript-App-Design-Flow. Native renderer and kit APIs live in OctoScript-Makepad. The website’s app and agent walkthrough follows current shell integration, run commands and tool boundaries.

Where to start

Generate source with the LLM authoring guide and the canonical grammar. Embed application services with the tool catalog and JSON contracts. The documentation index leads to runtime, storage and worker topics.

The host remains responsible for application permissions, durable service effects and any required OS containment. See the security model and production integration guidance for those implementation boundaries.

←All documentation