Skip to content

ToolsEnabled Slides 0.1.2 (beta)

Pre-release
Pre-release

Choose a tag to compare

@ToolsEnabled-Inc ToolsEnabled-Inc released this 13 Oct 06:46
· 27 commits to main since this release

ToolsEnabled Slides 0.1.2 (beta)

Published 2026-10-13. Source commit 40ce2c3e252d3e06914598b81c559c1a469923e5 (tree 7f321a46044c8820be5a90398c38d72ac3024f17), one commit on top of the public main 05d2f59d0f30eae55d5d0f0691caa7eca1d79edb (the 0.1.1 release plus the security policy).

This release provides Linux presentation editing over MCP, a local live studio, read-only Claude panes and Codex CLI views, slide locks, human dashboard controls, and PPTX/PDF/PNG export. Linux is the supported release scope. Native Windows shutdown, macOS, trusted production signing and native Desktop installation remain unqualified.

The MCP host supplies the agent. Slides does not make model calls or require a built-in online account or API key. The source ZIP contains no wheels, copied runtimes, workspace data, signing keys or packaging evidence. Prepare the Python runtime explicitly; Linux PDF/PNG also require LibreOffice.

Changes since 0.1.1, from the fresh-user verification of 0.1.1 (see CHANGELOG.md):

  • ppt_import/ppt_export results carry the workspace confinement reason (for example Output already exists; choose a new destination) instead of a generic export failure.
  • Tool-argument schema failures are labelled Invalid arguments: … instead of Tool crashed: ….
  • A refused workspace lease at startup is reported in one line, without a stack trace, by src/server.js and slides-mcp.js.
  • Shutdown during the background thumbnail render logs thumbnail render cancelled at shutdown instead of surfacing LibreOffice's javaldx warning as Renderer failed.
  • The prepared-runtime failure message carries the tools/setup-runtime.py hint once.
  • ppt_show and docs/MCP.md describe the real slide and element id formats: s/e plus 8 hex characters for created objects, s1/e1/e2 for the default deck, sN/eN_M for imported decks. The 37-tool list is otherwise unchanged.
  • The repository is its own plugin marketplace for Claude Code (.claude-plugin/marketplace.json) and Codex (.agents/plugins/marketplace.json); README and docs/CLAUDE-INSTALL.md carry the literal install commands.
  • README adds the download-and-verify step and states that no Claude Desktop bundle is distributed; docs/CLAUDE-INSTALL.md verifies the asset's .sha256 file instead of a "SHA256 manifest" and links the wheel bundle with its hash; docs/TESTING.md names the prepared runtime the plugin-mode tests need; CHANGELOG dates 0.1.1.

Files in this release

File SHA-256
toolsenabled-slides-0.1.2.zip (638382 bytes, the source distribution) ccb1d70c72ab3701fbc1598a718cb1342554843a8a4f766f1293541e3e8d5fc5
toolsenabled-slides-0.1.2.zip.sha256 the line above, sha256sum -c format

Verify before extracting:

sha256sum -c toolsenabled-slides-0.1.2.zip.sha256

The offline Python wheel bundle that README and docs/CLAUDE-INSTALL.md use is unchanged since 0.1.0 and is not re-attached here. Use the 0.1.0 asset, which works with 0.1.2 (same six pins): toolsenabled-slides-0.1.0-cp312-linux-x86_64-wheels.zip, SHA-256 a29454931420b8d9547eeb8d17c389a005cf0343a927d7a275f15eb3cab25fec.

No Claude Desktop bundle (.mcpb) is distributed with 0.1.2. An MCPB manifest is included in the source for future Desktop qualification; registry metadata and directory publication remain held until production-signed bytes and the required qualification are verified.

Plugin installation: claude plugin marketplace add ToolsEnabled/toolsenabled-slides, then claude plugin install -s local toolsenabled-slides@toolsenabled-slides --config python_executable="/absolute/private/Slides Runtime/bin/python" --config node_executable=/absolute/node --config workspace_directory="/absolute/decks/Project Update" --config port=4599 (Claude Code; without the four settings the plugin installs but starts no server); codex plugin marketplace add ToolsEnabled/toolsenabled-slides then codex plugin add toolsenabled-slides@toolsenabled-slides (Codex). Both need the external runtime prepared as docs/CLAUDE-INSTALL.md describes.

What was tested

Full Linux suite on the release commit: FILES 107; FAILED 0; DISPLAY=unset, exit 0 (106 direct test files plus fixture generation), with SUITE_PYTHON pointing at a runtime prepared by tools/setup-runtime.py from the 0.1.0 wheel bundle. Selected in-suite results: security 10/10, error texts 3/3, renderer 3/3, media tool errors 33/33, golden tools/list 2/2, PDF race 11/11.

The same suite from the extracted ZIP (unzip, then node test/run.js inside slides/ with the same prepared runtime): FILES 107; FAILED 0; DISPLAY=unset, exit 0.

Strict real-LibreOffice lifecycle on the extracted ZIP: exit 0, ok: true, 9 named checks (initialize, golden tools/list, locks required, 3-slide MCP editing, attach and detach, real exports, import, EOF shutdown, lease released), 37 discovered tools, 3 PPTX slides, 3 PDF pages and 3 PNG images (1600 × 901 each). This is one strict lifecycle run with its retained exports and stderr, not coverage of every tool.

Marketplace: claude plugin validate --strict passes on the release tree and on the extracted ZIP (Claude Code 2.1.296). In a scratch CLAUDE_CONFIG_DIR, claude plugin marketplace add followed by claude plugin install toolsenabled-slides@toolsenabled-slides succeeded both from the clone and from the extracted ZIP directory and listed the plugin at 0.1.2. The Codex marketplace file follows the published repo-marketplace format; Codex installation from it and the packaged-ZIP Codex host gate (tools/prove-codex-plugin.py) were not run for 0.1.2. No native Windows/macOS/Desktop or production certificate trust is inferred.

Support and security contact: support@toolsenabled.ai (security policy: https://toolsenabled.ai/security/).