Documentation / Runtime Library

Grimoire

A library for code, kept in your own storage and run in your own namespace — Python, PHP, Node, C and most modern languages, via WebAssembly.

Open Grimoire

Overview

Grimoire is a place to keep code and to find other people's. A source lives in your namespace, on root or mounted storage — your choice, and it moves between them whenever you like. Nobody else holds it.

Take a public source and a copy lands in your storage. It is yours from that moment; the original is untouched. Then it runs there, in the WebAssembly sandbox, in whichever language it was written in.

What it is

A library of modules, not a Git host with a CI afterthought. The unit is a runnable source. OcaltQL WebAssembly hosts Python, PHP, NodeJS, C and most modern programming languages, so a module does not have to be rewritten in the query language to be useful.

Ocalt keeps only the index — what exists, what is public, what has been boosted, and where the content sits. That is what lets search work across accounts without anyone else holding your code.

What it does

  • Browse and search every public source without an account.
  • Boost a source and it rises: what people boost is what surfaces first.
  • Rip a source and a copy lands in your storage, yours to change.
  • Keep your own private, or publish them and let them be found.
  • Run a module in the WASM sandbox against your namespace.

How it works

The files are yours and stay in your namespace. Publishing flips a bit on the index, it does not upload a second canonical copy onto a platform disk you cannot see. Unpublishing removes the index row; the files remain.

Ripping is a copy, not a fork graph. From that moment the copy has no live link to the original. If you want updates, rip again and merge yourself. That is deliberate — a module you run in production should not change under you because someone else pushed.

Execution is sandboxed. A module can use what your account can use, and nothing else. It does not get a free ride into another namespace.

Getting started

  1. Open grimoire.ocalt.com. Browse public sources signed out if you like.
  2. Sign in. Rip one that does something you understand. Confirm the files appeared in Ocaltio under your storage.
  3. Run it. Read the output. Change a string. Run it again.
  4. Publish one of your own when it is something you would be willing to see other people run.

Languages and the sandbox

The runtime is OcaltQL WebAssembly hosting other languages, not a fleet of containers you manage. Python, PHP, NodeJS, C and most modern languages are the advertised set. If a language needs a native extension that the sandbox does not offer, it will not silently work on your laptop's ABI — it will fail in the sandbox, which is the correct failure.

Prefer modules that are data in, data out. Talk to the rest of Ocalt through the language or through HTTP to ql.ocalt.com/api from inside the module if you must. Do not assume a local filesystem layout beyond what the namespace mounted.

Who it is for

Anyone who writes code and wants somewhere to keep it that is also somewhere it can run. Teams that want a private library in the business namespace. People who would rather rip a working parser than vendor a package and a lockfile into a project they will not look at for six months.

FAQ

Is this GitHub?

No. There is no pull-request social graph and no Actions YAML. There is an index, a copy, and a sandbox. Use Git if you need Git; keep the runnable copy in Grimoire.

Who can run a private module?

People who can act in the namespace that holds it. A business member with the right grant can. The public cannot.