Interpret environmental sensor readings and sustained changes for room comfort and air quality.

Apache-2.0Auto-check passed

Install Environment

skills CLI
$ npx skills add autonomous-ai/Physical-AI-Operating-System --skill environment -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install autonomous-ai/Physical-AI-Operating-System environment --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/autonomous-ai/Physical-AI-Operating-System.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/environment .claude/skills/environment && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
environment
GitHub stars
381
Token cost
~4.9k tokens
SKILL.md length
2,696 words
Files
3
Skills in repo
28
Repo updated
First seen
Licence
Apache-2.0

At a glance

Interpret environmental sensor readings and sustained changes for room comfort and air quality.

  • Works in 4 steps: Direct room-status question,… → Initial report (reason: "initial"): use… → Automatic changed or sustained-condition… → …
  • [environment:initial] greeting context
  • SKILL.md covers Scope and data, Event contract, Discomfort and ventilation… and Choose the response, plus 3 more sections
  • Calls curl

What it does

Environment is an agent skill from autonomous-ai/Physical-AI-Operating-System. Interpret environmental sensor readings and sustained changes for room comfort and air quality. Use for [environment:initial] greeting context, [environment:update] events, questions about room temperature, humidity, measured CO2 or air quality, checking changes after ventilation or air cleaning, and room-feeling reports such as hot, cold, stuffy, dry or smoky, including discomfort follow-ups with the capability declared. Requires the environment capability. Link to wellbeing for considerate proactive advice; do…

Its SKILL.md is about 4.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `reference/room-comfort.md` and `skill.json`).

The repository describes itself as: The open-source operating system for physical AI. The licence is Apache-2.0.

When your agent uses it

  • [environment:initial] greeting context
  • [environment:update] events
  • Questions about room temperature
  • Checking changes after ventilation

Example prompts

  • “/environment”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Direct room-status question, room-feeling report or follow-up: read reference/room-comfort.md and apply its stricter output contract…
  2. Initial report (reason: "initial"): use the supplied snapshot to add at most one short plain-language factual observation supported by the…
  3. Automatic changed or sustained-condition [environment:update]: use the supplied changes and/or comfort facts. A significant change means…
  4. After an action: compare a fresh value with an actual earlier, timestamped value in the event or conversation. State the observed…

What it can do on your machine

Read from SKILL.md and the folder at commit f1b9ebe. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • hse.gov.uk

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Environment loads about 4.9k tokens when it runs. Until then it costs about 152 tokens; SKILL.md has 2,696 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~152
When it runs · the whole SKILL.md, loaded when a task matches
~4.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from autonomous-ai/Physical-AI-Operating-System at commit f1b9ebe, republished under its Apache-2.0 licence (© autonomous-ai). 2,696 words, ~4,920 tokens.

Download SKILL.mdSave it as .claude/skills/environment/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
environment
description
Interpret environmental sensor readings and sustained changes for room comfort and air quality. Use for [environment:initial] greeting context, [environment:update] events, questions about room temperature, humidity, measured CO2 or air quality, checking changes after ventilation or air cleaning, and room-feeling reports such as hot, cold, stuffy, dry or smoky, including discomfort follow-ups with the capability declared. Requires the environment capability. Link to wellbeing for considerate proactive advice; do not diagnose health conditions or infer CO2 or oxygen from other measurements.

Environment

Scope and data

Work from the device's declared environment capability and the measurements actually present. Do not require a camera, microphone, emotion marker, or a particular sensor model. If the capability is absent, skip environmental checks; ordinary room questions and room-feeling reports use the fixed unavailable reply in reference/room-comfort.md. Personal symptoms without a room question retain wellbeing support without sensor-error commentary. Do not enable hardware or edit its declaration.

For a direct room question or room-feeling report (even without a question), a requested current comparison, or a non-urgent wellbeing concern when the capability is declared, read the OS environment status API once (reuse a supplied current status snapshot when available):

bash
curl --fail --silent --show-error --max-time 5 http://127.0.0.1:5000/api/environment/status

