with one click
new
Create a new Tinker plugin from the template
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Create a new Tinker plugin from the template
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Tinker desktop toolbox CLI for AI agents. Use when the user needs to open a Tinker plugin, create a new Tinker plugin, list installed plugins, control plugin windows from the command line, call plugin MCP tools, debug a plugin UI, or integrate Tinker with an AI agent via MCP. Triggers include "open a Tinker plugin", "create a Tinker plugin", "list tinker plugins", "tinker open", "call a plugin tool", "tinker MCP", "automate JSON editor", or any task requiring programmatic control of the Tinker Electron app and its plugins. Prefer tinker CLI over guessing IPC or UI steps.
Core Tinker CLI usage guide. Read this before running any tinker commands. Covers discovering installed plugins, opening and closing plugin windows, listing running plugins, and controlling the Tinker desktop app from the command line. Use when the user asks to open a Tinker plugin, list plugins, check what is running, restart or close a plugin, or quit Tinker.
Implement or audit MCP tools for a Tinker plugin. Use when adding MCP support, writing src/mcp.ts, defining tinker.mcp.tools in package.json, reviewing plugin MCP conventions, or checking whether an MCP implementation follows project standards.
Tinker development CLI for working in the tinker repo. Use when developing Tinker itself or its plugins and you need to open plugins, list installed plugins, control plugin windows, or call plugin MCP tools via `./bin/tinker-dev`. Do not use the packaged `tinker` CLI in this repo. Triggers include tasks in the tinker-utm repo requiring programmatic control of the dev Tinker app. Prefer `./bin/tinker-dev` over the global `tinker` skill or guessing IPC/UI steps.
Debug Tinker plugins with agent-browser. Use when the user needs to open, inspect, interact with, restart, or close a plugin in the running Tinker Electron app.
Check code against Tinker plugin coding standards
| name | new |
| description | Create a new Tinker plugin from the template |
| argument-hint | <plugin-name> [description] |
Create a new Tinker plugin from scratch.
plugin-name: kebab-case name without the tinker- prefix (e.g., base64, color-picker)description: optional short description in EnglishList existing plugins and check if any are functionally similar to the new one:
ls -d tinker-*/
If a similar plugin exists, ask the user whether to copy it as the base instead of tinker-template. Use the user's choice as the copy source in the next step.
Ask the user: does this plugin need Node.js/Electron APIs (file system, OS info, native dialogs beyond tinker.*, etc.)? If yes → advanced (with src/preload/ and src/renderer/). If no → basic (flat src/ layout).
cp -r tinker-<source> tinker-<plugin-name>
Where <source> is either the similar plugin chosen by the user or tinker-template.
package.jsonEdit tinker-<plugin-name>/package.json:
name → "tinker-<plugin-name>"description → "<Description> Plugin for TINKER"tinker.name → Title Case English nametinker.description → short English description of what the plugin doestinker.icon → "icon.png"tinker.locales.zh-CN.name → Chinese name (ask if unclear)tinker.locales.zh-CN.description → Chinese descriptionBasic plugin — simplify scripts and paths:
dev / build with single vite commands (no concurrently)tinker.main to "dist/index.html"tinker.preloadIf the source is tinker-template, also restructure the directory:
mv src/renderer/* src/
rm -rf src/renderer src/preload
Then update import paths in index.html and all files under src/ — replace any src/renderer/ references with src/, and fix relative import paths affected by the directory change (e.g. ../../../share/ → ../../share/).
Advanced plugin — keep template scripts as-is, only update name/description.
Also remind the user: icon.png must be replaced with a real icon (200×200 px).
cd tinker-<plugin-name> && npm run build
Fix any TypeScript or build errors before finishing.
The scaffold is complete. Do not modify App.tsx, store.ts, i18n files, or any other source files to implement the plugin's actual functionality. Leave all template content as-is and inform the user that the scaffold is ready for them to implement.