#912 by GitHub stars

nexu-io/codex-slides

🎨 Open-source AI slide studio inside Codex: image-native decks, every slide a full visual canvas. ⚡ 10+ high-quality slides in ~4–5 minutes — Fast mode renders every page in parallel. 🔍 Watch the whole chain live: research → outline → style → render → edit → present → export PDF/PPTX. 🖥<U+FE0F> Browser-first · zero API keys · durable projects.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

skills/codex-slides/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

dbc2a5992e93 → dbc2a5992e93

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → dbc2a5992e93

No earlier version was observed for comparison.

Compare on GitHub

skills/codex-slides-browser/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

dbc2a5992e93 → dbc2a5992e93

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → dbc2a5992e93

No earlier version was observed for comparison.

Compare on GitHub

skills/codex-slides-deck/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

dbc2a5992e93 → dbc2a5992e93

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → dbc2a5992e93

No earlier version was observed for comparison.

Compare on GitHub

skills/codex-slides-known-errors/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

dbc2a5992e93 → dbc2a5992e93

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → dbc2a5992e93

No earlier version was observed for comparison.

Compare on GitHub

skills/codex-slides-research/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

dbc2a5992e93 → dbc2a5992e93

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → dbc2a5992e93

No earlier version was observed for comparison.

Compare on GitHub

skills/codex-slides-structured-intake/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

dbc2a5992e93 → dbc2a5992e93

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → dbc2a5992e93

No earlier version was observed for comparison.

Compare on GitHub

skills/codex-slides-verification/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

dbc2a5992e93 → dbc2a5992e93

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → dbc2a5992e93

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit dbc2a5992e937760e9ce8e587e11729f970881cb

972GitHub stars
6stars in 7 days
7skills in this repository
0commits in 30 days

Heat

3.2
  • Star growth, last 7 daysAhead of 75% of tracked repositories
  • Star growth, last 24 hoursAhead of 3% of tracked repositories
  • Rank movement, last 7 daysAhead of 17% of tracked repositories
  • Commits, last 30 daysAhead of 0% of tracked repositories
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekAhead of 0% of tracked repositories

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Aug 2, 2026Nov 5, 2026972

Individual skills in this repository

How it works

codex-slides

When your agent uses it

Create, research, revise, restyle, present, inspect, and export Codex Slides slide decks from Codex, including scenario workflows, project Design Files, and always-on brand design systems. Use when the user asks for a presentation, PPT/PPTX, slide deck, research brief converted into slides, an existing deck edit, a marked-up slide revision, brand/style controls, project files, or to open and operate Codex Slides in the Codex in-editor Browser.

What it loads into context

Frontmatter

105 tokens

Always available to the agent

SKILL.md

2,694 tokens

When the skill is activated

Reference documents

4,414 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Browser-first default
  2. Choose a transport
  3. Build a deck
  4. Operate Design Files
  5. Reuse project templates
  6. Maintain the brand design system
  7. Edit an existing deck
  8. Route to focused workflow skills
  9. Open and verify in Codex Browser
  10. Export only after review
  11. Runtime

Scripts executed separately

  • scripts/codex-slides.mjs
  • scripts/probe.mjs

Files

  • SKILL.mdcore12,010 bytes
  • SKILL.mdcore12,010 bytes
  • SKILL.mdcore12,010 bytes
  • SKILL.mdcore12,010 bytes
  • SKILL.mdcore12,010 bytes
  • SKILL.mdcore12,010 bytes
  • SKILL.mdcore12,010 bytes
  • SKILL.mdcore12,010 bytes
  • SKILL.mdcore12,010 bytes
  • agents/openai.yamlasset304 bytes
  • references/CAPABILITY_MATRIX.mddoc6,989 bytes
  • references/COMMANDS.mddoc10,031 bytes
  • scripts/codex-slides.mjsruns42,957 bytes
  • scripts/probe.mjsruns2,891 bytes
Read SKILL.md

# Codex Slides

Run Codex Slides as an interactive product inside Codex. The live Browser
workspace is the primary experience; MCP and the bundled CLI are transports
for opening the workspace and performing deterministic operations, not a reason
to hide the presentation workflow in a long-running Codex turn.

## Browser-first default

For every new deck request, unless the user explicitly asks for a headless,
unattended, one-call, or CLI-only run:

1. Call `open_codex_slides` / CLI `open` **without** a project id, immediately
   navigate the returned URL in Codex's in-editor Browser, and verify that the
View the complete source on GitHub

Skills included

  • codex-slides
  • codex-slides-browser
  • codex-slides-deck
  • codex-slides-known-errors
  • codex-slides-research
  • codex-slides-structured-intake
  • codex-slides-verification

Repository facts

