The endpoints behind the developer plugin portal. All three are refused in SaaS mode and requireDocumentation Index
Fetch the complete documentation index at: https://gridos.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
GRIDOS_DEV_PORTAL_ENABLED=1 on the server.
POST /dev/plugins/upload
Writeplugin.py + manifest.json into plugins/<slug>/ and hot-register the plugin’s formulas/agents/models into the running kernel.
Request
Match
^[a-z][a-z0-9_]{1,39}$ — lowercase letters, digits, underscores; starts with a letter. No path separators, no uppercase. Prevents directory traversal and conflicts with Python module naming.The
manifest.json body. Fields default to sensible values — the slug, a generic description, category "custom", etc. — if omitted.The full source of
plugin.py. Must define a top-level register(kernel) function. Syntax-checked via compile() before the module is imported, so a typo returns a clean 400 rather than a partial install.Response
{ok: false, error: {plugin, error}} where error is the exception message.
DELETE /dev/plugins/{slug}
Unregister every formula + agent the plugin added, evict its cachedsys.modules entry so a reload actually re-runs register(), and remove the directory from disk.
Response
POST /dev/plugins/test
Evaluate a single formula expression in an ephemeralGridOSKernel() so the live workbook state stays clean.
Request
A formula expression. The leading
= is optional — the endpoint adds it if missing.Response
Security notes
- Full RCE surface. Uploaded
plugin.pyis imported into the running server process with no sandbox. Only use in local OSS. - Refused in SaaS unconditionally. No env flag can unlock this in SaaS mode — the marketplace is the sanctioned distribution path there.
- Slug regex blocks path-traversal attempts (
../, etc.) and enforces Python-module-compatible names. - Syntax check before exec. The
compile()precheck surfaces Python errors beforeexec_moduleruns, so a bad plugin can’t partially mutate server state.
Related
- Developer plugin portal — the UI on top of these endpoints.
- Self-evolving formulas — how the agent uses this same upload endpoint to install plugins it proposes.