About this project

Plasm is a typed interaction layer for agents working across APIs. It provides a capability graph (CGS), wire mappings (CML), and a path-expression language that lets agents validate before making wire calls, use compact session symbols, and interact with HTTP and MCP hosts. The repository includes 42 curated integration catalogs under `apis/`, covering public APIs (dnd5e, pokeapi, graphqlzero, hackernews, openbrewerydb, rickandmorty, xkcd, rawg, openmeteo), authenticated services (github, clickup, notion, linear, gitlab, slack, discord, spotify, reddit, twitter/X, tavily, musixmatch), Google Workspace (gmail, calendar, docs, drive, sheets), and an on-chain EVM ERC-20 example demonstrating non-HTTP transport. The project is implemented in Rust and provides `plasm-server`, an OSS appliance with an in-process kernel, HTTP and MCP support, and an optional Ratatui UI. A remote terminal client `plasm` is available from plasm.tools/get. The documentation site covers deep dives into plasm-server, the remote terminal, execute semantics, authoring, views, schema overlays, and environment flags. Observability is split into two lanes: OTLP export via `plasm-otel` for standard telemetry, and execution trace via `plasm-trace-wire` and `plasm-trace` for session timelines. A durable sink (`plasm-trace-sink`) is optional and under a Business Source License. Licensing: Plasm-authored code is dual-licensed under MIT or Apache 2.0, except `plasm-trace-sink` which remains under BUSL 1.1. The repository is actively maintained with GitHub Actions and a documentation site.