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.
Interpret environmental sensor readings and sustained changes for room comfort and air quality.
$ npx skills add autonomous-ai/Physical-AI-Operating-System --skill environment -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install autonomous-ai/Physical-AI-Operating-System environment --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "environment" agent skill from https://github.com/autonomous-ai/Physical-AI-Operating-System/tree/main/skills/environment into .claude/skills/environment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "environment", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/autonomous-ai/Physical-AI-Operating-System/tree/main/skills/environmentType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add autonomous-ai/Physical-AI-Operating-System --skill environment -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install autonomous-ai/Physical-AI-Operating-System environment --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/autonomous-ai/Physical-AI-Operating-System.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/environment .agents/skills/environment && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "environment" agent skill from https://github.com/autonomous-ai/Physical-AI-Operating-System/tree/main/skills/environment into .agents/skills/environment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "environment", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add autonomous-ai/Physical-AI-Operating-System --skill environment -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install autonomous-ai/Physical-AI-Operating-System environment --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/autonomous-ai/Physical-AI-Operating-System.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/environment .cursor/skills/environment && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "environment" agent skill from https://github.com/autonomous-ai/Physical-AI-Operating-System/tree/main/skills/environment into .cursor/skills/environment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "environment", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/autonomous-ai/Physical-AI-Operating-System.git --path skills/environment--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add autonomous-ai/Physical-AI-Operating-System --skill environment -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install autonomous-ai/Physical-AI-Operating-System environment --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/autonomous-ai/Physical-AI-Operating-System.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/environment .gemini/skills/environment && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "environment" agent skill from https://github.com/autonomous-ai/Physical-AI-Operating-System/tree/main/skills/environment into .gemini/skills/environment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "environment", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install autonomous-ai/Physical-AI-Operating-System environmentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add autonomous-ai/Physical-AI-Operating-System --skill environment -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/autonomous-ai/Physical-AI-Operating-System.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/environment .github/skills/environment && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "environment" agent skill from https://github.com/autonomous-ai/Physical-AI-Operating-System/tree/main/skills/environment into .github/skills/environment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "environment", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add autonomous-ai/Physical-AI-Operating-System --skill environment -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install autonomous-ai/Physical-AI-Operating-System environment --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/autonomous-ai/Physical-AI-Operating-System.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/environment .opencode/skills/environment && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "environment" agent skill from https://github.com/autonomous-ai/Physical-AI-Operating-System/tree/main/skills/environment into .opencode/skills/environment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "environment", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
environmentInterpret 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. 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.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f1b9ebe. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
curlFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
hse.gov.ukFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
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.
.claude/skills/environment/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.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):
curl --fail --silent --show-error --max-time 5 http://127.0.0.1:5000/api/environment/statusThis 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 field | Meaning |
|---|---|
pm1_0_ug_m3, pm2_5_ug_m3, pm4_0_ug_m3, pm10_ug_m3 | Particle mass concentrations, µg/m³ |
temperature_c | Temperature near the installed sensor, °C |
humidity_pct | Relative humidity, % |
voc_index, nox_index | Relative gas indices, not gas concentrations |
co2_ppm | Measured 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.
[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.
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.
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.
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.[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.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.
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.
| Input | Response direction |
|---|---|
| “How is the room?”; temperature valid, VOC null | Use 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 reading | Apply 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 context | Greet 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 only | Briefly 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 unavailable | Omit 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 fresh | Report PM if useful; CO₂ is unavailable. Do not reuse the aggregate timestamp to call CO₂ current. |
| CO₂ rises after a particle purifier starts | Explain that particle filtration does not address CO₂; consider ventilation conditionally, without assuming occupancy or health effects. |
| VOC Index returns to 100 | Describe 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 quiet | NO_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 status | Do 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
SKILL.md and 2 other files in skills/environment of autonomous-ai/Physical-AI-Operating-System.
Open the folder on GitHubat commit f1b9ebe
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Environment this skillautonomous-ai/Physical-AI-Operating-System | 381 | — | ~4.9k | Automated safety check: Pass | Apache-2.0 | |
| Read The Roommohitagw15856/pm-claude-skills | 1.4k | — | ~1.2k | Automated safety check: Pass | MIT | |
| Read Sessionasgeirtj/system_prompts_leaks | 69k | — | ~2.4k | Automated safety check: Pass | CC0-1.0 | |
| Read All Adrssickn33/agentic-awesome-skills | 47k | 1 repos | ~323 | Automated safety check: Pass | MIT | |
| TransformerLens InterpretabilityOrchestra-Research/AI-Research-SKILLs | 13k | 4 repos | ~3k | Automated safety check: Pass | MIT | |
| Google Cloud Waf Sustainabilitygoogle/skills | 21k | — | ~3.4k | Automated safety check: Pass | Apache-2.0 |
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.
asgeirtj/system_prompts_leaks
Locate and read Muse Code's OWN session logs — the current session or a prior one.
sickn33/agentic-awesome-skills
Read every ADR in a project before summarizing architectural context or decisions.
Orchestra-Research/AI-Research-SKILLs
Guides mechanistic interpretability work with TransformerLens: loading models, caching activations, using HookPoints, activation patching and attention-pattern analysis.
google/skills
Provides recommendations for environmental sustainability, carbon footprint reduction, and energy efficiency based on the Sustainability pillar of the Google Cloud Well-Architected Framework (WAF).
github/awesome-copilot
Read artifacts from the shared bench — the workspace where desks leave findings, verdicts, and work products for each other and the operator.
autonomous-ai/Physical-AI-Operating-System
Legacy Autonomous Buddy control for explicitly requested Buddy coding sessions.
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.
autonomous-ai/Physical-AI-Operating-System
Operate apps/websites on the paired Mac via Buddy: Calendar, Notes, forms, screenshots, files.
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).
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.
autonomous-ai/Physical-AI-Operating-System
Low-level speaker and microphone hardware control — adjust volume, play test tones, record raw audio.
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.
Environment fits situations like: [environment:initial] greeting context; [environment:update] events; questions about room temperature; checking changes after ventilation.
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.
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.
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.
Going by SKILL.md and its folder, Environment needs the command-line tools its instructions call (curl).
SKILL.md names 1 domain. As links in the text: hse.gov.uk. This is read from the text; nothing was executed.
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.
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.
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.
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.
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.