{
  "markdown": "# Slidesfly integrations and examples\n\n[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/rare/slidesfly-integrations/badge)](https://scorecard.dev/viewer/?uri=github.com/rare/slidesfly-integrations)\n[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/13940/badge)](https://www.bestpractices.dev/projects/13940)\n\nPublic, reproducible integration assets for\n[Slidesfly](https://slidesfly.com), the publishing layer for existing HTML presentations.\n\nThe Best Practices badge links to the project's self-certified passing assessment. The Scorecard\nbadge reports the current automated repository checks. Neither badge is an endorsement by OpenSSF.\n\nThis repository intentionally excludes the private Slidesfly SaaS application, infrastructure,\ncredentials, customer data, and billing implementation. It contains only integration surfaces that\ndevelopers can inspect, test, and reuse.\n\n## Contents\n\n| Path | Status | Purpose |\n|---|---|---|\n| [`action.yml`](action.yml) | Public beta; production-smoke verified | Marketplace-ready root Action for publishing or updating an HTML deck |\n| [`gemini-extension.json`](gemini-extension.json) | Installable | Gemini CLI extension with the Skill and hosted MCP |\n| [`actions/publish`](actions/publish) | Backwards-compatible | Existing subdirectory entry point for the publish Action |\n| [`skills/slidesfly`](skills/slidesfly) | Installable | Official Slidesfly Agent Skill |\n| [`claude/slidesfly`](claude/slidesfly) | Submitted; review pending | Claude Code plugin with the Skill and hosted MCP |\n| [`cursor/slidesfly`](cursor/slidesfly) | Submitted; review pending | Cursor plugin with the Skill and bundled CLI runner |\n| [`examples/plain-html`](examples/plain-html) | Live-verified fixture | One self-contained HTML deck |\n| [`examples/codex-generated`](examples/codex-generated) | Live-verified fixture | Agent-generated single-file deck |\n| [`examples/frontend-slides`](examples/frontend-slides) | Live-verified fixture | Pinned Frontend Slides single-file compatibility fixture |\n| [`examples/revealjs`](examples/revealjs) | Live-verified fixture | Reveal.js 6.0.1 multi-file build |\n| [`examples/slidev`](examples/slidev) | Live-verified fixture | Slidev 52.18.1 static build |\n| [`examples/marp`](examples/marp) | Live-verified fixture | Marp CLI 4.5.0 single-file export |\n| [`examples/quarto`](examples/quarto) | Live-verified fixture | Quarto 1.10.18 self-contained Reveal.js export |\n| [`mcp/server.json`](mcp/server.json) | Published v0.1.0 | Active official MCP Registry metadata for the hosted server |\n| [`mcp/server-card.json`](mcp/server-card.json) | Discovery metadata | Static capability card for auth-walled scans |\n\n## Start here\n\n- [GitHub Marketplace Action](https://github.com/marketplace/actions/publish-html-presentation-to-slidesfly)\n- [Publish an HTML presentation](https://slidesfly.com/guides/publish-html-presentation-online)\n- [Framework compatibility matrix](https://slidesfly.com/guides/html-presentation-framework-compatibility)\n- [CLI documentation](https://slidesfly.com/docs/cli)\n- [Hosted MCP documentation](https://slidesfly.com/docs/mcp)\n- [npm CLI package](https://www.npmjs.com/package/@slidesfly/cli)\n- [npm MCP package](https://www.npmjs.com/package/@slidesfly/mcp)\n- [Gemini CLI extension manifest](gemini-extension.json)\n- [Claude Code plugin package](claude/slidesfly)\n- [Cursor plugin package](cursor/slidesfly)\n- [Security architecture](https://slidesfly.com/security)\n- [Canonical Slidesfly Skill](https://slidesfly.com/SKILL.md)\n\nInstall the public Skill source with:\n\n```bash\nnpx skills add rare/slidesfly-integrations --skill slidesfly\n```\n\nInstall exact public npm versions with:\n\n```bash\nnpm install --global @slidesfly/cli@0.1.5\nslidesfly --version\nnpx -y @slidesfly/mcp@0.1.0\n```\n\nThe registry tarball URLs, npm integrity values, and independently computed SHA-256/SHA-512\nchecksums are recorded in [`releases/npm-packages.json`](releases/npm-packages.json). Verify the\nlive registry artifacts with `node scripts/verify-npm-release.mjs` before mirroring or auditing\nthem.\n\nInstall the Gemini CLI extension from the public repository:\n\n```bash\ngemini extensions install https://github.com/rare/slidesfly-integrations --ref v0.3.3\n```\n\nGemini CLI requests `SLIDESFLY_API_KEY` as a sensitive setting and stores it in the system\nkeychain. Create a key in the Slidesfly dashboard when you are ready to use the hosted MCP; never\ncommit the key to this repository.\n\nThe Claude Code plugin was submitted on 2026-08-30 through Leibe's Individual Org. Review is\npending; it has not been accepted or published in the Claude Code Plugins Directory.\n\nThe Cursor package intentionally does not bundle the API-key-only hosted MCP. Cursor Marketplace\nplugins currently have no stable install-time secret-input flow for that configuration, while the\nbundled Slidesfly runner already supports anonymous publishing and the user's existing CLI login.\nSee the package README for the exact boundary. The package was submitted on 2026-08-01 and has not\nbeen accepted or published by Cursor.\n\nPublish a deck from GitHub Actions with:\n\n```yaml\n- id: deck\n  uses: rare/slidesfly-integrations@v0.3.3\n  with:\n    file: deck.html\n    api-key: ${{ secrets.SLIDESFLY_API_KEY }}\n    visibility: unlisted\n```\n\nThe root Action is the Marketplace entry point. The existing\n`rare/slidesfly-integrations/actions/publish@v0.1.1` path remains available for workflows already\nusing it.\n\n## Current boundaries\n\n- The website installer and `@slidesfly/cli@0.1.5` are supported public CLI distributions.\n- The hosted MCP endpoint is `https://slidesfly.com/api/mcp` and requires a Slidesfly API key.\n- The stdio MCP package is `@slidesfly/mcp@0.1.0`; its local config remains separate from hosted\n  MCP bearer authentication.\n- Multi-file zip publishing requires an eligible authenticated plan.\n- Every example marked live links to a reader URL; each fixture records its own verification date\n  and evidence boundary.\n\n## Releases\n\nIntegration releases use semantic version tags. The root Action is released from the same public\nrepository as the MCP, Skill, and framework fixtures. Pin a commit SHA for the strongest\nsupply-chain stability, or use a reviewed release tag when a moving major tag is not available.\nRelease assets mirror the verified npm tarballs and include `SHA256SUMS` and `SHA512SUMS`; the\nregistry remains the canonical package source.\n\nThe manual [release-attestation workflow](.github/workflows/attest-release.yml) can add a\nSigstore-signed in-toto release attestation after re-verifying both the npm artifacts and GitHub\nrelease assets. See [release attestation verification](docs/release-attestations.md) for the exact\nclaim boundary and consumer command. A release is not signed merely because the workflow exists;\ncheck the release assets and verify the bundle before relying on it.\n\nSee [MAINTENANCE.md](MAINTENANCE.md), [CONTRIBUTING.md](CONTRIBUTING.md), and\n[SECURITY.md](SECURITY.md) before relying on a public-beta integration in production. The\n[OpenSSF Best Practices passing status and evidence](docs/openssf-best-practices.md) records the\ncurrent public evidence, assessment scope, and ongoing maintenance boundaries.\n\n## License\n\nMIT\n",
  "bytes": 7255,
  "sha": "1cc2f6f9f3eb1e893f6870a7e9a2c863e1211875455fee8bc3c71d72f3fc8331",
  "repo_slug": "rare/slidesfly-integrations",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_rare_slidesfly_integrations_b17b6ac0/readme"
}