Quickstart

Install with your agent (the magic way)

Point your coding agent at agent.kinogaki.com and ask it to install what you need. That page explains, in full, what libraries exist and exactly how to install each (the CDN download URLs, checksums, and the precise c++ flags), so any agent (or you) can read it and run the commands:

Read https://agent.kinogaki.com and install Kinogaki Core.

It downloads the universal static libraries from the CDN, checksum-verifies them, and links them in. The install runs entirely on your machine: static archives link into your binary and never launch on their own, so macOS Gatekeeper leaves them alone, and a c++ toolchain is all you need.

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.

Write a document by hand

A .prisma file is plain 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:

$ kinogaki check world.prisma
world.prisma: valid kinogaki document (3 elements, 1 connections)

You have authored a tree of three Elements 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:

kinogaki convert notes.md   notes.prisma    # markdown  → a Prism document
kinogaki convert notes.prisma notes.html    # …and out to html
kinogaki convert data.json  data.prisma     # json → navigable, path-addressed elements

Because Markdown and HTML target the same document model, kinogaki 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 every file keeps its data.

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:

kinogaki pack   ./site site.prism     # pages, images, css → one file
kinogaki 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:

kinogaki convert world.prisma world.prism --compress

Let an agent edit it live

Point the Kinogaki Server at a document to expose it over MCP, and an AI agent can read and mutate it through typed tool calls:

kinogaki-server world.prisma

Now "set the radius of /world/ball to 2 and add a second object" is a sequence of precise, validated edits to named addresses. The Kinogaki 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