NewMCP agent API — drive Promenade from your own AI agent

Local-first storage

Imported event logs, discovered artifacts, and workspace state are stored in the browser's origin-private file system (OPFS). Nothing is sent to a server as part of normal use. Multiple workspaces can exist side by side, each with its own storage.

The artifact tree

Every meaningful object in a workspace — an imported log, a discovered model, a filtered subset, a conformance result — is an artifact, with a type, a provenance record (which action produced it, from which inputs, with which parameters), and zero or more views registered against its type. Running an action against an artifact produces a new artifact rather than mutating the input, so the tree doubles as an undo-safe history of an analysis.

Runtime adapters

Actions execute through one of three runtime adapters today, chosen per-plugin based on what the algorithm needs:

  • wasm — WebAssembly modules, typically compiled from Rust, for CPU-bound algorithms.
  • pyodide — CPython running in the browser, for plugins that depend on the Python scientific stack.
  • relational — SQL executed against an in-browser DuckDB instance, for computations that are naturally set-based.

All three read and write artifacts through the same host data contract (see theAPI reference), so a plugin author picks a runtime for implementation convenience and performance, not because one runtime can do things another can't.

A fourth runtime: Promenade Compute

Promenade Compute is a designed-but-not-yet-shipped fourth runtime adapter for workloads that exceed what a browser tab can hold — very large event logs, primarily. The intent is that it runs the identical plugin code against a compute engine (a container on your own machine, or the same container image in the cloud) that speaks the same host contract, so a plugin doesn't need a separate "large data" code path. See the ecosystem overview on the homepage for how this is meant to relate to the browser application; treat this section as a description of intent rather than a shipped feature.

Plugin sandbox

Plugin views render inside a sandboxed iframe and communicate with the host exclusively through postMessage. This is true for built-in views as well as third-party ones — there is deliberately no privileged code path reserved for first-party plugins. If something is impossible for a plugin to do, the fix is a change to the plugin API, not a core-only shortcut.

Workspaces

A workspace is one OPFS-backed unit of storage: one set of artifacts, one plugin registry state. Promenade supports multiple workspaces so you can, for example, keep a research dataset and a client engagement's data in separate, non-overlapping storage without them interacting.