Docs Control and automate
Plugins
A plugin adds to the app:
- tools that compute;
- Python libraries for your scripts;
- Lean libraries for your Lean.
Install one from the Plugins panel, or add your own from a folder.
The catalogue
Only licences free for any use.
- Tools: SymPy and SciPy. Each answer comes with a Lean file that checks it.
- Python: NetworkX, pandas, scikit-learn, statsmodels, Bokeh, CVXPY and more.
- Lean: CSLib, LeanCert, CompPoly, Velvet, Physlib, StatLib, Foundation, GameTheory.
Turn a plugin off to pause it. Uninstall removes it.
Your own plugin
A plugin is a folder with roomtoprove-plugin.json:
JSON
{
"id": "org.example.my-plugin",
"name": "My plugin",
"version": "0.1.0",
"licence": "MIT",
"description": "What it does, in one sentence.",
"tools": {
"command": ["python3", "server.py"],
"runtime": { "python": ">=3.10", "requires": ["sympy>=1.13"] }
}
}
Choose From a folder… to add it. Any licence is fine for your own.
Tools
A tool runs apart from the app, with no network. It speaks the Model Context Protocol: JSON lines over standard input and output.
An answer can carry:
| Field | Means |
|---|---|
answer |
the result |
tex |
how it reads, in TeX |
lean |
a Lean file that proves it |
checks |
what that file checks |
unchecked |
what it does not |
The app says checked by Lean only when the file has no error and no
sorry.
Python libraries
JSON
{ "id": "org.example.graphs", "name": "Graphs", "version": "1.0.0",
"licence": "BSD-3-Clause", "python": { "packages": ["networkx"] } }
Each package is checked before it is kept.
Lean libraries
Your own library can stay private, in a folder of the plugin:
JSON
{ "id": "org.example.my-lean", "name": "My Lean library", "version": "0.1.0",
"licence": "LicenseRef-Private",
"lean": [{ "name": "MyLib", "path": "MyLib", "modules": ["MyLib"] }] }
A public one names its git address and version instead.
- The app builds it once, in the sandbox.
- A small library takes seconds. CSLib takes about a minute.
- Then your drafts can
importit.