codex-desktop is an unofficial, community-maintained Linux distribution of OpenAI’s ChatGPT desktop application, packaged for several Linux formats and desktop environments. Linux users install it to access Chat, Work, and Codex through a desktop app built from the signed upstream Linux payload. Its catalogue skills, agents, instructions, and MCP integration extend workflows around the application.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add ilysenko/codex-desktop-linux --skill record-and-replaygit clone --depth 1 https://github.com/ilysenko/codex-desktop-linuxWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ilysenko/codex-desktop-linux/record-and-replay)<a href="https://agentmods.dev/skills/ilysenko/codex-desktop-linux/record-and-replay"><img src="https://agentmods.dev/badge/skills/ilysenko/codex-desktop-linux/record-and-replay/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ilysenko/codex-desktop-linux/record-and-replay"><img src="https://agentmods.dev/badge/skills/ilysenko/codex-desktop-linux/record-and-replay.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00038 | $0.00942 |
| Opus 5 | $0.00019 | $0.00471 |
| Sonnet 5 | $0.00008 | $0.00188 |
| Haiku 4.5 | $0.00004 | $0.00094 |
Grade A, and why
record-and-replay scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
Copies of this mod
1 near-identical copy found in the catalogue:
- record-and-replay — 100% identical, 0 lines differ
How it starts
The opening of the file, as written. The whole thing — 75 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Record & Replay
Record the user's Linux workflow, inspect the event stream, and turn the repeatable intent into a reusable Codex skill. This is the same bundled Record & Replay product shell backed by a Linux-native event-stream server, not a raw pointer or keyboard macro recorder.
The bundled plugin launches ./bin/SkyLinuxComputerUseClient event-stream mcp.
That helper is the Linux equivalent of the macOS Sky Computer Use event-stream
client, implemented by the Rust codex-record-replay-linux backend.
Flow
- Call
doctorwhen readiness is uncertain. If Computer Use cannot observe the desktop, explain the blocker and offer the diagnostics/setup path before recording. - Call
skysight_startwhen recent activity context should keep accumulating before or during the demo, orskysight_snapshotwhen you only need a point-in-time local activity summary. Useskysight_pauseandskysight_resumeto stop or continue Chronicle-compatible resources without losing the active session, and useskysight_statusto find the resource paths and local OCR availability. Respectskysight_list_exclusionsand update exclusions before recording sensitive apps or domains. Treat OCR as local screen evidence metadata; do not copy raw OCR text into durable skill drafts unless it is necessary for the reusable workflow and safe to retain. - Call
event_stream_startwith a shortgoalwhen matching the upstream Record & Replay flow, orstartwhen you need Linux-specific options. The Linux app should show the active Record & Replay recording HUD while the shared runtime status is active. Native Linux audio evidence is opt-in and requires bothinclude_audio: trueand an affirmativeCODEX_RECORD_REPLAY_AUDIOsetting; normal workflow recording should rely on transcriptspeech_contextinstead. Tell the user that recording is active, that they should perform the workflow normally, and that they can saydonewhen finished. - During the demonstration, call
desktop_snapshotat meaningful app/window changes, such as after the user opens Chrome or arrives on a target site. Callmarkonly for meaningful intent boundaries that will help the future skill, such as "source page opened" or "finished selecting rows". - When transcript text is explicitly available during the recording, call
speech_contextwith the transcript. Treat the speech as user intent/context, not as audio to replay or Chronicle-compatible resources. Do not hijack the composer dictation UI as the recording architecture. - For browser workflows, call
browser_tracewhen browser/CDP trace evidence is available. Treat the trace as semantic evidence for drafting the skill, not as a click/coordinate replay script. - Use
event_stream_statusorstatusif you need to confirm which bundle is active. When the user says they are done, asks to stop, or the HUD sends "I'm done recording.", callevent_stream_stoporstopif the bundle is still active. - If the user discards the recording or the HUD cancel control is used, call
event_stream_cancelorcancelwithdiscarded: trueand treat the bundle as canceled evidence only. - Call
validate_bundle, thendraft_skill_prompt. - Use the draft prompt and the bundle evidence to create or update a normal
SKILL.md. Prefer stable app names, URLs, semantic UI labels, and data shape descriptions over literal coordinates. - Call
inspect_skillbefore import. Callimport_skillonly after the user approves the generated skill.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 75 lines · 38 tokens per session scan A 40c1c8091090
record-and-replay is a skill published in the GitHub repository ilysenko/codex-desktop-linux (3,779 stars, last pushed yesterday), licensed MIT. It adds 38 tokens to every session and 942 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
browser-qa
A browser-based quality check for deployed web pages and user flows. It uses browser automation to test rendering, navigation, forms, interactions, responsive behaviour, and accessibility-related issues.
alibaba-supplier-outreach
Codex-native supplier sourcing and outreach workflow for Alibaba using LaunchFast research. Use when the user wants supplier shortlists, outreach messages, reply triage, or negotiation support. Requires supplierresearch. Browser automation is optional but useful when the user wants Codex to interact with Alibaba…
separateweb-capture
Capture a URL into a full-page screenshot, cropped UI item PNGs, and a JSON manifest. Use when the user says separateweb capture , asks to capture a website, or wants UI extraction assets without running the SeparateWeb web app.
memstack-development-webapp-testing
Use when the user says 'write browser tests', 'test this page', 'playwright test', 'e2e test', 'end to end test', 'browser test', 'test the UI', or needs Playwright-based browser testing for a web application. Do NOT use for unit tests, API tests, or non-browser testing.
fetch-url-as-markdown
Fetch a web page (URL) and return clean Markdown via local trafilatura, with Exa MCP as a fallback for JS-rendered or anti-bot pages. Use when the user asks to read, fetch, scrape, summarize, or quote a URL — prefer this over the built-in WebFetch tool. Don't use for binary files (PDFs, images, archives) or for…
data-scraper
Use when data lives on a website with no usable API — listings, prices, public records — and the scrape must stay legal and not get blocked: legal gate, extraction path, durable selectors, pacing, resilience. NOT parsing bytes you already hold into fields (that is structured-extraction), NOT a documented API or key…