All plugins

cut-sprite-sheet

pixel art sprite sheet cutter. png to tileset splitter. cut pixel art into game tiles. sprite sheet from pixel png. 2d walk cycle sprite sheet. tileset cutter for pixel art. split png into sprite sheet. shore tiles tileset tool. pixel art walk cycle sheet. png sprite and shore tiles. Cuts a pixel-art png into frames. Tools: inspect_grid, slice_grid, place_kit for a 2D game. Disclosure — The png stays on this computer. Nothing is sent. No API key. No daily cap. A gateway room can call the tools. Stop them with hermes tools. One approval on one line via pre_tool_call. Choosing always covers only the same call. An oversized line writes one list file. A failed check writes nothing. Hermes yolo and approvals off skip that prompt. cron, -q, and unattended sessions default to deny. Empty, unknown, or a restrictive license is not written. Unknown text is copied and next warns. CC-BY-SA is copied and next names share-alike. No license chunk still writes and next says no rights are attached. Import once or play fails: godot --headless --editor --quit --path <project>. No solid-color box and no sound effect. Does not launch Godot or Unity. Play may write app-userdata. Uninstall leaves no cron job. Linux is untested. Unity editor 6000.6.6f1 on macOS kept the walk-sheet fileIDs after a reopen.

TakeshiTGALToolsv0.1.0Updated 13 days ago

About

pixel art sprite sheet cutter. png to tileset splitter. cut pixel art into game tiles. sprite sheet from pixel png. 2d walk cycle sprite sheet. tileset cutter for pixel art. split png into sprite sheet. shore tiles tileset tool. pixel art walk cycle sheet. png sprite and shore tiles. Cuts a pixel-art png into frames. Tools: inspect_grid, slice_grid, place_kit for a 2D game. Disclosure — The png stays on this computer. Nothing is sent. No API key. No daily cap. A gateway room can call the tools. Stop them with hermes tools. One approval on one line via pre_tool_call. Choosing always covers only the same call. An oversized line writes one list file. A failed check writes nothing. Hermes yolo and approvals off skip that prompt. cron, -q, and unattended sessions default to deny. Empty, unknown, or a restrictive license is not written. Unknown text is copied and next warns. CC-BY-SA is copied and next names share-alike. No license chunk still writes and next says no rights are attached. Import once or play fails: godot --headless --editor --quit --path <project>. No solid-color box and no sound effect. Does not launch Godot or Unity. Play may write app-userdata. Uninstall leaves no cron job. Linux is untested. Unity editor 6000.6.6f1 on macOS kept the walk-sheet fileIDs after a reopen.

Sprite sheet

Cut a png grid into a sprite sheet or a tileset, or place a walk cycle or shore tiles, for a 2D game in Godot or Unity.

Install

Point Hermes at this directory and enable cut-sprite-sheet. The manifest asks for Hermes >=0.21.6. There is no pip install. The tools do not read an API key and they do not send the png.

First picture

  1. Cut the user's png. Omit cell_w and cell_h on inspect_grid when you want a suggested cell. The call does not cut. Then call slice_grid with both sizes.
  2. A tight sheet (margin 0 and spacing 0) still writes SpriteFrames and a Unity Multiple slice. The png bytes stay. write false writes nothing.
  3. Run godot --headless --editor --quit --path <project> once. Headless play cannot load the png before that import. Then play the stage. Do not open the Godot window.
  4. The tools do not launch Godot or Unity. An existing project.godot is not changed. Set snap_2d_transforms_to_pixel and snap_2d_vertices_to_pixel yourself when the project already exists.
  5. place_kit is only for a folder with no png. walk writes a colored 4-frame sheet and shore tiles. This plugin does not create a 3D model or a sound effect.

--probe checks playback and prints one PLAY line. The scene script is not an @tool script.

What stays out of the catalog

process/fix_alpha_border=false is written before Godot imports the png. A new sidecar has no uid line. A later slice keeps a uid:// line Godot already wrote. spriteExtrude stays 0. That field is mesh padding, not the spacing copy. The spacing copy is a separate png. Pixels per unit defaults to the cell height. The trial cells are 32. spriteMeshType 0 is Full Rect. spriteID ends with 0800000000000000 and is not the MD4 hex of the sprite name. internalIDToNameTable lists class 213. A gapped tileset names tiles.extruded.png in the slice json, and the Unity rects use that image. Unity Editor 6000.6.6f1 on macOS kept the walk-sheet fileIDs after a reopen, and the animation and prefab references stayed. Trial png guids are not shared. A shore map (peering in the tileset) puts each neighbor bit on its own atlas cell. Without that map the terrain is one tile. Unity water is an Animated Tile with three frames. Linux and Windows were not tested.

