sergeinikolenko/burette/molstar-scene
Claude Code and agent skill by sergeinikolenko/burette
- community
Checking that the SKILL.md file is still in the repository.
Use when operating an active Mol* scene through allowlisted Burette actions and typed observe/action results.
Install
npx vskill@latest install sergeinikolenko/burette/molstar-sceneSKILL.md
Molstar Scene
Use this workflow for scene operations:
- focus ligand;
- label the active selection or a precise component;
- show ligands;
- select residues;
- focus selection;
- compute lightweight contacts;
- hide or show waters;
- show molecular surface;
- color by chain;
- reset camera;
- apply a compact declarative scene schema for target/component requests such
as highlighting protein, selecting active-site loops, and focusing a named selection;
- load a complete MolViewSpec scene payload when the agent already has one;
- translate user requests into MolViewSpec-informed selectors, components,
representations, color, opacity, labels, camera, focus, and canvas concepts;
- export an image of the configured scene with
burette.capture_viewor
scripts/burette-agent.mjs capture, which write the file and let the agent inspect the frame.
For multi-step narratives, tours, presentations, or explanations, route to mvs-story. load_mvs loads a complete payload, while the Story workflow also creates, validates, packages, observes, and navigates the snapshots.
Contract
Use one typed action surface:
For browser-agent-shell, use the sessionDir returned by open --mode browser-agent-shell; the browser shell polls that session over its local dev-server endpoint and relays actions to the active Mol* iframe. Do not use Browser DOM clicks for scene edits when this session contract is available. If the user is already looking at a browser-agent-shell URL and the session directory is not in context, pass that URL directly with --url; the CLI will resolve the shell session through /__burette/agent-session/session.json when the shell is alive.
Do not add one endpoint per Mol* command. The action body must be allowlisted and serializable.
MolViewSpec-informed scene language
Use MolViewSpec as the mental model for agent scene requests, but keep two execution paths separate:
apply_sceneedits the currently active Burette/Mol* viewer by relaying
allowlisted commands. Use it for highlight, select, focus, contact neighborhood, water/surface/theme toggles, screenshot, and reset camera.
load_mvsloads a complete MolViewSpec state (mvsjJSON ormvsxarchive)
through Mol* loadMvsData. Use it when the request really needs a full MVS tree: download/parse/structure/transform/component/representation/color/ opacity/label/tooltip/focus/camera/canvas/primitives/volume/animation.
Before authoring an unfamiliar full MVS tree, route to the Story authoring reference and call burette.get_mvs_authoring_reference. Request the overview first and then one exact node contract at a time. Do not guess parameters from memory.
Map natural language to these MVS concepts:
- component: what atoms/residues/chains are affected.
- representation: how that component is drawn, e.g.
cartoon,
ball_and_stick, line, spacefill, surface.
- color/opacity: visual emphasis for the component or a sub-selection.
- label/tooltip: textual annotation for a component.
- focus: camera fit to a component.
- camera: explicit root-level camera orientation (
target,position,up). - canvas: global view settings such as background color.
- transform/instance: coordinate movement or duplicated transformed instances;
only promise this through a full MVS scene, not through quick apply_scene.
Selectors follow MolViewSpec vocabulary. Prefer these static selectors when they match the request:
For precise requests, use an object selector. Prefer label_* identifiers when the file exposes them, but accept auth_* when the user names author/PDB numbering:
Use an array of selector objects as a union, e.g. multiple chains or separated loop ranges.
apply_scene accepts MVS-like components or operations with selector/target, optional label, optional visual hints, and operation flags:
Use these request patterns:
When a user says "move the scene", decide which meaning applies:
- camera movement/orientation: use
focus_selection,focus_ligand,
reset_camera, or a future explicit camera action. Do not simulate this with Browser drag events.
- structure movement/rotation/instances: build and load a complete MVS scene
with transform or instance nodes via load_mvs.
Use load_mvs only for complete MolViewSpec (mvsj or mvsx) payloads that should be handed to Mol* loadMvsData as scene state:
Upstream References
Ground new scene language in:
- MolViewSpec docs: https://molstar.org/mol-view-spec-docs/
- Tree schema: https://molstar.org/mol-view-spec-docs/tree-schema/
- Selectors: https://molstar.org/mol-view-spec-docs/selectors/
- Camera settings: https://molstar.org/mol-view-spec-docs/camera-settings/
- MolViewSpec repository: https://github.com/molstar/mol-view-spec
- Mol* examples: https://github.com/molstar/molstar/tree/master/src/examples
Relevant local Mol* examples when node_modules is installed:
node_modules/molstar/lib/examples/basic-wrapper/index.jsnode_modules/molstar/lib/examples/proteopedia-wrapper/index.jsnode_modules/molstar/lib/examples/interactions/index.jsnode_modules/molstar/lib/examples/mvs-stories/stories/node_modules/molstar/lib/extensions/mvs/camera.js
Verification
After scene actions, run observe and inspect the action result. Use Browser or Computer only for visual confirmation. If the active fixture has no waters, hide_waters should return a successful typed no-op such as componentCount: 0 instead of a false failure.
For browser-agent-shell and desktop sessions, check observe.scene.selection first. It reports the last known selection/focused ligand with selectionId, ligand identity, and counts when the active viewer returned them.
Ligand focus can be a partial success. If showNeighborhood cannot resolve a protein/contact target, the action should still succeed when the ligand was selected/focused and return neighborhood.ok: false with a typed error. Do not retry the whole focus just because contacts failed.
Unsupported Cases
If a selector cannot resolve, return or report typed failures such as SELECTION_EMPTY or NO_STRUCTURE. Do not guess from screenshots.
Persistent overpaint and arbitrary representation graph rewriting are not yet a general apply_scene guarantee. If durable representation, opacity, labels, tooltips, primitives, volumes, animations, or coordinate transforms are required, prefer a full load_mvs payload or implement a new allowlisted BuretteSceneActions handler first.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingplugins/burette-agent/skills/molstar-scene/SKILL.md
Popularity
- Repository stars
- 69
- Repository forks
- 5
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/sergeinikolenko/burette/molstar-scene)