This read-only route admits local device callers and checks the environment capability. It returns the OS envelope {"status":1,"data":{...HAL snapshot...},"message":null}; inspect data. A non-2xx response or status:0 means unavailable. Do not bypass a denial through HAL or fetch credentials for the browser's authenticated hardware proxy.

Use the existing snapshot in an automatic event unless it is stale or the user explicitly requests a fresh check. Do not run a polling loop, start a cron job, invent a history endpoint, or promise a timed follow-up: OS owns polling, thresholds, sustained-change detection and cooldowns.

A usable snapshot has enabled: true, state: "ready", stale: false, and at least one fresh numeric measurement in sample. The shared status sample always contains nine nullable metric keys; an object of null values is not usable data. Check age_s and sample.timestamp before describing it as current. Disabled, starting, stopped, error, missing or stale data is unavailable, not zero pollution. Say so briefly on an explicit room-data question; stay silent on an unusable automatic event. For a personal wellbeing concern without a room question, silently skip unavailable environmental data and continue support without sensor-error commentary. Ordinary room questions/reports use the unavailable reply in reference/room-comfort.md. Individual null or absent measurements are unknown: retain the other valid readings. For a multi-component snapshot, sources[metric] identifies its entry in components; check that component's state, age and stale flag, plus metric_timestamps[metric]. The aggregate timestamp may belong to another sensor and does not establish freshness for every field. One failed component does not invalidate another healthy component.

Sample fieldMeaning
pm1_0_ug_m3, pm2_5_ug_m3, pm4_0_ug_m3, pm10_ug_m3Particle mass concentrations, µg/m³
temperature_cTemperature near the installed sensor, °C
humidity_pctRelative humidity, %
voc_index, nox_indexRelative gas indices, not gas concentrations
co2_ppmMeasured carbon dioxide concentration, ppm, when a CO₂ component is available

Interpret the available metric, independently of the component model. Unsupported metrics are null, just like currently unavailable readings; use component state and sources for diagnostics, not the null alone. A healthy component without VOC/NOx is normal and does not require waiting for those indices or reporting a fault. Missing CO₂ does not prevent using valid PM, temperature or humidity. CO₂ is distinct from CO and O₂; the supported measurements do not include those gases. Use CO₂ only when its own reading is fresh, never estimate it from VOC/NOx. Do not infer oxygen shortage, impaired cognition, a gas leak, a fire or a medical condition from environmental readings.

VOC Index adapts to recent history (roughly 24 hours, baseline 100); NOx Index uses a different baseline (1). Neither baseline certifies safe air. Do not identify a chemical, smell or pollution source from either index. Describe an increase relative to previous readings. Do not convert indices into ppm or apply concentration guidelines to them. Instantaneous PM readings cannot establish compliance with 24-hour or annual WHO exposure guidelines. Sensor temperature may be affected by the enclosure and nearby electronics; do not present it as body temperature or a guaranteed room-wide measurement.

Event contract

[environment:update] is followed by an OS-generated JSON object containing observed_at (Unix seconds), sample (measurements and timestamp), changes (keyed by metric, each with previous, previous_at, current, current_at, delta and optional source), sustained_s, and per-metric sources / metric_timestamps. Older events may omit the added provenance fields. Use the numeric change facts rather than guessing a trend from one raw sample. Do not assume the event has the full status envelope or all metrics. A delayed event describes its observation time, not necessarily the current room; obtain current status before giving time-sensitive advice. previous is the detector's previous acknowledged baseline and previous_at is its Unix timestamp; current_at is that metric's observation time; observed_at is the newest valid reading in the snapshot and may belong to a different component. For older single-sensor events without current_at, use observed_at. current is the latest sample, not a rolling average. sustained_s describes consecutive qualifying readings, not a health exposure assessment. Missing context does not justify invented thresholds, durations, health classifications or user activity.