Music and an NPC voice are not created here. Audio is not sent.

Approval

slice_grid and place_kit register a pre_tool_call hook. A write (default write true) dry-runs first and returns {"action": "approve", "message": <one line of project-relative paths>}. inspect_grid, write false, and a dry-run that would not write return nothing, so Hermes does not ask.

Hermes then runs the same human gate as a dangerous shell command (hermes_cli/plugins.py _resolve_block_from_details → tools/approval.py request_tool_approval). CLI, gateway, and Desktop show that line. Choosing always covers only the same call (the same arguments) on later turns. After a yes, the handler dry-runs again and writes only when the plan still matches. If the files changed, it writes nothing.

This plugin does not read Hermes private internals. What Hermes does with the approve directive (v0.21.6 already has it; checked on v0.22.2):

  • yolo (--yolo / /yolo) and approvals.mode: off skip the prompt and treat the call as approved (tools/approval.py _run_approval_gate).
  • cron, -q, and unattended platforms follow approvals.cron_mode / single_query_mode / unattended_mode. The defaults are deny (hermes_cli/config_defaults.py).
  • Any other non-interactive context with no person and no gateway fails closed.

The install scanner, with an empty HERMES_HOME, on both Hermes v0.22.2 and current main: Verdict: SAFE, 11 findings, Decision: ALLOWED — Allowed (community source, safe verdict). should_allow_plugin_install is Allowed (clean scan). The findings are tests that spawn Godot/lsof/grep, PNG byte fixtures, and path-refusal cases. They were not rewritten to hide from the scanner. --force is not required.

日本語

入れるのは、このディレクトリを Hermes に置いて cut-sprite-sheet を有効にするだけである。最初の成功は、利用者の png を inspect_grid してから slice_grid で切ることである。承認は 1 回で、pre_tool_call の 1 行が書くパスである。yolo と approvals off では Hermes がその場で承認を飛ばす。cron と -q と無人は既定で断る。切り直しでは、名前が一致するスプライトの pivot と border を残す。消える値は、その行に名指す。取り込みは godot --headless --editor --quit --path <project> の 1 回で、ウィンドウは開かない。そのあとステージを再生する。道具は Godot も Unity も起動しない。既にある project.godot は変えない。place_kit は png が無いときだけ使う。効果音は無い。

README from the reviewed commit 3e5e9b2; it updates when the author re-pins.

More by TakeshiTGAL

30 plugins by TakeshiTGAL in the catalog.

