一键导入
molstar-scene
Use when operating an active Mol* scene through allowlisted Burrete actions and typed observe/action results.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when operating an active Mol* scene through allowlisted Burrete actions and typed observe/action results.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Preview supported molecular attachments or an explicit public PDB ID in Burrete's interactive viewer, or use the bounded hosted Ketcher editor for transient chemical sketches.
Use when an external agent must open, observe, control, or render into a Burrete molecular workspace without managing transport details.
Primary router for Burrete. Use when the plugin is at-mentioned or for molecular workspace work: opening structures, operating Mol* or Ketcher, reviewing SDF/property collections, trajectories, workflow result bundles, molecular reports, or Browser/Computer visual QA.
Use when opening molecular artifacts in Burrete Browser preview or desktop app sessions and establishing an observable workspace.
Use when visually verifying Burrete Browser preview or desktop app state without replacing typed observe/action contracts.
Use when molecular notes, property tables, charts, workflow reports, or provenance should be rendered beside an active Burrete workspace.
| name | molstar-scene |
| description | Use when operating an active Mol* scene through allowlisted Burrete actions and typed observe/action results. |
Use this workflow for scene operations:
Use one typed action surface:
bun scripts/burrete-agent.mjs act --session-dir <dir> '{"type":"hide_waters"}' --wait-ms 12000
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.
Use MolViewSpec as the mental model for agent scene requests, but keep two execution paths separate:
apply_scene edits the currently active Burrete/Mol* viewer by relaying
allowlisted commands. Use it for highlight, select, focus, contact
neighborhood, water/surface/theme toggles, screenshot, and reset camera.load_mvs loads a complete MolViewSpec state (mvsj JSON or mvsx archive)
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.Map natural language to these MVS concepts:
cartoon,
ball_and_stick, line, spacefill, surface.target, position, up).apply_scene.Selectors follow MolViewSpec vocabulary. Prefer these static selectors when they match the request:
"all" | "polymer" | "protein" | "nucleic" | "branched" | "ligand" | "ion" | "water"
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:
{"label_asym_id":"A"}
{"label_asym_id":"A","beg_label_seq_id":45,"end_label_seq_id":58}
{"auth_asym_id":"A","beg_auth_seq_id":100,"end_auth_seq_id":112}
{"label_comp_id":"PYZ"}
{"comp_id":"PYZ"}
{"label_asym_id":"A","label_seq_id":377,"label_atom_id":"CA"}
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:
bun scripts/burrete-agent.mjs act --session-dir <dir> '{
"type": "apply_scene",
"components": [
{"selector": "protein", "label": "Protein", "highlight": true, "color": "#4f8cff"},
{"selector": {"chain": "A", "range": [45, 58]}, "label": "Active loop", "select": true, "focus": true}
]
}' --wait-ms 12000
Use these request patterns:
# Highlight the whole protein.
bun scripts/burrete-agent.mjs act --session-dir <dir> '{
"type": "apply_scene",
"components": [
{"selector": "protein", "label": "Protein", "highlight": true, "color": "#4f8cff"}
]
}' --wait-ms 12000
# Select and focus an active loop by residue range.
bun scripts/burrete-agent.mjs act --session-dir <dir> '{
"type": "apply_scene",
"components": [
{"selector": {"label_asym_id": "A", "beg_label_seq_id": 45, "end_label_seq_id": 58}, "label": "Active loop", "select": true, "focus": true}
]
}' --wait-ms 12000
# Focus a ligand and ask for a local protein neighborhood/contacts.
bun scripts/burrete-agent.mjs act --session-dir <dir> '{
"type": "focus_ligand",
"selector": {"comp_id": "PYZ"},
"allowAmbiguous": true,
"showNeighborhood": true,
"radiusA": 5
}' --wait-ms 12000
# Add a visible 3D label to the last focused/selected ligand.
bun scripts/burrete-agent.mjs act --session-dir <dir> '{
"type": "label_selection",
"selection": "last",
"text": "PYZ A:378"
}' --wait-ms 12000
# Reset camera after manual movement.
bun scripts/burrete-agent.mjs act --session-dir <dir> '{"type":"reset_camera","args":{"durationMs":250}}' --wait-ms 12000
When a user says "move the scene", decide which meaning applies:
focus_selection, focus_ligand,
reset_camera, or a future explicit camera action. Do not simulate this with
Browser drag events.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:
bun scripts/burrete-agent.mjs act --session-dir <dir> '{
"type": "load_mvs",
"json": {
"metadata": {"title": "Protein and ligand view", "version": "1"},
"root": {"kind": "root", "children": []}
},
"options": {"replaceExisting": true}
}' --wait-ms 12000
Ground new scene language in:
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.jsAfter 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.
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
BurreteSceneActions handler first.