A normal update can also contain a comfort map for sustained room conditions. Each metric carries state (high, low or recovered), previous_state, current, current_at, threshold, sustained_s and optional source. An event with changes: {} and nonempty comfort is a valid sustained-condition event, not an initial report or a missing trend. Its per-metric duration is evidence of a persistent condition, not an exposure average. Use its measured state and the room-comfort reference to choose one useful, short observation and at most one action; no numbers, sensor names or spoken tags by default. Do not diagnose symptoms, claim WHO/AQI exceedance, or equate recovered with safe air or the person's recovery. A recovery acknowledgment is useful mainly after a relevant concern/action; otherwise silence may be appropriate. The OS owns persistence, hysteresis and repeat suppression; do not add timers.

An initial report has reason: "initial", changes: {}, and only the metrics that have passed OS freshness and warm-up checks. It is either embedded in the startup greeting under [environment:initial], or sent after the greeting as [environment:update]. It is a first observation, not a significant-change alert: empty changes is expected. Other metrics may still be warming up.

Discomfort and ventilation context

For ordinary room-feeling reports or room questions, first apply reference/room-comfort.md, including when the user says it is hot, cold, stuffy, dry or smoky. Actual breathing difficulty or reported smoke/exposure follows the urgent guidance in wellbeing's discomfort reference; do not wait for sensors or dismiss symptoms based on normal values.

When the user says they feel tired, headachy, dizzy, stuffy or unable to focus, consult skills/wellbeing/reference/discomfort.md for the response. Apply it here without handing the turn back through the wellbeing activity router. Do not inspect sensors before responding to an already apparent urgent symptom or reported exposure. Otherwise, when the capability is declared, you MUST use a supplied current status snapshot or one bounded status read before completing the reply. The check is required; the room-comfort branch controls its short reply. For personal symptoms without a room question, a failed read, all-null sample, stale data or absent metric means omit that environmental explanation, not invent a substitute.

Separate three facts: how the user says they feel, what the sensor measured, and which action might improve comfort. An increase is not itself a high or harmful concentration. Two event endpoints or sustained_s do not establish a long-term concentration average. For context only, HSE workplace guidance flags CO₂ consistently above 1500 ppm in occupied rooms as a reason to improve ventilation. This is not a symptom-causation threshold, universal home safety boundary, or a new OS alarm rule; do not claim consistency from one sample. See HSE: using CO₂ monitors (reviewed 2026-09-14). Treat a lone value as a current observation, not a trend, and use available context before suggesting action. Readings can be affected by placement, nearby breath and calibration; do not label the room safe from a low CO₂ value or diagnose poisoning from a high one.

For rising measured CO₂ with a useful ventilation opportunity, suggest one practical option: an outside-facing opening when outdoor air/weather allow, a fresh-air ventilation setting, or moving to a more comfortable ventilated space. An interior door alone may not bring in outdoor air. Do not invent outdoor air quality from indoor PM or fetch unrelated services to manufacture certainty. If outdoor smoke/pollution or unsafe access makes opening a window unsuitable, choose another option. Recirculation/HEPA is not CO₂ removal. HSE: improving ventilation.

Show full SKILL.md (1,361 more words)Show less

Choose the response

For ordinary direct room questions/reports and their follow-ups, the room-comfort reference below takes precedence over the general phrasing rules in this section (including the allowance for useful numbers). Do not speak a preamble about checking sensors; complete the bounded check before the user-facing reply.

Explain meaning before numbers. Outside the stricter direct room-comfort branch, for greetings, automatic updates and discomfort support, lead with one plain-language observation about what the fresh evidence means for comfort or a practical decision. Do not default to reciting a sensor inventory, units or gas indices. Omit numbers by default; include relevant values when the user asks for readings or when a value materially helps explain a decision, and explain its meaning alongside it. Use at most one practical suggestion when warranted; do not manufacture an action just to fill the reply.

