Repository navigation
ToolsEnabled Slides 0.1.9 (prerelease)
Pre-releaseToolsEnabled Slides 0.1.9 (prerelease)
Published 2026-10-14. Source commit 3df997d7d85e8ed72e457c9533b18bdd21fdf920. It adds two commits to 0.1.8 (tag v0.1.8, commit 16a404febadfe8dcdc29b822e92a73ab6c9c3416): the fixes from the 2026-10-14 fresh-user verification of 0.1.8 and from the plugin directory's review, and the version change. The tools, studio, panes and mod work as before; each tool now also has a top-level title, refusals log one line, and the ppt CLI checks its host.
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.8 (see CHANGELOG.md):
- A refused import or export (an existing destination, a path outside the workspace, a lock, a pause, or a deck the import helper refuses, such as one with external links) logs one line, for example
Export refused: Output already exists; choose a new destination, instead of a stack trace in the host's MCP log. An import the helper refuses for an unknown reason also keeps the helper's diagnostics and logsImport refused: invalid or unsupported PPTX contentonce. Other failures keep their full diagnostics. tools/listgives each tool a top-leveltitle, the same text as itsannotations.title, which clients of MCP 2025-06-18 show first.- The
pptCLI refuses aSUITE_HOSTother than 127.0.0.1, localhost or ::1, as the server does, and when no server answers it namesnode src/cli/studio.js(npm run studio) instead ofnpm startand asuite/server.jsthat does not exist. - The MCP test client gives the Slides child it starts only the operating-system basics and the suite's
SUITE_*andSLIDES_*settings, as README already said. - The plugin directory read some files as pairing a remote address with a credential; none sends anything off the machine. The studio's loopback origin is now built by one helper,
src/lib/origins.js, and the files the directory listed spell no address other than loopback; in four tests the startup-link pattern, the hostileHostandOriginvalues and the deck with an external link moved into helper and fixture files. The release tools' network reads moved intotools/release_fetch.pyandtools/local_health.py. The checks are unchanged. - README's "What this plugin runs, sends and reads" answers each directory hold that stays in one sentence; docs/CLAUDE-INSTALL.md says to use a fresh extract for the local marketplace route.
tools/source-files.jsonlists the ten new files, so the source ZIP has 238 members (0.1.8: 228).
Files in this release
| File | SHA-256 |
|---|---|
toolsenabled-slides-0.1.9.zip (688,231 bytes, the source distribution) |
9aa4aead4bb6ffaec4fa159c45a102190b4502dfa98444eff114d282bded94e4 |
toolsenabled-slides-0.1.9.zip.sha256 |
the line above, sha256sum -c format |
Verify before extracting:
sha256sum -c toolsenabled-slides-0.1.9.zip.sha256The 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.9 (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.9. 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, with Node.js 22 or newer on its PATH; without the Python and workspace settings the plugin installs but starts no server); codex plugin marketplace add ToolsEnabled/toolsenabled-slides, then install from the toolsenabled-slides marketplace in the /plugins browser (Codex). Both need the external runtime prepared as docs/CLAUDE-INSTALL.md describes.
What was tested
Full Linux suite on the release commit: FILES 116; FAILED 0; DISPLAY=unset, exit 0 (115 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: 164 node:test tests, 130 Python tests (6 Windows-only skips) and 692 scripted checks, all passing. Before the change, on the same machine, 0.1.8 gave FILES 112; FAILED 0; DISPLAY=unset with 154 node:test tests, 127 Python tests (6 Windows-only skips) and 692 scripted checks; the difference is the new test files and tests. The /slides mod's hook tests (claude plugin test): 33/33.
The same suite from the extracted ZIP (unzip, then node test/run.js inside slides/ with the same prepared runtime): FILES 116; FAILED 0; DISPLAY=unset, exit 0, with the same counts.
Strict real-LibreOffice lifecycle on the extracted ZIP: exit 0, ok: true, 9 named checks, 37 discovered tools, 3 PPTX slides and real PPTX, PDF and PNG exports. 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, its plugin.json, its marketplace.json and the extracted ZIP (Claude Code 2.1.300). In a scratch CLAUDE_CONFIG_DIR, claude plugin marketplace add of the extracted ZIP followed by claude plugin install -s local toolsenabled-slides@toolsenabled-slides with the four settings listed the plugin at 0.1.9 and printed the expected "2 userConfig options not yet set". claude mcp list showed its server connected. The ZIP was built twice, each in a fresh clone of the release commit, with byte-identical results. Codex was not run for this release; its manifest changes only in its version. No native Windows/macOS/Desktop or production certificate trust is inferred.
Support and security contact: support@toolsenabled.ai (security policy: https://toolsenabled.ai/security/).