Documentation
The guides tell how to build, run and release the packages. The program format tells how a JSON program runs. Each package has its README. A JSON program in a page opens in the Composer, and a small one runs on the page.
Guides
- OnboardingThis guide tells you how to build the monorepo, start procedures, and add a package or a procedure. The July 2026 version is history. For the design, read…
- The program formatThis document specifies the procedure-as-data format. It is the JSON that client.exec(), the control-flow procedures, procedure.define and the Composer of the…12 programs
- ArchitectureThis document describes the client ecosystem as it is in the monorepo, after the deep dive of October 2026. The July 2026 version is history. The roadmap and…
- ReleaseThis document tells how the packages of the monorepo go to npm. The first release needs a one-time bootstrap. Each later release starts from GitHub Actions.
Client library
- Client APIThe Universal Client provides protocol-agnostic RPC communication with type-safe middleware composition.
- Server APIThe Universal Server provides protocol-agnostic RPC handling with middleware support.
- Transport AdaptersAdapters provide protocol-specific implementations of the Transport interface.
- Middleware SystemThe library provides a unified middleware system that works for both client requests and collection operations.
- Call policy and interceptorsThis document tells how a host controls which procedures a caller can reach, and how code runs around each invocation. The code is in src/pr…
Packages
clientProcedures as data for TypeScript: define typed procedures once and call them in process, over HTTP, WebSocket, the CLI or MCP. Streaming, middleware, retries, caching and a JSON program format.bundle-devOne import that registers the development procedures of the client ecosystem: shell, file system, git, pnpm, workspace, DAG and procedure scaffolding.bundle-mcpThe curated tool surface for Claude: registers the docker, mongo, sqlite, cue, vitest and workspace procedures and selects which ones an MCP server exposes.client-cliRun any mark CLI command as a procedure (cli.run) with a safe argv mapping: no shell, typed flags and captured output.client-collectionsCollections for TypeScript: ArrayList, LinkedList, ArrayDeque, HashMap, LinkedHashMap, TreeMap (red-black), PriorityQueue, LRU and TTL maps, async queues, channels and collectors, tested with fast-check.client-cuecue-config as procedures: generate package.json, tsconfig.json and .gitignore from CUE feature presets, add and remove features, and validate projects.client-dagDependency graph algorithms for TypeScript: build a DAG, detect cycles, compute topological levels and traverse in parallel with a concurrency limit.client-dockerDocker and Docker Compose as typed procedures: ps, run, exec, logs (streaming), build, pull, stop, rm, compose up and down, run with argv and no shell injection.client-fsFile system procedures: read, write, copy, move, glob, exists, mkdir and JSON read and write, callable in process, over RPC or from Claude through MCP.client-gitGit as 26 typed procedures: status, diff, log, add, commit, push, pull, branch, checkout, stash and more, run with argv, async and abortable.client-libWorkspace procedures for pnpm monorepos: scan the packages, scaffold a new package, audit packages against a template, rename across the workspace, and program runners.client-mcpModel Context Protocol server transport: serve typed procedures as MCP tools to Claude and other MCP clients, with streaming progress, list_changed and an expose policy.client-mongoMongoDB as typed procedures: documents, collections, indexes, aggregation and database info, with a lazy connection and safe update and delete targets.client-nodeNode.js process procedures: run scripts, spawn and manage long-running processes, with output caps and process-tree cleanup.client-playgroundA typed fluent API to write procedure programs in TypeScript (proc, ref, run) with autocomplete, then run them with the client.client-pnpmpnpm commands as typed procedures: install, add, remove, run and link, run with argv and option-injection guards.client-procedureProcedure scaffolding and management: procedure.new writes typed procedure files, plus get, list, define and the procedure store.client-s3AWS S3 as typed procedures: upload, download with safe part files, list, delete and multipart uploads.client-serverServe procedures: HTTP and WebSocket peers with token authentication, browser checks, an expose list, server.create, status and stop, and manifests.client-shellSafe command execution for TypeScript: shell.run with argv and no shell, shell.stream line streaming with backpressure, process-tree kill, timeouts and output caps.client-snapshotSnapshot and restore development environments with S3: git state, packages and files, with streamed archives and a safe restore.client-splayRender procedure results with splay: a bridge between the client procedures and the splay recursive renderer, with stream helpers.client-sqliteSQLite procedures with sql.js and no native build: db.query, db.execute and structured logs (logs.store, logs.query), safe for concurrent writes.client-storeA program store for procedure-as-data: save the programs that procedure.define makes, load them back after a restart, in memory, a JSON file or a remote collection storage.client-viteVite as procedures: dev server, build, preview and stop, with no shell and managed processes.client-vitestVitest as procedures: run the tests with results and coverage, watch, and stop the managed watch processes.documentationThis folder holds the documents of the client monorepo. The table tells what each document is for. The README of each package describes that package.impl-mcp-devA ready-to-use MCP server for Claude Code and Claude Desktop: 62 developer tools (docker, mongo, sqlite, cue, vitest, workspace) with a strict call policy.markmark: one CLI for every procedure package. It finds the procedures, parses flags by their Zod types, runs local or through a fast warm server, and asks for missing arguments.mcpMap typed procedures to MCP tools: JSON Schema from Zod, tool names, and input and result conversion for Model Context Protocol servers.serverA standalone procedure server: load procedure packages and serve them over HTTP and WebSocket with a token and an expose list.