Quickstart
Install with your agent (the magic way)
Point your coding agent at Prism's install endpoint and ask it to set up what you need — it fetches the right precompiled libraries + headers and wires your build flags for you:
claude mcp add --transport http prism https://agent.kinogaki.com/mcp
Then just say "install Prism Core" (or core, codecs, platform, ui). The agent calls install_plan, downloads the universal static libraries from the CDN, checksum-verifies them, and hands you the exact c++ command. No package manager, and nothing to sign — static archives are linked into your binary, never launched, so macOS Gatekeeper doesn't apply. (Any MCP client works; the endpoint is https://agent.kinogaki.com/mcp.)
…or do it by hand
Each library is a download-and-link, too. The libraries ship as a prebuilt static library + headers (c++ -std=c++20 -Iprism/<lib>/include app.cpp -Lprism/<lib>/lib -lprism-<lib>); the CLI, Server and Editor as binaries. Every component also builds from source with one ./build.sh, no CMake required.
Write a document by hand
A .prisma file is just text. Open an editor and type:
#prisma 3.0
def group "world" {
def material "red" {
float3 out = (0.9, 0.15, 0.15)
}
def object "ball" {
float3 position = (0, 1, 0)
float radius = 1.5
float3 albedo = (1, 1, 1)
albedo.connect = </world/red.out> # pull the colour from the material
}
}
Validate it. The checker reports a file-absolute line:column for any error:
$ prism check world.prisma
world.prisma: valid prism document (3 prims, 1 connections)
You have authored a tree of three prims and one connection — a document that is also a graph.
Convert something you already have
The CLI reads and writes foreign formats through codecs, with Prism as the neutral middle:
prism convert notes.md notes.prisma # markdown → a Prism document
prism convert notes.prisma notes.html # …and out to html
prism convert data.json data.prisma # json → navigable, path-addressed prims
Because Markdown and HTML target the same document model, prism convert notes.md notes.html round-trips through Prism without inventing structure. Any other file type round-trips losslessly too — text as lines, binaries as bytes — so nothing is ever stranded.
Pack a whole project into one file
A directory is a Document; bundle it into a single compressed .prism and unpack it byte-for-byte:
prism pack ./site site.prism # pages, images, css → one file
prism unpack site.prism ./out # identical tree back out
Switch encodings freely — .prisma for a diff-clean ASCII form, .prism for a compact binary one, --compress to pack large arrays:
prism convert world.prisma world.prism --compress
Let an agent edit it live
Point the Prism Server at a document to expose it over MCP, and an AI agent can read and mutate it through typed tool calls:
prism-server world.prisma
Now "set the radius of /world/ball to 2 and add a second object" is a sequence of precise, validated edits — not a guess at byte offsets. The Prism Editor embeds the same server, so you can open the document, connect an agent, and watch the panels update as it works.
Where to go next
- The document model — Document, prim, path, property, value, in depth.
- Codecs & canonical content — how one model speaks every format.
- The software stack — the CLI, server and editor as a working set.
- The developer libraries — building your own application on Prism.