License
MIT
Created
Jul 10, 2026
Last pushed
Jul 21, 2026
Forks
83
Open issues
4
Project activity
Slowing

Rank over the last 12 weeks

Now #912 · best #626 · down 137 in 30 days

  1. #896 from Oct 29 to Oct 30
  2. #899 from Oct 31 to Nov 1
  3. #906 on Nov 2
  4. #910 from Nov 3 to Nov 4
  5. #913 on Nov 5
  6. #912 since Nov 6
69 earlier periods
  1. #660 on Aug 2
  2. #645 on Aug 7
  3. #641 on Aug 8
  4. #637 on Aug 9
  5. #665 on Aug 10
  6. #669 on Aug 11
  7. #663 on Aug 12
  8. #658 on Aug 13
  9. #655 on Aug 14
  10. #633 on Aug 15
  11. #643 on Aug 16
  12. #654 on Aug 17
  13. #666 on Aug 18
  14. #651 from Aug 19 to Aug 20
  15. #655 on Aug 21
  16. #626 on Aug 22
  17. #678 on Aug 24
  18. #681 on Aug 25
  19. #661 on Aug 26
  20. #674 on Aug 27
  21. #694 on Aug 28
  22. #645 on Aug 29
  23. #643 on Aug 30
  24. #674 on Aug 31
  25. #688 on Sep 1
  26. #672 on Sep 2
  27. #676 on Sep 3
  28. #655 on Sep 4
  29. #645 on Sep 5
  30. #666 on Sep 6
  31. #680 on Sep 7
  32. #699 on Sep 8
  33. #687 on Sep 9
  34. #688 on Sep 10
  35. #671 on Sep 11
  36. #677 from Sep 12 to Sep 13
  37. #699 on Sep 14
  38. #687 on Sep 15
  39. #699 on Sep 16
  40. #700 on Sep 17
  41. #689 on Sep 18
  42. #680 on Sep 20
  43. #696 on Sep 21
  44. #716 on Sep 22
  45. #706 on Sep 23
  46. #681 on Sep 24
  47. #667 from Sep 25 to Sep 26
  48. #700 on Sep 27
  49. #746 on Sep 29
  50. #693 on Oct 2
  51. #675 on Oct 3
  52. #734 on Oct 7
  53. #775 on Oct 8
  54. #742 on Oct 9
  55. #726 on Oct 10
  56. #723 on Oct 11
  57. #741 on Oct 12
  58. #746 on Oct 13
  59. #757 on Oct 14
  60. #736 on Oct 17
  61. #723 on Oct 18
  62. #765 on Oct 19
  63. #771 on Oct 20
  64. #782 on Oct 21
  65. #762 on Oct 22
  66. #767 on Oct 23
  67. #729 on Oct 24
  68. #879 on Oct 25
  69. #888 on Oct 28

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 4, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 17 notes
  • skills/codex-slides/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codex-slides/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codex-slides/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codex-slides/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codex-slides/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codex-slides/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codex-slides/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codex-slides/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codex-slides/scripts/codex-slides.mjs:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codex-slides/scripts/codex-slides.mjs:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codex-slides/scripts/codex-slides.mjs:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codex-slides/scripts/codex-slides.mjs:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codex-slides/scripts/codex-slides.mjs:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codex-slides-research/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codex-slides-structured-intake/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codex-slides-structured-intake/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codex-slides-structured-intake/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 47 signals by file

skills/codex-slides/references/COMMANDS.md

  • Network accessline 249
    - `CODEX_SLIDES_URL`: API and Browser base URL; default   `http://127.0.0.1:4311`.
  • Network accessline 250
    `http://127.0.0.1:4311`.

