Deep UserScripts panel knowledge: Monaco editor integration, UserScriptPlayer wrapper, TypeScript compilation in the transformer Worker, sandboxed runtime Worker execution, diagnostics, and the script API.
68%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./.github/skills/panel-user-scripts/SKILL.mdThe in-app TypeScript editor that lets users write custom message transformations.
UserScripts Panel (Monaco editor)
│
▼
UserScriptPlayer (wraps the base Player)
│
├── Transformer Worker (compiles + reports diagnostics)
│ └── TypeScript compiler (in-Worker)
│
└── Runtime Worker (sandboxed script execution)
└── user code runs here (isolated)| File | Role |
|---|---|
panels/UserScriptEditor/ | Monaco editor UI, diagnostics display |
players/UserScriptPlayer/index.ts | Player wrapper, Worker pool management |
players/UserScriptPlayer/transformerWorker/ | TypeScript compilation in a Worker |
players/UserScriptPlayer/runtimeWorker/ | Sandboxed script execution |
PlayerState as additional topics// unique name per instance — isolates workers per tab (no cross-tab sharing)
new SharedWorker(new URL("./transformerWorker/index", import.meta.url), {
name: uuidv4(),
});SharedWorker is the worker type, but cross-tab instance reuse is disabled by unique naming.export const inputs = ["/camera/image"];
export const output = "/processed_image";
export default function transform(event: MessageEvent): OutputMessage {
return {
/* processed data */
};
}packages/suite-base/src/panels/UserScriptEditor/packages/suite-base/src/players/UserScriptPlayer/index.tspackages/suite-base/src/players/UserScriptPlayer/transformerWorker/packages/suite-base/src/players/UserScriptPlayer/runtimeWorker/web-workers skilllichtblick-suite/lichtblick
9589f38
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.