Plain language must preserve the same evidence limits as numeric reporting. A measured increase supports “particles have increased”, not “the air is bad”. Use only the conversational comfort bands in reference/room-comfort.md; do not invent other thresholds or label the whole room healthy, safe, clean or well ventilated from partial readings. With temperature alone, describe only temperature; it cannot answer whether the air is clean. If the evidence does not support a useful interpretation, briefly explain that limit on a direct room question rather than filling the answer with numbers. For automatic updates or startup context, keep the silence/omission rules below. Use the measurement and ventilation rules above for any interpretation; hiding the number does not relax them.

  1. Direct room-status question, room-feeling report or follow-up: read reference/room-comfort.md and apply its stricter output contract: check relevant fresh data first, then one short casual sentence, no numbers, units, sensor names or tags. It also defines the exact unavailable reply and explicit-number exception. Do not turn the answer into a multi-condition report or advice list. A single snapshot cannot establish a trend or that the whole room is safe.
  2. Initial report (reason: "initial"): use the supplied snapshot to add at most one short plain-language factual observation supported by the supplied readings; omit numbers by default. In [environment:initial] greeting context, preserve the normal greeting and do not create another turn or fetch/wait for sensor data. Without usable greeting context, just greet normally. For a separate initial update, skip a second greeting; a simple observation can be useful even without a change or advice. If delayed data is no longer current, omit it rather than refresh or poll for this startup report. Respect quiet/sleep preferences with NO_REPLY for a separate update; in a greeting omit only the environmental sentence. Do not claim improvement, a trend, safety, or health effects from this first snapshot. OS owns one-time delivery and retries; do not schedule another report for missing or warming metrics.
  3. Automatic changed or sustained-condition [environment:update]: use the supplied changes and/or comfort facts. A significant change means OS's configurable change policy fired; it is not automatically a harmful level. Consider whether the change merits action using the environmental-care section of skills/wellbeing/SKILL.md. If there is no useful new advice, output exactly NO_REPLY.
  4. After an action: compare a fresh value with an actual earlier, timestamped value in the event or conversation. State the observed direction without claiming causation: “Particles are lower than before.” If there is no comparison point, say that a change cannot yet be established. A later significant-change event may support an update, but no event is a guarantee of scheduled follow-up.

Do not route environmental updates to sensing's camera/presence reaction matrix or guard alerts, even while guard mode is active. No mandatory emotion, servo, light, camera or speech action. An environmental event alone never establishes a person’s presence or authorizes a greeting; startup context only supplements an already requested system greeting. Process only this event; it does not authorize resuming an unrelated task.

Useful, proportionate advice

  • Increased particles: suggest checking an identifiable source or using an available particle filter. Do not assume cooking, smoking, occupancy or a fire without supporting context.
  • Measured CO₂ increase: explain the supported change in plain language, with a value only when useful or requested; suggest checking ventilation when outside conditions allow. A recirculating fan or HEPA particle filter does not lower CO₂ by itself. The configured CO₂ delta is a change trigger, not a health limit; do not claim a cognitive effect or diagnose symptoms from a reading.
  • Gas-index changes: suggest checking recent activities or sources; ventilation may help when outdoor conditions allow. A HEPA particle filter does not remove every gas.
  • Temperature or humidity: offer a modest comfort adjustment when supported by readings and user preferences. Do not diagnose dehydration, illness, sleep quality or productivity from the sensor.
  • Do not blindly recommend opening a window when outside pollution or weather is unknown. Phrase that condition explicitly when relevant.
  • Recommend actions; operate a fan, purifier, humidifier or HVAC only through an available integration under the user's authorization. Do not invent actuator APIs or promise devices that are not connected.
  • Respect requests to stop reminders. Do not change detection policy or disable the sensor merely because a reading is inconvenient.

Coordination with wellbeing

Read skills/wellbeing/SKILL.md's Environmental care section for proactive phrasing and timing. Environment owns measurement interpretation; wellbeing contributes the user's preferences and available activity context. This is a one-way consultation of that section, not a handoff back through its activity router; do not bounce between the two skills. No activity logs, camera observations, identity or hydration/break counters are required to answer a room question. Do not fabricate a wellbeing context block or log an unsupported nudge_environment action.

When speaking proactively, offer one useful observation and at most one action in the user's language. Keep analysis and skill names out of the spoken reply. Silence is the literal NO_REPLY, without an explanation or hardware markers.

Example decisions