TakeshiTGALjp-subsidiesJapanese subsidy search and weekly watch, built on the jGrants public API. Disclosure — Searches api.jgrants-portal.go.jp with no API key and no daily request cap; each call waits at most 60 seconds and retries at most twice, and a result is a search match, not proof that every subsidy came back. The plugin has no user list of its own: anyone you allow on your Hermes gateway can call these tools and change this profile's watch, and the agent can set up a watch by itself. In a Chatwork room listed in CHATWORK_ROOMS, everyone can call them while CHATWORK_ALLOWED_USERS is unset. The tools are on for every platform, including gateways; turn them off per platform with hermes tools. While the plugin is enabled, its skill adds one line to the skills index of every session, including surfaces where the tools are turned off. The /subsidies command is outside hermes tools; limit it with allow_admin_from or user_allowed_commands, or disable the plugin. The optional weekly watch is an unattended cron job that runs a script with no model call and is not a sandbox; delivering it to bot-chat instead runs one model turn on the fetched text. If delivery fails after the script runs, those subsidies are already marked seen and the text stays under cron/output/. Uninstall leaves the cron job, scripts/jp-subsidies-weekly-*.py and plugin-data/jp-subsidies/ until you run hermes cron remove and delete the files. The plugin does not store the name or ID of who asked. Not tested against a live gateway, with the Chatwork plugin loaded, or for result sets of several hundred rows.Communitytools1TakeshiTGALwyoming-voice-bridgeWyoming speech-to-text and text-to-speech for a Wyoming server you run (stt/tts provider `wyoming`), plus a wyoming_voice_status tool that lists the server's models and voices. Disclosure — Audio and text to speak go to the WYOMING_* host:port you set over cleartext, unauthenticated TCP (public addresses accepted). Once selected, the providers send speech in every session, including cron and webhooks. This build imports the installed package only when its file tree is the official wyoming 1.5.4 wheel, and a different tree sends nothing. This build lists no ffmpeg digest, so audio that is not already 16 kHz, 16-bit, mono WAV is not converted. wyoming_voice_status asks with one public pre_tool_call line. Choosing always stores one command_allowlist line for that same which and the same host:port list. A later call skips the question only when a person is present. cron, hermes -q, webhook, msgraph_webhook, and api_server do not send a describe, even after always. yolo and approvals off skip the prompt, and this plugin does not add a refusal for those modes. The plugin does not import Hermes approval, config, or write-guard modules. Hermes 0.21.4 does not list the skill. The v0.21.5 canary and Hermes 0.22.2 add one skill line to every session that loads the plugin, including a surface where the tools are turned off. The status tool is on for every surface, including the gateway, and a guest there can call it and approve it when a person can answer. Turn the wyoming_voice toolset off per surface with hermes tools.Communityvoice1TakeshiTGALauthor-feedEach watch run costs 0 tokens, and the unmanned run holds no tools. Read one public profile and watch one account, with profile_get, author_feed and author_watch. It reads public posts and profiles from the Bluesky social media network, which is built on the AT Protocol (atproto), without signing in. Disclosure — HTTPS GET only to public.api.bsky.app, no API key. Hermes starts the watch Python when the cron job fires. The tools are on for every surface, including gateways, and ask for no approval: anyone you allow on your gateway can call them. Turn a surface off with hermes tools. While the plugin is enabled, its skill adds one line to the skills index of every session, including surfaces where the tools are turned off. hermes author-feed schedule writes a script and creates one cron job that does not call a model. Each run costs 0 tokens and has no daily cap. Empty script output sends nothing. Delivered to local unless you pass --deliver, so no chat by default. Run hermes author-feed unschedule before removal. That removes the job and the script. A leftover job after the plugin is gone stops with hermes cron remove <id>. The scheduled script does not run under plugins.isolation: host, so that setting does not stop the watch. The author_watch tool still refuses a run that is not the saved cron job, including under plugins.isolation: host, and posts that notice on every run of the tool. The first run only records what is already there. One run reads at most the latest 3 pages and announces a new post by this account on them. When every row on those pages is new, with no saved post or mark, and the feed still offers another cursor, it also posts a possible-miss notice, at most once in 24 hours while that keeps happening. Replies, including the account's own thread continuations, are not announced. It relies on private Hermes parts, so an update can stop it. State stays in <HERMES_HOME>/plugin-data/author-feed after uninstall. Seen post URIs advance only on the saved cron job after a successful fetch. The script allows that when cron/executions.db shows that job running under the parent pid and cron/jobs.json names author-feed-watch.py. A direct run and another cron job exit 3 with no GET and no write. The author_watch tool allows that only for the saved job id. Delivery accepts origin, local, all, bot-chat, the Hermes 0.21.6 cron platform names, and public registry names that declare a cron delivery env var. A refused name can be set with hermes cron edit <id> --deliver. bot-chat places the watched account's post text in another model turn that has the profile's tools. hermes cron create cannot set a per-job tool list. A job made by 0.1.x keeps its model turn until the next schedule. On Hermes 0.21.4 and 0.21.5 this plugin does not load, and a leftover job keeps its model turn until hermes cron remove <id>. Running schedule again updates the interval and deliver target and switches an existing model job to the script.CommunitytoolsTakeshiTGALcsharp-game-editorGive it one feature for the Unity project open in your editor, and it builds the scripts, objects and scene in one plan, stops that plan when the compile reports an error CS line, and plays the scene when the compile is clean. Disclosure — Needs MCP for Unity pinned to v10.3.0, plus git and uv. Hermes starts mcpforunityserver==10.3.0 through uvx with telemetry and the update check off. Disk reads run at once. apply_plan asks once and puts back a file the plan did not name. A plan that deletes, runs editor code, can lose unsaved work or writes outside the project asks again, and that summary is sent only when every line fits the approval card; otherwise nothing is sent and confirm_risky_plan asks. unity_docs sends the query to docs.unity3d.com after Hermes asks. unity_generate can call paid providers you configured in MCP for Unity; that call was not part of the check. Tools are on by default on every surface, including the gateway. Only users the gateway admits can reach the tools, and this plugin keeps no user list of its own. Cron and a session with nobody to answer decline. Logs stay in <HERMES_HOME>/plugin-data/agent-plugin-csharp-game-editor-<hash>/logs. Stop with hermes plugins disable csharp-game-editor, or hermes tools for one surface. macOS only.Communitytools