Stellarium
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.From its SKILL.md
npx -y skills add suchakr/agentic-skills --skill stellariumAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
7.4 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it
Stellarium
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.
When To Use
Use this skill for tasks such as:
- changing time, location, field of view, or viewing direction
- toggling overlays such as atmosphere, landscape, grids, stars, horizon, direction markers, zodiac, lunar stations, and constellation or asterism lines
- inspecting or mutating Stellarium properties and actions
- running direct Stellarium script snippets
- running local
.sscscript files - turning an exploratory live session into a reusable
.sscartifact - probing whether local audio or video playback is supported in the current Stellarium build
Control Strategy
Use 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
.sscwhen 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 Control
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.
- Direction:
core.moveToAltAzi(alt, azi, duration)where alt is degrees above horizon and azi is compass bearing (0=N, 90=E, 180=S, 270=W). Useduration=0for instant moves. - FOV:
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);
Horizon framing
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.
- FOV 60° → altitude ~20°
- FOV 90° → altitude ~30°
- FOV 40° → altitude ~13°
Time
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.
Readiness Check
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.
Core Helpers
This skill may use local helper scripts when available.
-
scripts/stelrc.pyGeneric wrapper for Remote Control HTTP, property and action inspection, file-based script execution, and common alias commands. -
scripts/inspect_remote_api.pySnapshot 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.
stelrc.py quick reference
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 quick reference
inspect_remote_api.py [--base-url URL] [--output PATH]
Saves a full inventory of properties, actions, and endpoints to JSON.
Expected Workflow
For most tasks:
- Inspect the current Stellarium state if needed.
- Apply a minimal change.
- Re-read state when a control is known to be unreliable.
- If a property does not stick, try the script path.
- If the sequence becomes useful, encode it as
.ssc.
Failure Handling
Use these fallbacks deliberately:
- If a property write does not stick, retry with direct script calls.
- If a named location lookup fails, use coordinates.
- If media support is uncertain, run a probe script first.
- If a feature is absent from both properties and actions, treat it as possibly unavailable from Remote Control and avoid bluffing.
Media
Some Stellarium builds expose media functionality only partially through scripting.
- Test audio or video playback empirically on the running build.
- Prefer a probe script before building higher-level media workflows.
- Do not assume all documented engine classes are exposed identically in the script environment.
See:
references/media.md
.ssc Artifacts
Use .ssc as the preferred portable artifact for reusable Stellarium sequences.
- exploratory live control is good for discovery
.sscis better for sharing, replay, and repeatability
See:
references/ssc-patterns.md
API Discovery
When the supported surface is unclear for the current build:
- inspect the live Remote Control API
- identify writable properties and actions
- test suspicious features with tiny probes
See:
references/api-discovery.md
Cross-skill Coordination
When 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.
Scope
This skill is about Stellarium control and scripting.
It should not assume:
- a specific presentation repository
- named local Stellarium demos
- archaeoastronomy-specific scenarios
- local media files unless the user points to them
Those can be layered on as optional examples, but they are not part of the core skill contract.
What ships with it: 8 files
36.3 KB alongside SKILL.md, 2 of them executable
references/
- api-discovery.md827 B
- media.md935 B
- ssc-patterns.md717 B
scripts/
- audio_probe.ssc1.1 KB
- inspect_remote_api.pyruns5.6 KB
- stelrc.pyruns25.1 KB
- video_audio_probe.ssc1.4 KB
- zenith_screen_probe.ssc645 B