InputResponse direction
“How is the room?”; temperature valid, VOC nullUse the room-comfort reference for a short supported temperature observation; missing VOC is not a fault. Temperature alone cannot answer a question about air quality.
“How is the air?”; fresh particle increase versus an earlier readingApply the room-comfort bands; only say “more than before” if the timestamped comparison supports it, and never call the air safe.
“What is the CO₂ reading?”; fresh measured CO₂Give the value and ppm, with a brief supported explanation of its ventilation relevance; no symptom-cause or safety claim.
Cold boot; greeting has no environmental contextGreet normally without waiting, checking the API, or claiming missing readings are zero.
Warm HAL; greeting includes initial temperature and CO₂Add at most one factual sentence using supplied fresh readings; no second notification.
First update has reason: "initial", changes: {}, temperature onlyBriefly describe supported temperature comfort when appropriate, without defaulting to a numeric readout; do not require a delta or wait for VOC/NOx.
Delayed initial update; readings are stale or unavailableOmit the environmental report (NO_REPLY for a separate update); do not fetch or promise a retry.
“I feel tired and have a headache.”Use wellbeing’s discomfort reference. With declared environment capability, use a current snapshot or read status once; optionally add one relevant fresh observation. Without capability or usable data, continue ordinary support. Never assign a cause from sensor data.
CO₂ component stale; PM freshReport PM if useful; CO₂ is unavailable. Do not reuse the aggregate timestamp to call CO₂ current.
CO₂ rises after a particle purifier startsExplain that particle filtration does not address CO₂; consider ventilation conditionally, without assuming occupancy or health effects.
VOC Index returns to 100Describe the relative change if relevant; never say pollution has cleared or air is safe.
Automatic change while context says the user is asleep or wants quietNO_REPLY; do not wake them, trigger guard mode or emit an emotion marker.
“I turned the purifier on; is it helping?”Read current status and compare with a real earlier value if available. Without one, explain that improvement cannot yet be established; add a supported current observation only if useful, not a default numeric readout. Do not promise a timed recheck.
Delayed event or stale statusDo not describe old measurements as current. A failed fresh check means current conditions are unknown.

© autonomous-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in skills/environment of autonomous-ai/Physical-AI-Operating-System.

  • SKILL.md
  • reference/room-comfort.md
  • skill.json

Open the folder on GitHubat commit f1b9ebe

Compare with similar skills

Environment next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Environment compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Environment this skillautonomous-ai/Physical-AI-Operating-System381—~4.9kAutomated safety check: PassApache-2.0
Read The Roommohitagw15856/pm-claude-skills1.4k—~1.2kAutomated safety check: PassMIT
Read Sessionasgeirtj/system_prompts_leaks69k—~2.4kAutomated safety check: PassCC0-1.0
Read All Adrssickn33/agentic-awesome-skills47k1 repos~323Automated safety check: PassMIT
TransformerLens InterpretabilityOrchestra-Research/AI-Research-SKILLs13k4 repos~3kAutomated safety check: PassMIT
Google Cloud Waf Sustainabilitygoogle/skills21k—~3.4kAutomated safety check: PassApache-2.0

Similar skills

  • Read The Room

    mohitagw15856/pm-claude-skills

    Figure out the real social dynamics of a situation — the unspoken mood, who holds influence, what's actually going on beneath the surface — so you respond to what's real, not just what's said.

    1.4k GitHub stars~1.2k tokensUpdated yesterday
    Auto-check passed
  • Read Session

    asgeirtj/system_prompts_leaks

    Locate and read Muse Code's OWN session logs — the current session or a prior one.

    69k GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Read All Adrs

    sickn33/agentic-awesome-skills

    Read every ADR in a project before summarizing architectural context or decisions.

    47k GitHub starsUsed in 1 repo~323 tokens
    DevelopmentAuto-check passed
  • TransformerLens Interpretability

    Orchestra-Research/AI-Research-SKILLs

    Guides mechanistic interpretability work with TransformerLens: loading models, caching activations, using HookPoints, activation patching and attention-pattern analysis.

    13k GitHub starsUsed in 4 repos~3k tokens
    AI & LLM EngineeringAuto-check passed
  • Official

    Provides recommendations for environmental sustainability, carbon footprint reduction, and energy efficiency based on the Sustainability pillar of the Google Cloud Well-Architected Framework (WAF).

    21k GitHub stars~3.4k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Bench Read

    github/awesome-copilot

    Official

    Read artifacts from the shared bench — the workspace where desks leave findings, verdicts, and work products for each other and the operator.

    40k GitHub stars~747 tokensUpdated today
    Auto-check passed

