Plugins by TakeshiTGAL
30 plugins by TakeshiTGAL in the catalog, most-starred first.
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.CommunitytoolsTakeshiTGALcut-sprite-sheetpixel 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.CommunitytoolsTakeshiTGALdoc-markdownConvert one local file to Markdown with doc_convert on Linux and macOS, built on Microsoft's MarkItDown. Microsoft and MarkItDown are trademarks of the Microsoft group of companies. Disclosure — the doc_markdown toolset is on by default on every surface, including a gateway, so anyone you allow there can call doc_convert; stop it with hermes tools. It does not fetch pages. Unattended sessions still convert when Hermes calls the tool. This plugin creates no cron job. A child process runs MarkItDown with no Hermes keys in its environment; on macOS the plugin runs ps about every 10 ms to watch that child's memory. It stops 8 seconds after its converters load, at 60 seconds if loading never finishes, or above 922746880 bytes. It is not a sandbox: after realpath it may read any allowlisted path it can open. Unpublished Hermes code locates the Hermes home, and a failed check refuses the path. Removal deletes the plugin directory, not the markitdown package. Windows was not tested.CommunitytoolsTakeshiTGALevent-readRead one CalDAV calendar collection you run, with list_events and read_event. Disclosure — Sends CALDAV_USER and CALDAV_PASSWORD as Basic auth to your CALDAV_URL, does not follow redirects, and starts no local program. Over plain http that password travels unencrypted. The tools are on for every surface, including gateways, and the plugin has no user list of its own: anyone you allow on your Hermes gateway reads the calendar with your password. Turn a surface off with hermes tools. On Hermes 0.21.6 and later, 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. A watch is a cron job you create yourself with hermes cron create. Each run is at least one model turn, there is no daily cap, and the job stays until you run hermes cron remove. Under plugins.isolation: host a no-argument list_events still returns the next 7 days and does not record uids. When the watch can run, it reports a problem on the first run, when the cause changes and again after 23 hours, or on every run when its data directory cannot be written. Each request gives up after 20 seconds without data, and a whole call has no time limit. The watch reads cron.execution_identity.current_cron_execution (Hermes 0.21.6). The printed cron line uses ctx.profile_name. The file write still uses Hermes's write guard. An update can stop the watch if that guard moves. These reads do not ask for approval and do not register a hook. State lives in plugin-data/event-read. Not tested against a vendor-hosted calendar.CommunitytoolsTakeshiTGALgame-editorIn the Godot 4 project open in your editor, it places assets into the scene, plays the game, and the next plan fixes each error from its file and line. Disclosure — Needs Godot 4.7 or later, the Godot AI 4.x add-on, and uv. The first start downloads godot-ai==4.3.0 from pypi.org and files.pythonhosted.org. There is no API key. The editor is reached only on 127.0.0.1. A server this plugin starts sends no telemetry. The add-on follows godot_ai/telemetry_enabled (on by default) and can send usage to godot-ai-telemetry-v2-pudmurzsnq-uw.a.run.app. plan_change sends only the session list. apply_plan asks once. A plan that deletes, overwrites, drops unsaved work, writes outside the project or runs code it wrote is not made when what is lost exceeds 1,700 characters, and otherwise runs only after confirm_risky_plan. Play and tests ask once and run the project's code. Tools are on by default on every surface, including the gateway, so anyone who can message Hermes there can ask and approve. This plugin keeps no user list of its own. Cron, hermes chat -q and unattended runs decline. Data stays in <HERMES_HOME>/plugin-data/agent-plugin-game-editor-<id> after removal. Stop with hermes plugins disable game-editor, or hermes tools for one surface. macOS only.CommunitytoolsTakeshiTGALhermes-gensyn-delphiSeven read-only tools. Disclosure — Seven read-only tools for Gensyn Delphi prediction markets; no funds move and nothing is signed or sent. Needs Node.js 20.18+ and a manual `npm ci --ignore-scripts` in the plugin folder (installs the pinned @gensyn-ai/gensyn-delphi-sdk and its locked npm deps) before the tools work. Runs a local Node subprocess per call (25 s deadline, not a sandbox). Sends your DELPHI_API_ACCESS_KEY only to delphi-api.gensyn.ai (testnet) or api.delphi.fyi (mainnet); history and quotes read api.goldsky.com and gensyn-testnet/mainnet.g.alchemy.com without the key, and quotes use a throwaway in-memory key the SDK requires. Tools are on for every surface by default, including messaging gateways, where anyone admitted can run these reads on the owner's key (rate limit 30 requests per minute per process); disable per surface with `hermes tools`.CommunitytoolsTakeshiTGALhermes-gensyn-reeree_validate_receipt, ree_verify_receipt, ree_infer. Validate does not re-execute and does not stand behind text_output, finish_reason, token_count, model.name, or ree_version. Verify re-executes on CPU. Infer runs one of three small models and writes one receipt. Disclosure — Starts containers from the local image gensynai/ree:v0.8.0 (pinned by digest) and never pulls it; running docker pull yourself is consent to the REE-Binary-License. ree_verify_receipt and ree_infer mount ~/.cache/gensyn and ~/.cache/huggingface read-write (a Hugging Face token file stored there is visible to the container; no token is passed in the environment), may download Hugging Face weights for any model a receipt names, and their container network is not limited to Hugging Face; they ask for Hermes approval on every call and refuse under cron, yolo, approvals off, single-query, unattended runs, host isolation, or when the approval API is missing. ree_validate_receipt runs with network none, does not ask, and returns no receipt text. Any person admitted to one of your gateways can call these tools and approve containers on your Docker daemon; disable per surface with hermes tools. Choosing "always" adds one config.yaml allowlist line per call and never covers the next call. New receipts and temporary work files are written under ~/.cache/hermes-ree; nothing is stored under HERMES_HOME. The container is not a hostile-code sandbox. No cron is created.CommunitytoolsTakeshiTGALindex-searchSearch one index you run and watch one saved query, with index_search, index_health and index_watch. It searches a Meilisearch server you run, so notes or local files can be found only after you index them there; it does not search files on disk itself. Disclosure — Sends MEILI_API_KEY as a Bearer token to your MEILI_HOST. Over plain http that key travels unencrypted, and a master or admin key is sent as given, so use a search-only key. The tools are on for every surface, including gateways: anyone you allow on your Hermes gateway can search with your key. Turn a surface off with hermes tools. On Hermes 0.21.6 and later, 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. index_watch save stores one query and prints a hermes cron create line for every 15 minutes. You run that line. A run is a model turn, and a tool call is another model request, with no daily cap. The watch covers only the first 20 hits. The job stays after uninstall until you run hermes cron remove, with -p and the profile name when the profile is not default. This plugin does not create or remove the cron job and it does not ask. Writes use the guard in agent.file_safety. An update can stop the watch.CommunitytoolsTakeshiTGALja-writing-guardRule-based proofreading for Japanese business text: finds and fixes AI-style phrasing (stock phrases, monotonous sentence endings, overused symbols and Markdown, English-calque grammar) with line, column and a fix hint. It checks wording, not authorship, and rarely flags plain model output. A transform_llm_output hook checks every final Japanese answer and only reports by default; opt-in enforce mode rewrites flagged answers with the user's own model and delivers the rewrite only if numbers, names, URLs, code and negation survive and the score drops under the threshold. Disclosure: no network calls of its own; enforce mode sends each flagged answer to the user's configured model (one extra call, a second only when the first rewrite fails the checks or stays over the threshold; extra cost and up to 25 s delay); a read-only post_tool_call hook notes turns with MEDIA: lines so attachments from other plugins are kept; reports stay in process memory on local surfaces only. Disclosure — no network calls of its own; mode report (default) only logs scores; opt-in mode enforce sends each flagged final answer (with finding excerpts) to the user's configured model via ctx.llm (1–3 calls, up to 25 s delay) and replaces the delivered and stored answer when its preservation checks pass, which do not prove meaning is unchanged; reads plugins.hook_callback_timeout via a private read-only Hermes helper; eval/ dev scripts ship in the tree but are never loaded.CommunitytoolsTakeshiTGALjp-addressSplits one Japanese address into prefecture, city, town and the remainder with address_split, built on Geolonia's address data (CC BY 4.0, from the Digital Agency address base registry). Give it a Japanese postal address as written, such as 東京都千代田区霞が関2-1-2, and it returns the prefecture, city and town as separate fields. Disclosure — Each call sends at most two HTTPS GET requests, with no API key, to japanese-addresses-v2.geoloniamaps.com or the JP_ADDRESS_BASE_URL you set (plain http only for 127.0.0.1 and localhost). The matched prefecture and municipality names go into the URL path; the house number, the lot and the building name are not sent. JP_ADDRESS_BASE_URL is read for the active profile on each call, and an HTTP proxy set in the environment is not used. The tool is on for every surface, including gateways, and asks for no approval: anyone you allow on your Hermes gateway can call it. 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. It writes no files and creates no cron job. A point can be coarser than the town and is not a rooftop geocode, and an address it cannot place for certain comes back as ambiguous or at the municipality instead of a guess. The publisher may change or stop the free host and suggests self-hosting for commercial use. Called from Hermes with five models in a small sample of 18 sessions (see CHANGELOG.md).CommunitytoolsTakeshiTGALjp-chartsBar, line, stacked and 100% band charts as phone-sized PNGs for chat replies and reports, with Japanese text, 万/億 units and a required unit and source line. Following Japanese chart conventions, it turns a table typed in chat or read from a CSV or JSON file into a bar or line graph ready to post. Every bar, point, label and tick is read back from the finished figure and compared with the parsed data before the image is returned. Disclosure — no network calls at run time; reads a local .csv/.tsv/.txt/.json only when given its path (never hidden files or the Hermes home); writes PNGs to the Hermes image cache; a transform_llm_output hook adds a forgotten MEDIA line to replies on chat platforms and cron deliveries (setting auto_attach, on by default). The tools are on for every surface, including gateways, and ask for no approval: anyone you allow on your Hermes gateway can call them. Turn a surface off with hermes tools. Installing the plugin also installs the Python packages matplotlib and matplotlib-fontja from PyPI. The PNGs are written to <HERMES_HOME>/cache/images. Removing the plugin deletes its folder only; the PNGs and those two packages stay. A transform_tool_result hook remembers value and unit pairs in the process for that session and does not change the tool result. A pre_tool_call hook blocks chart_render when a plotted number was already returned in the same session with a different unit string, including a comma-grouped number such as 1,234, and no PNG is written. pre_llm_call adds one paragraph only on a chart question, and adds nothing on other turns. A chart question is 図, グラフ, チャート, or the word chart, or chart_render, chart_validate, or chart_types called in the previous turn. Company, filing, and unrelated questions do not add it. The paragraph says to call chart_render only with numbers and the unit copied from a tool result, that 1,234 is the same integer as 1234, that a different unit blocks the chart, and not to say a chart was drawn or write 取得しました when no number was returned. transform_llm_output does not replace or delete the model's sentences. It appends one line when this turn's tool record has no figure and an area tool was called, or some tool was called on a company or filing question. The line is: Tool record: this turn returned no company, filing, address, subsidy, statute, or chart figure, so a number or a fetch claim in this reply is not from a tool result. chart_types and chart_validate are not a figure. A turn whose only area tool is address_split is left unchanged by this hook.CommunitytoolsTakeshiTGALjp-chatworkTalk to Hermes from Chatwork rooms, built on the Chatwork API: put Hermes in a Chatwork room and ask it with [To:] or a reply, like a colleague; the answer comes back as a Chatwork reply. Polls the Chatwork API (no public URL or webhook), never answers a message twice across restarts, and while CHATWORK_ALLOWED_USERS is unset only the token's own account can use Hermes commands beyond /help, /whoami, /new and /reset or answer approval prompts. Disclosure: talks only to api.chatwork.com with your own API token; polls every 5 s by default while the gateway runs; stores read positions and the ids of its posted messages in <HERMES_HOME>/plugin-data/jp-chatwork/state.json. Disclosure — while CHATWORK_ALLOWED_USERS is unset everyone in the rooms listed in CHATWORK_ROOMS (external guests included) can prompt the agent and use its enabled tools, with Hermes commands and approval answers kept to the token's own account; talks only to api.chatwork.com with your API token, polling every 5 s while the gateway runs; stores read positions and posted message ids in <HERMES_HOME>/plugin-data/jp-chatwork/state.json; logs each asker's name and account id.CommunityplatformTakeshiTGALjp-corporateJapanese corporate lookup (法人照会): find or verify a company by name or corporate number and read its gBizINFO record (basic info, subsidies, government contracts, awards, certifications, financials, patents, workplace data). Disclosure — sends the company names, corporate numbers and prefectures you look up to api.info.gbiz.go.jp (METI gBizINFO) with your own GBIZINFO_API_TOKEN in a request header; no other host, nothing written to disk.CommunitytoolsTakeshiTGALjp-edinetJapanese filings on the EDINET API v2. It finds a Japanese company's annual securities report (yuho) and other financial reports filed on EDINET, and reads headline figures such as revenue and total assets from a filing. Disclosure — talks only to api.edinet-fsa.go.jp over HTTPS, and your EDINET_API_KEY rides in the URL as Subscription-Key. Each call reads EDINET_API_KEY for the active profile, and an HTTP proxy set in the environment is not used. The edinet toolset is on for every platform, including gateways, so anyone a gateway admits can call these tools with your key. With CHATWORK_ALLOWED_USERS unset, everyone in CHATWORK_ROOMS can call them. Turn the toolset 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. There is no daily cap. The agent can call the three tools itself. A cron you add stays after uninstall until you remove it in Hermes. This plugin starts no child process and is not a sandbox. Search sends EDINET the filing date, and a download sends the document id and its type. Company name, securities code, EDINET code, and corporate number are filtered on your machine. found: false only means the figure is missing from the consolidated current-year rows the plugin reads, not that the document has no number. A past day's filing list can change. Lists, saved files, and a key fingerprint, not the key, stay at <HERMES_HOME>/plugin-data/jp-edinet per profile after uninstall. Delete that directory to remove them. The plugin relies on Hermes internals for the write check and the data folder. If an update moves those parts, the tools refuse and do not call EDINET. Test files are not loaded at startup.CommunitytoolsTakeshiTGALjp-egov-lawJapanese laws for Hermes Agent, built on the e-Gov Law API: find a law by name, abbreviation or phrase, read one article as in force today or on a given date, and check amendment history and enforcement dates, with the source credit e-Gov's terms ask for. Ask for one Japanese law article, such as Article 32 of the Labor Standards Act, and it returns the official law text with the law number and the date that version took effect. Disclosure — sends the law names, article numbers, dates and search phrases you look up to laws.e-gov.go.jp (public API, no key); no other host, nothing written to disk. Registers blueprint jp-egov-law:weekly-amendments and does not create a cron job. When you create a job from that blueprint, one model turn runs once a week (default Mon 09:00, Hermes tz or the host clock if unset, not converted to Japan). A turn that calls a tool is at least two model requests, and there is no daily cap. The agent can schedule it, and scheduling it twice creates two jobs. Silence is not "no amendment". Uninstall leaves the cron until hermes cron remove. Tools stay on every platform, including gateways (a guest can call them; hermes tools disables one). 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. v0.21.4 and v0.21.5 load the tools and skip the blueprint.CommunitytoolsTakeshiTGALjp-estatJapanese government statistics from the e-Stat API: search tables and fetch figures such as population, households, wages, and prices, with estat_search_tables, estat_table_info, and estat_get_data. Disclosure — It needs a free e-Stat application ID, set as ESTAT_APP_ID in the .env of each profile. Each call sends your search words and table selections to api.e-stat.go.jp and puts ESTAT_APP_ID in the request URL. The ID is read for the active profile on each call. An HTTP proxy set in the environment is not used, and no other host is called. Nothing is written to disk, and this plugin creates no cron job. The tools are on for every surface, including gateways, so anyone you allow there can call them with your ID. 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.CommunitytoolsTakeshiTGALjp-kokkaiEach watch run costs 0 tokens, and the unmanned run holds no tools. Posts new Diet meeting hits as metadata and the official meeting URL, with kokkai_search, kokkai_speech, and kokkai_watch. Disclosure — Talks only to kokkai.ndl.go.jp over HTTPS GET with no API key. kokkai_speech requests speech text and returns a short excerpt. Speech text is not stored. The tools are on for every surface, including gateways, and the plugin has no user list of its own: anyone you allow on your Hermes gateway, and a guest in a room with an empty allowlist, can search, read a speech excerpt, add a watch and approve it. Turn a surface off with hermes tools. kokkai_watch add writes HERMES_HOME/scripts/jp-kokkai-watch.py and creates one cron job that does not call a model, once a day, at the hour you pick in Hermes's own timezone. Each run costs 0 tokens and has no daily cap. Empty script output sends nothing. The job and the script stay after uninstall until you run hermes cron remove, with -p and the profile name when the profile is not default. Adding or removing a watch returns one pre_tool_call approve line, as does a repeat add that switches the saved job. Hermes shows it. An unchanged repeat add returns none. yolo and approvals off skip the prompt when a person is present. A cron job, hermes -q, and a separate plugin process cannot add or remove a watch even after always. A webhook or API-server turn inside the gateway is refused by Hermes unless "always" was already given for that exact add plan. plugins.isolation: host still blocks add and remove. Answering "always" on add covers only the same add plan. That choice adds one plugin_rule:kokkai_watch: line to config.yaml, and the line stays after the plugin is removed. A different add plan asks again. Remove builds a new rule key on every call, so answering always on remove does not cover the next remove, including the call that deletes the cron job. While the read-meetings skill is enabled, Hermes adds one line to the skill index of every session, including a session whose tools are turned off. The scheduled script does not run inside plugins.isolation: host, so that setting does not stop the watch. kokkai_watch run still cannot save seen speech IDs under plugins.isolation: host and says so on every run of the tool. The cron mark is cron.execution_identity.current_cron_execution (Hermes 0.21.6). The daily job is created with the public hermes cron command using --no-agent and --script. hermes cron create on 0.21.6 cannot pin a toolset, which does not matter because the unmanned run holds no tools. Running add again asks, then switches a model job onto the script and clears its prompt. A job made by 0.1.x keeps its model turn until the next add. An update can stop the watch if the cron mark or that command moves. Each request waits up to 30 seconds for data. The script timeout is 3600 seconds unless it was changed. State (your watch words, seen speech IDs and the job id) stays in plugin-data/jp-kokkai after uninstall. Tested with a stand-in server on Hermes 0.22.2, not in a live chat.CommunitytoolsTakeshiTGALjp-reinfolibQuarterly MLIT prices for one city, via reinfolib_quarter. Use it for Japanese real estate and property prices in one city: it returns the number of recorded sales, the median trade price and the first 20 rows for a quarter. These are transaction prices, not the official land prices published as 地価公示. Disclosure — sends your REINFOLIB_API_KEY as Ocp-Apim-Subscription-Key to www.reinfolib.mlit.go.jp (HTTPS, XIT001) or the host of REINFOLIB_BASE_URL. Plain http is refused except 127.0.0.1 and localhost, where the key is not encrypted. On for every surface, including gateways, so anyone you allow can call it with your key, with no approval prompt, including unattended cron, yolo, and approvals off. hermes tools does not stop /jp-reinfolib. Stop the slash command with allow_admin_from, user_allowed_commands, group_user_allowed_commands, or by disabling the plugin. After a GET returns, this process waits 1 second before the next, each GET stops after 30 seconds with no bytes, and there is no retry or daily cap. Blueprint jp-reinfolib:weekly-city-check is once a week (default Monday 09:00) and calls only this tool after you schedule it. This plugin does not create a cron job or write a file. A job you schedule stays until hermes cron remove and may include your MCP servers. HTTP 404 means no data for that request, not zero rows and not unchanged prices. A scheduled run is one model turn. A turn that calls the tool is at least two model requests. An empty slash allow list does not stop this tool. Registered only if register_automation_blueprint exists; else skip. A no-data week may be [SILENT] and not arrive. Data weeks are one short message. 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. 「このサービスは、国土交通省の不動産情報ライブラリのAPI機能を使用していますが、提供情報の最新性、正確性、完全性等が保証されたものではありません」CommunitytoolsTakeshiTGALklipper-print-watchEach watch run costs 0 tokens, and the unmanned run holds no tools. Built on the Moonraker HTTP API. Cron reports klippy_shutdown, complete, error, paused (after printing), cancelled, stalled. Disclosure — Talks to the one Moonraker URL you set. Over plain http on a LAN, MOONRAKER_API_KEY is sent unencrypted. While a person is in the session, pause, resume and cancel return one pre_tool_call approve line. Hermes shows it. yolo and approvals off skip the prompt. Choosing always adds one config.yaml command_allowlist line. For pause and resume, answering "always" covers only the same action at the same Moonraker origin, and only while a person is in the session. Cancel asks every time. Its rule_key changes on each call, so a saved always line does not approve the next cancel. It does not move the printer in cron, hermes -q, webhook, or plugins.isolation: host. cron, hermes -q, and unattended sessions default to deny, and this plugin also refuses the move after always. plugins.isolation: host still refuses the move. The plugin has no user list of its own: anyone you allow on your Hermes gateway can request a move and approve it. A different action or origin asks again. 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. Tools are on for every surface, including gateways. Turn a surface off with hermes tools. schedule writes HERMES_HOME/scripts/klipper-print-watch.py and creates the job with hermes cron create --no-agent --script. Empty stdout sends nothing. Running schedule again switches an existing job with hermes cron edit --script --no-agent and clears the stored prompt. A job made by 0.1.x keeps its model turn until that next schedule. On that leftover turn, pre_tool_call allows klipper_watch, tool_search, tool_describe, and tool_call, and blocks every other tool name. A deferred tool named inside tool_call is checked under that inner name. Pause, resume, and cancel stay refused on it. Removing the plugin leaves the script job. Run unschedule first, or hermes cron remove after. The scheduled script does not call the vision model. vision_check, off by default, still applies when klipper_watch itself runs on a cron turn, and it does not cancel the print. The plugin host cannot run that tool watch. The scheduled script is started by Hermes cron, so plugins.isolation: host does not stop it. Not tested on real hardware.CommunitytoolsTakeshiTGALkubernetesWrite one namespace in cluster.json to approve the scope, then use four reads: list pods, get one pod, list events, and read logs. Kubernetes is a registered trademark of The Linux Foundation. kubernetes-mcp-server 0.0.68 is the GitHub release binary. The plugin downloads kubernetes-mcp-server-<os>-<arch> from https://github.com/containers/kubernetes-mcp-server/releases/download/v0.0.68/ into the plugin data directory, checks the sha256 against constants taken from that release's GitHub asset digest, and starts that file. MCP initialize and tools/list are answered before that download. A partial download is kept and continued with HTTP Range. A mismatch, including a file that was already there, is refused. read_only is true, toolsets stay core, and only pods_list_in_namespace, pods_get, events_list, and pods_log are enabled. Helm is not offered. Secret, ConfigMap, and ServiceAccount are denied. configuration_view is not listed. prod, production, live, and prd names are refused unless allow_production is true. Public and link-local hosts are always refused. The host must be local, and DNS is not resolved. readOnlyHint is true, so no approval card is shown. Before the call, name the namespace, the object, and that it only reads, because status, events, and logs reach the model. This plugin does not create a cron job. Disclosure — reads the kubeconfig you name in cluster.json (read-only) and sends its token only to that kubeconfig's API host (plain http sends it unencrypted); on the first tool call downloads the kubernetes-mcp-server 0.0.68 GitHub release binary (~90 MB) into the plugin data directory, refuses it unless its sha256 matches the pinned release digest, and runs it as a subprocess (a file swap between the check and the start is not fully excluded); pod status, events and logs reach the model, with password-like env values and last-applied-configuration redacted; no HTTP proxy is used; gateway users can call these read tools with that kubeconfig; stop with hermes plugins disable kubernetes or hermes tools disable mcp-kubernetes.CommunitytoolsTakeshiTGALmodel-drift-watchScheduled check that the model you use in Hermes has not quietly got worse: 34 fixed, exactly graded questions (reasoning, instruction following, Japanese, plus your own) run through Hermes cron, each run tested against the same model's own baseline with an exact per-question test and a same-day confirmation run, and a message only for a confirmed drop, a changed served model or a failed measurement. Not yet tried against a real LLM API (checked with a local mock model and real Hermes cron). Disclosure — each check calls your own model through ctx.llm on your bill, capped per check by the plugin (default 120,000 tokens / $0.50, no daily cap; the agent can start checks itself via the model_drift tool, and the scheduled agent turn is extra); price lookup goes through Hermes's pricing code (may fetch OpenRouter/models.dev prices); 10 optional code questions, off by default, run model-written Python in a limited child process (not a hostile-code sandbox) including in unattended cron runs when enabled; `schedule` creates one Hermes cron job that survives plugin removal (run `unschedule` first); writes run history to plugin-data/model-drift-watch; no telemetry.CommunityautomationTakeshiTGALprint-job-watchEach watch run costs 0 tokens, and the unmanned run holds no tools. Reads one OctoPrint printer. A cron watch reports printer_disconnected (not a pause); error; complete after Printing, Printing from SD, Pausing, Paused, Resuming, or Finishing; paused after Printing, Printing from SD, Pausing, or Resuming; cancelled; and stalled. This plugin can be used with OctoPrint. OctoPrint is a registered trademark owned by Gina Häußge (https://octoprint.org). Disclosure — Talks to the one OctoPrint origin you set in OCTOPRINT_URL with your OCTOPRINT_API_KEY, plus an optional webcam still from the same host, fetched without the key when it is on another port. Over plain http, that key is sent unencrypted. Pause, resume, and cancel return one pre_tool_call approve line. Hermes shows it. yolo and approvals off skip the prompt while a person is present. cron, hermes -q, webhook, and unattended sessions refuse the move, including after always. plugins.isolation: host still refuses the move. The plugin has no user list of its own: anyone you allow on your Hermes gateway can ask for a move and approve it. Running hermes tools does not remove the slash command. Answering "always" on pause or resume adds a permanent allowlist line to config.yaml, so a later pause or resume of that same action at the same origin runs without asking while a person is present, until you remove that line. Each cancel asks again. Answering always on cancel does not cover the next cancel. cron, hermes -q, and webhook do not use that line. 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 print-job-watch schedule writes HERMES_HOME/scripts/print-job-watch.py and creates one cron job with hermes cron create --no-agent --script. This is the same when HERMES_HOME is HOME/.hermes and when HERMES_HOME points somewhere else. unschedule removes that job and that script in both places. The job does not call a model. Empty script output sends nothing. The script binds the profile secret scope and then reads the URL and API key, and it does not print the key. The default schedule is every 5 minutes. At that default it is 288 runs a day with no daily cap. Running schedule again switches an existing job in place with hermes cron edit --script --no-agent. A job made by 0.1.x keeps its model turn until the next schedule. The create command cannot set a tool list, which does not matter because the unmanned run holds no tools. Under plugins.isolation: host, the print_job_watch tool cannot watch the printer. Set plugins.isolation to in_process. The scheduled script is not that form, so that setting does not stop the watch. The job and the script stay after uninstall until you run unschedule, which removes both. Not tested on a physical printer, with access control off, or with the stock webcam. A request that sent the API key is not followed on a redirect, including one that stays on the same origin.CommunitytoolsTakeshiTGALradio-dm-gatewayAnswers an allowlisted direct message on your Meshtastic® radio. Disclosure — talks only to the MESHTASTIC_URL you set, over plain tcp, so channel keys and text travel unencrypted. An empty MESHTASTIC_ALLOWED_NODES answers nobody. A channel packet or a direct message without pkiEncrypted is never answered, because a channel key can forge a sender. Allowlisted nodes can prompt the agent, use tools until hermes tools turns them off, and approve one command at a time. An approval question is sent only when its line shows exactly the command /approve will run. A line that still goes out after that send was declined does not let /approve run it, and the next approval is declined once. Each direct message runs an agent turn on your model, and the agent cannot send on its own. No cron job comes with it; one the agent makes stays until hermes cron remove. Hermes main does not load this platform when plugins run in their own process. Node ids, sizes and times go to nodes.json in this profile's plugin-data and stay after uninstall. The message text is not stored. Not tried on a physical radio. Meshtastic® is a registered trademark of Meshtastic LLC. This site is not affiliated with or endorsed by the Meshtastic project.CommunityplatformTakeshiTGALscarscar keeps the tool-call shape you denied on a Hermes approval card and stops that shape before it runs. scar does not call a model. hermes chat --cli stores only the choice id deny. The shape is the tool, the argument keys that held an rm command, and the danger tokens, including an rm inside a shell -c body and an rm after env flags, so rm -rf and rm -fr are one scar. Only a tool that has a scar is compared, and only under the argument keys that scar kept, so read_file, write_file, web_search, a sentence, and a touch of nine files are not stopped. A bare rm that dropped a token is not this scar. A path is not part of the match. The block line names the scar, the weekday, the numeric offset, and the words you pressed deny, and it tells the agent not to paraphrase the command and not to run it again. Disclosure — A deny is written only under this profile plugin-data/scar/ledger.json after secret-shaped text is removed by the plugin patterns and then by the Hermes redactor. A secret shape that neither knows can stay in the preview. The ledger is read on every foreign tool call, up to 800KB and 200 scars. An unreadable file stops only a terminal command that carries an rm danger token, and it is left in place. On a tool that has a scar, a kept value over 200,000 characters, a shell nested past 8 levels, or more than 8 wrapper words is not compared and is not run. The block applies on every surface, including yolo, cron, the gateway, and approvals off, once a scar exists. A scar stays until scar_forget removes it or the plugin is disabled. scar_forget asks on the Hermes approval card when it fits in 7 lines of 63 columns. A longer question is not sent, and the scar stays. Each forget asks again. Its rule key changes on every call, so always does not cover the next forget. Yolo and approvals off skip that card when it fits, so that scar can be forgotten with no second prompt. Cron, a single query, a webhook, msgraph_webhook, api_server, and a plugin host do not forget a scar: the hook blocks scar_forget before Hermes's gate, including after always and including when yolo is on. Hermes checks a permanent allowlist before its own cron deny. Those sessions do not store a new scar. scar_list returns each scar, including the redacted preview, on any platform that can call the tool. hermes tools disable scar --platform <platform> hides the tools on that platform and does not stop the block. Disable the plugin to stop the block. A running gateway keeps the hook until it restarts. The plugin registers scar:keep-a-scar. A skills-tool session adds one system prompt skills index line. -t terminal,scar adds none. Nothing is sent off the computer. Yolo and approvals off skip the Hermes prompt, and this plugin does not add a second prompt. Setting isolation to host blocks new scars. This plugin creates no cron job. The install scan is safe, with 15 medium findings, all in the test tree.CommunitytoolsTakeshiTGALswitchbot-controlSwitchBot OpenAPI v1.1, personal use. The watch does not report Plug Mini on or off. A command can still turn a Plug Mini on or off. The published card sentence ("No Plug Mini on/off.") does not describe a command on this pin. Locks off unless enabled. When safety_devices is on, each lock or door command asks again. setPosition only Curtain/Curtain3 (0=open). Disclosure — Controls real devices through the SwitchBot cloud API (api.switch-bot.com) using your SWITCHBOT_TOKEN and SWITCHBOT_SECRET. Each call reads SWITCHBOT_TOKEN and SWITCHBOT_SECRET for the active profile, and an HTTP proxy set in the environment is not used. On this pin, yolo and approvals off skip the prompt only when a person can answer. A cron job, hermes -q, and a webhook cannot send a command, even after always. Each watch run costs 0 tokens. The unmanned run holds no tools. schedule writes a script under HERMES_HOME/scripts and creates the job with hermes cron create --no-agent --script. Empty stdout sends nothing. A 0.1.x job stays a model turn until the next schedule. That turn allows switchbot_devices, switchbot_watch, tool_search, tool_describe, and tool_call, and blocks every other tool. The script drops every other profile .env key. If hermes cron fails, unschedule still removes the script and says the job was not removed. hermes cron create has no per-job tool list, which does not matter here because the unmanned run holds no tools. switchbot_command is a separate toolset. A cron turn hides it and refuses it, even after always. The published lines ("Every command asks for Hermes approval and is refused under cron, yolo, approvals off and unattended sessions."), (Answering "always" adds an unused line to config.yaml each time.), and ("The optional watch is a cron job (a model turn every 5 minutes by default) that stays after uninstall until you run unschedule.") are not this pin. Lock and door devices stay refused unless you turn on safety_devices. When they are enabled, each of those commands asks again, so always does not cover the next one. The plugin has no user list of its own: anyone you allow on your Hermes gateway can request a command and approve it. Tools are on for every surface, including gateways. Turn a toolset off per surface with hermes tools. On this pin, answering always in an interactive chat covers the same device id, command, and parameter, and it does not send from cron, hermes -q, or a webhook. The optional watch is a no-agent cron script (every 5 minutes by default, 0 tokens a run) that stays after uninstall. While the plugin is installed, remove that job with hermes switchbot-control unschedule. After uninstall that command is gone, so remove the job with hermes cron remove. Not tested on real devices. Saved files are under <HERMES_HOME>/plugin-data/switchbot-control for the active profile. 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.CommunitytoolsTakeshiTGALterraform-driftCompare pinned Terraform provider and module versions with the public registry. Disclosure — tools are on for every Hermes surface, including the gateway. Stop a surface with hermes tools disable --platform <name> terraform-drift, or the plugin with hermes plugins disable terraform-drift. Nothing is written under plugin-data/terraform-drift, and there is no key. Only the directory you name is read, and only .tf, .tf.json, and .terraform.lock.hcl. Symlinks and .. are refused, and .env, tfvars, .terraform, backend values, and hashes are not returned. The provider pin is the lock version, not the required_providers constraint. A module pin is an exact version only. GET calls only registry.terraform.io and, for a github.com source, raw.githubusercontent.com CHANGELOG.md. Redirects and proxy variables are ignored. A timeout or failed read leaves latest empty and is not called current. Semver orders versions, so 1.10.0 is newer than 1.9.0. The digest text is not sent and no cron job is created. known keeps newer versions, and omitting it does not call rows new today. There is no approval card. Before the call, name the directory and say there is no init, plan, apply, or state write. Cron, yolo, and approvals off can still run this read. MIT, no daily cap, requires Hermes >=0.21.4.CommunitytoolsTakeshiTGALumami-digestEach morning one letter arrives with yesterday's pageviews, visitors, day-over-day change, the top five pages by pageviews, and a surge flag from the Umami instance you already run, with no model. Umami 3.4.1 returns expanded paths 500 at a time in visitor order. The letter sends limit 500 and walks offset until a short page, or 20 pages, then ranks by pageviews. A day that hits the cap says the five are the top 5 among the first N paths. Disclosure — GET only to the origin in UMAMI_URL with Authorization Bearer UMAMI_API_KEY; plain http only to loopback, otherwise https; the plugin downloads nothing at runtime; umami_digest is read-only and asks for no approval; anyone you allow on a gateway can call it; turn a surface off with hermes tools; hermes umami-digest schedule writes a no-agent cron script that costs 0 tokens with no daily cap; empty stdout sends nothing; run unschedule before removal; a leftover job stops with hermes cron remove <id>; after hermes plugins remove, hermes cron remove <id> leaves scripts/umami-digest.py and you delete that file yourself; state stays in plugin-data/umami-digest; schedule uses hermes_constants.get_hermes_home, so an update can stop it.Communitytools
GitHub profile