skills/codex-slides/scripts/codex-slides.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 13
    const SCRIPT_DIR = dirname(fileURLToPath(import.meta.url)); const BASE = (process.env.CODEX_SLIDES_URL || "http://127.0.0.1:4311").replace(/\/$/, "");
  • Network accessline 13
    const SCRIPT_DIR = dirname(fileURLToPath(import.meta.url)); const BASE = (process.env.CODEX_SLIDES_URL || "http://127.0.0.1:4311").replace(/\/$/, "");
  • Network accessline 13
    const SCRIPT_DIR = dirname(fileURLToPath(import.meta.url)); const BASE = (process.env.CODEX_SLIDES_URL || "http://127.0.0.1:4311").replace(/\/$/, "");
  • Network accessline 13
    const SCRIPT_DIR = dirname(fileURLToPath(import.meta.url)); const BASE = (process.env.CODEX_SLIDES_URL || "http://127.0.0.1:4311").replace(/\/$/, "");
  • Network accessline 14
    const BASE = (process.env.CODEX_SLIDES_URL || "http://127.0.0.1:4311").replace(/\/$/, "");
  • Network accessline 14
    const BASE = (process.env.CODEX_SLIDES_URL || "http://127.0.0.1:4311").replace(/\/$/, "");
  • Network accessline 14
    const BASE = (process.env.CODEX_SLIDES_URL || "http://127.0.0.1:4311").replace(/\/$/, "");
  • Network accessline 14
    const BASE = (process.env.CODEX_SLIDES_URL || "http://127.0.0.1:4311").replace(/\/$/, "");
  • Network accessline 165
    async function reachable() {   try {     const response = await fetch(`${BASE}/api/agents`, { signal: AbortSignal.timeout(2500) });
  • Network accessline 165
    async function reachable() {   try {     const response = await fetch(`${BASE}/api/agents`, { signal: AbortSignal.timeout(2500) });
  • Network accessline 165
    async function reachable() {   try {     const response = await fetch(`${BASE}/api/agents`, { signal: AbortSignal.timeout(2500) });
  • Network accessline 165
    async function reachable() {   try {     const response = await fetch(`${BASE}/api/agents`, { signal: AbortSignal.timeout(2500) });
  • Network accessline 166
    try {     const response = await fetch(`${BASE}/api/agents`, { signal: AbortSignal.timeout(2500) });     return response.ok;
  • Network accessline 166
    try {     const response = await fetch(`${BASE}/api/agents`, { signal: AbortSignal.timeout(2500) });     return response.ok;
  • Network accessline 166
    try {     const response = await fetch(`${BASE}/api/agents`, { signal: AbortSignal.timeout(2500) });     return response.ok;
  • Network accessline 166
    try {     const response = await fetch(`${BASE}/api/agents`, { signal: AbortSignal.timeout(2500) });     return response.ok;
  • Network accessline 167
    const response = await fetch(`${BASE}/api/agents`, { signal: AbortSignal.timeout(2500) });
  • Network accessline 167
    const response = await fetch(`${BASE}/api/agents`, { signal: AbortSignal.timeout(2500) });
  • Network accessline 167
    const response = await fetch(`${BASE}/api/agents`, { signal: AbortSignal.timeout(2500) });
  • Network accessline 167
    const response = await fetch(`${BASE}/api/agents`, { signal: AbortSignal.timeout(2500) });
  • Network accessline 216
    async function apiFetch(path, init = {}) {   await ensureServer();   return fetch(`${BASE}${path}`, init);
  • Network accessline 216
    async function apiFetch(path, init = {}) {   await ensureServer();   return fetch(`${BASE}${path}`, init);
  • Network accessline 216
    async function apiFetch(path, init = {}) {   await ensureServer();   return fetch(`${BASE}${path}`, init);
  • Network accessline 216
    async function apiFetch(path, init = {}) {   await ensureServer();   return fetch(`${BASE}${path}`, init);
  • Network accessline 217
    await ensureServer();   return fetch(`${BASE}${path}`, init); }
  • Network accessline 217
    await ensureServer();   return fetch(`${BASE}${path}`, init); }
  • Network accessline 217
    await ensureServer();   return fetch(`${BASE}${path}`, init); }
  • Network accessline 217
    await ensureServer();   return fetch(`${BASE}${path}`, init); }
  • Network accessline 218
    return fetch(`${BASE}${path}`, init);
  • Network accessline 218
    return fetch(`${BASE}${path}`, init);
  • Network accessline 218
    return fetch(`${BASE}${path}`, init);
  • Network accessline 218
    return fetch(`${BASE}${path}`, init);

skills/codex-slides/scripts/probe.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 50
    throw new Error(`Expected 6 groups and 24 scenarios, got ${scenarios.groups?.length}/${scenarios.scenarios?.length}.`);   }   if (!opened.url?.startsWith("http://127.0.0.1:4311")) throw new Error("Browser URL is missing.");
  • Network accessline 51
    }   if (!opened.url?.startsWith("http://127.0.0.1:4311")) throw new Error("Browser URL is missing.");   if (!opened.url.includes("view=scenarios") || !opened.url.includes("scenario=new-deck")) {
  • Network accessline 52
    if (!opened.url?.startsWith("http://127.0.0.1:4311")) throw new Error("Browser URL is missing.");

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

No combined signals at this commit.

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md skills/codex-slides/SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md skills/codex-slides/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skills/codex-slides/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skills/codex-slides/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skills/codex-slides/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md skills/codex-slides/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.

Add this badge to your README

It updates every night and links to this page.

nexu-io/codex-slides: #912 on hotskills, 972 stars

[![nexu-io/codex-slides on hotskills](https://hotskills.dev/badge/nexu-io-codex-slides.svg)](https://hotskills.dev/skill/nexu-io-codex-slides/)