More from autonomous-ai/Physical-AI-Operating-System

All 28 skills in this repo
  • Agent Management

    autonomous-ai/Physical-AI-Operating-System

    Legacy Autonomous Buddy control for explicitly requested Buddy coding sessions.

    381 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Claude Code Buddy

    autonomous-ai/Physical-AI-Operating-System

    Push Claude Code activity to the user's device (e.g. An agent skill from autonomous-ai/Physical-AI-Operating-System.

    381 GitHub stars~2.4k tokensUpdated today
    Auto-check: notes
  • Computer Use

    autonomous-ai/Physical-AI-Operating-System

    Operate apps/websites on the paired Mac via Buddy: Calendar, Notes, forms, screenshots, files.

    381 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Connectors

    autonomous-ai/Physical-AI-Operating-System

    Discover and use linked third-party services (Gmail, Google Calendar, Google Drive, Notion, Figma, Asana, Linear, GitHub, Ahrefs, Facebook Fan Page and others).

    381 GitHub stars~10k tokensUpdated today
    Auto-check: notes
  • Harness Use

    autonomous-ai/Physical-AI-Operating-System

    Delegate digital work to agents on the computer paired through Harness; discover Store packages and prepare an agent when needed.

    381 GitHub stars~8k tokensUpdated today
    Auto-check passed
  • Audio

    autonomous-ai/Physical-AI-Operating-System

    Low-level speaker and microphone hardware control — adjust volume, play test tones, record raw audio.

    381 GitHub stars~1k tokensUpdated today
    Auto-check passed

Questions about Environment

What does Environment do?

Interpret environmental sensor readings and sustained changes for room comfort and air quality. Environment is an agent skill from autonomous-ai/Physical-AI-Operating-System. Interpret environmental sensor readings and sustained changes for room comfort and air quality.

When should I use Environment?

Environment fits situations like: [environment:initial] greeting context; [environment:update] events; questions about room temperature; checking changes after ventilation.

How do I install Environment in Claude Code?

Run `npx skills add autonomous-ai/Physical-AI-Operating-System --skill environment -a claude-code`. Or copy the skill folder (skills/environment in autonomous-ai/Physical-AI-Operating-System) into .claude/skills/environment in your project. Claude Code loads it when a task matches its description.

How do I install Environment in Codex?

Run `npx skills add autonomous-ai/Physical-AI-Operating-System --skill environment -a codex`. Or copy the skill folder (skills/environment in autonomous-ai/Physical-AI-Operating-System) into .agents/skills/environment in your project. Codex loads it when a task matches its description.

Can I use Environment in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add autonomous-ai/Physical-AI-Operating-System --skill environment -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/environment, .gemini/skills/environment, .github/skills/environment and .opencode/skills/environment in your project.

What does Environment need to run?

Going by SKILL.md and its folder, Environment needs the command-line tools its instructions call (curl).

Does Environment access the network?

SKILL.md names 1 domain. As links in the text: hse.gov.uk. This is read from the text; nothing was executed.

Is Environment safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Environment use?

Environment is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Environment use?

About 4.9k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Environment?

Skills that share tags, products or a category with Environment: Read The Room (mohitagw15856/pm-claude-skills, 1.4k stars), Read Session (asgeirtj/system_prompts_leaks, 69k stars), Read All Adrs (sickn33/agentic-awesome-skills, 47k stars) and TransformerLens Interpretability (Orchestra-Research/AI-Research-SKILLs, 13k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Environment?

autonomous-ai (a GitHub organization) maintains it in autonomous-ai/Physical-AI-Operating-System, which has 381 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 8, 2026.

Source: autonomous-ai/Physical-AI-Operating-System on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.