Documentation (GitHub Pages) · Source
Plasm is a typed capability graph (CGS), wire mappings (CML), and a path-expression language agents use against real APIs: validate before transport, compact session symbols, HTTP and MCP hosts, and 42 curated integration catalogs under apis/ (see the full catalog table). Deep dives—plasm-server, plasm remote terminal, execute semantics, authoring, views, schema overlays, and env flags—live in the documentation site.
Most agent stacks still center on ad hoc JSON tools: large schemas in context, fragile emitted payloads, and no shared model of entities and relations across vendors. If you want the motivation and framing for a typed interaction layer instead—one graph-shaped contract, validation before wire calls, and a path language that stays stable as you federate catalogs—read Plasm: a typed interaction layer for agents working across APIs (Medium). This repo and the docs site are where that story meets the implementation.
Prerequisites: Rust (cargo). Optional: Just, Elixir (for downstream Phoenix workflows).
OSS appliance (native binary) — plasm-server (Cargo package plasm-server): in-process kernel, HTTP + MCP, optional Ratatui UI. No OSS container image is shipped from this repo; run with Cargo:
cargo build -p plasm-server --release
cargo run -p plasm-server --release -- \
--schema fixtures/schemas/capability_with_inputAfter install.sh, run plasm-server with no flags. From a checkout with packed catalogs, pass --catalog-dir target/plasm-catalogs (see Plugins & compile pipeline). --no-tui runs headless. For project_mcp_* persistence run plasm-server mcp migrate-db. Details: Appliance quick start.
Remote client: install plasm from plasm.tools/get and follow Remote terminal.
Full flags, /execute, MCP tools, plugins, and catalog workflows are covered in the documentation; contributor-oriented commands and boundaries are summarized in AGENTS.md. Doc sources: doc-site/.
Split CGS + CML trees live under apis/. The links below point at catalogs whose own README is the source of truth for how to run, auth env vars, and stated scope—many also spell out plasm-eval coverage or plasm schema validate flows. They are the usual “complete enough to trust the README” set, not an exhaustive inventory (see the full catalog table for every directory). Capability counts in parentheses are the number of entries under capabilities: in that catalog’s domain.yaml (what the runtime loads).
Public (no API key): dnd5e (60) · pokeapi (97) · graphqlzero (15) · hackernews (8) · openbrewerydb (5) · rickandmorty (6) · xkcd (1) · rawg (2; optional key for rate limits) · openmeteo (1)
Auth’d integrations (README + eval / validate where noted): github (91) · clickup (85) · notion (14) · linear (27; COVERAGE.md) · gitlab (42) · slack (57) · discord (135) · spotify (17) · reddit (11) · twitter / X (15) · tavily (5) · musixmatch (7)
Google Workspace (OAuth; each README lists scopes and coverage commands): gmail (30) · calendar (4) · docs (3) · drive (45) · sheets (17)
On-chain (native transport): evm-erc20 (2) — intentionally narrow (ERC-20 balance + Transfer logs): it exists to demonstrate the interface when the mapping target is native EVM (JSON-RPC to a chain URL), not OpenAPI/GraphQL over HTTP. Plasm is not HTTP-only—HTTP and GraphQL are the common catalog shapes today; this catalog shows the same CGS → CML → runtime path on a non-HTTP wire. Broader on-chain surfaces are orthogonal to proving that transport seam. Enable the evm Cargo feature (see README).
OTEL ≠ stored execution trace. Do not merge these.
| Lane | Crates | Role |
|---|---|---|
| OTLP export | plasm-otel |
Spans/metrics/logs via standard OTEL_* env |
| Execution trace | plasm-trace-wire + plasm-trace |
Wire DTOs + MCP/execute session timeline (TraceHub) |
| Durable sink (SaaS ops binary) | plasm-trace-sink |
Optional Iceberg HTTP ingest when PLASM_TRACE_SINK_URL is set — Helm subchart; not a Cargo dep of the appliance |
OSS appliance and agent paths use otel + trace (+ wire). The sink is product/deploy optional and often --excluded from local OSS CI builds (Iceberg/datafusion drift).
Except where otherwise noted, Plasm-authored code in Plasm Core is available under either the MIT License or the Apache License, Version 2.0, at your option.
crates/plasm-trace-sink remains under the
Business Source License 1.1. Imported source,
data, and specifications remain under their respective terms; the repository's
licence files do not override third-party rights.
v0.4.44 is the final BUSL release of Plasm Core. v0.4.45 is the first
dual-licensed release. Historical BUSL versions retain their original terms,
including their per-version conversion on the earlier of 2030-04-24 or the
fourth anniversary of that version's first public distribution.