Use for controlling a running Stellarium instance through Remote Control HTTP and Stellarium scripting: inspect and change scene settings, move the camera, manage overlays and labels, run direct or file-based `.ssc` scripts, and probe optional media playback support.
Use this skill when the user wants Codex to control or script Stellarium.
This skill is intentionally generic. It should work with any running Stellarium instance that has the Remote Control plugin enabled. Do not assume a repo layout, named local scripts, or presentation-specific assets unless the user provides them.
Use this skill for tasks such as:
.ssc script files.ssc artifactUse the lightest control path that fits the task.
Prefer Remote Control HTTP for interactive tweaks. This is best for small live changes: toggles, labels, and state inspection.
Use direct Stellarium script calls when a feature is exposed in scripting but does not behave reliably through generic property writes. Some features may appear writable as properties but only stick when invoked through script methods.
Use .ssc when the sequence should become portable or repeatable.
A stable Stellarium demo, lesson flow, or scene setup should usually end up as a script artifact.
Camera direction and FOV do not stick reliably through HTTP property writes. Use direct script calls as the default path — do not wait for a failure before switching.
core.moveToAltAzi(alt, azi, duration) where alt is degrees above horizon and azi is compass bearing (0=N, 90=E, 180=S, 270=W). Use duration=0 for instant moves.StelMovementMgr.zoomTo(fov, duration) where fov is in degrees.Example (look east, 20° above horizon, 60° FOV):
core.moveToAltAzi(20, 90, 0); StelMovementMgr.zoomTo(60, 0);
When the user wants the horizon visible (sunrise, moonrise, landscape shots), the camera altitude must account for FOV. Half the vertical FOV extends below the aim point — if altitude is too low, the ground fills the screen.
Rule of thumb: set altitude ≈ FOV / 3 to place the horizon in the lower third of the frame.
stelrc.py goto-time accepts UTC, not local time. The agent must manually offset for the location's UTC shift (visible in status output as gmtShift).
For example, Varanasi is UTC+05:53. To set local 06:30, send UTC 00:37.
Before any control sequence, verify Stellarium is reachable:
curl -s http://localhost:8090/api/main/status | python3 -m json.tool
If this fails, Remote Control is not running. Instruct the user to enable it in Stellarium → Configuration → Plugins → Remote Control → enable at startup.
This skill may use local helper scripts when available.
scripts/stelrc.py
Generic wrapper for Remote Control HTTP, property and action inspection, file-based script execution, and common alias commands.
scripts/inspect_remote_api.py
Snapshot and inspect the live API surface from the current Stellarium build.
These helpers are implementation details. The user should not need to think in terms of raw HTTP calls unless debugging.
State inspection:
stelrc.py status
stelrc.py view
Navigation:
stelrc.py goto-time "1000-12-21T00:37:00" [--timerate 200]
stelrc.py goto-direction E [--alt 20]
stelrc.py location show
stelrc.py location search "Varanasi"
stelrc.py location goto --latitude 25.32 --longitude 83.01 [--altitude 80] [--name "Varanasi"]
stelrc.py focus Jupiter [--mode center|zoom|mark]
stelrc.py fov 60
Overlay toggles (on | off | toggle | show):
stelrc.py atmosphere on
stelrc.py constellation-lines toggle
stelrc.py grid equatorial on
Sky culture:
stelrc.py skyculture list
stelrc.py skyculture set indian
Scripting:
stelrc.py script-direct 'core.moveToAltAzi(20, 90, 0);'
stelrc.py run-file path/to/script.ssc
Properties and actions:
stelrc.py property list [query]
stelrc.py property get "StelMovementMgr.autoMoveDuration"
stelrc.py property set "StelMovementMgr.autoMoveDuration" 1.0
stelrc.py action list [query]
stelrc.py action run actionToggleNightMode
Labels:
stelrc.py label-screen "Hello" --x 100 --y 100 [--size 24] [--color "#FFFFFF"]
inspect_remote_api.py [--base-url URL] [--output PATH]
Saves a full inventory of properties, actions, and endpoints to JSON.
For most tasks:
.ssc.Use these fallbacks deliberately:
Some Stellarium builds expose media functionality only partially through scripting.
See:
references/media.md.ssc ArtifactsUse .ssc as the preferred portable artifact for reusable Stellarium sequences.
.ssc is better for sharing, replay, and repeatabilitySee:
references/ssc-patterns.mdWhen the supported surface is unclear for the current build:
See:
references/api-discovery.mdWhen the astronomical scene requires interpreting a Sanskrit source text, coordinate with the sanskrit-tutor skill for verse parsing, compound analysis, or Jyotisha vocabulary clarification before setting the Stellarium scene.
If sanskrit-tutor is not installed, transliterate key terms and note that a full grammatical analysis requires the sanskrit-tutor skill.
This skill is about Stellarium control and scripting.
It should not assume:
Those can be layered on as optional examples, but they are not part of the core skill contract.