Skip to main content
Glama

windy-word-mcp

An MCP (Model Context Protocol) server that turns Windy Word — the voice-to-text desktop app — into an agent-controllable platform. 115 tools spanning paste / hotkeys / transcription / recording verbs / audio devices / install / diagnostics / archive / voice clones / translation / documents / system / window / account + billing / TTS / settings-undo / music-ducking / bulk-clone-ingest / soul-file export.

Windy Word ships a local HTTP control server on 127.0.0.1:18765. This package is a schema-validated MCP wrapper around it. Agents call MCP tools; the server forwards to Windy Word over localhost; everything happens on the user's machine (no network round-trips for state queries).

npm mcp registry


Install

For most users:

claude mcp add windy-word --command "npx" --args "-y" "windy-word-mcp"

Or in ~/.claude.json / ~/.config/claude/claude_desktop_config.json:

{
  "mcpServers": {
    "windy-word": {
      "command": "npx",
      "args": ["-y", "windy-word-mcp"]
    }
  }
}

Local-dev (cloned repo):

git clone https://github.com/sneakyfree/windy-word-mcp && cd windy-word-mcp
npm install
claude mcp add windy-word --command "node" --args "$(pwd)/bin/windy-word-mcp.js"

Related MCP server: computer-use-windows

Requirements

  • Node.js ≥ 18

  • Windy Word running locally (Electron app — the HTTP control server binds automatically at startup)

Environment overrides

Variable

Default

Purpose

WINDY_WORD_MCP_HOST

127.0.0.1

Override the control-server host

WINDY_WORD_MCP_PORT

18765

Override the control-server port

WINDY_WORD_MCP_TIMEOUT_MS

5000

Default per-request timeout (the install + transcribe tools override this internally for long ops)


Tool catalog (115 tools, 22 categories)

Regenerate this section's tool count any time with npm run test:list-tools (node scripts/list-tools.js), which enumerates the live server's registered tools.

Platform (1)

Tool

What it does

get_platform

OS, arch, distro, display server, desktop env, xdotool/ydotool presence

Paste strategies (9)

12 platform-specific paste backends (macOS / Windows / Linux X11 / Linux Wayland) with capability metadata, hotkey-collision auto-detection, and a verified fallback chain.

Tool

What it does

list_paste_strategies

All 12 strategies + per-strategy availability + resolved chain + collision flag

get_active_paste_strategy

Current selection + resolved chain

set_paste_strategy

Switch active (or "auto")

test_paste_strategy

Fire a specific strategy at the focused window (injects text!)

auto_paste

Run the auto-execute chain with explicit candidates

run_paste_injection_test

Real end-to-end test — spawns Tk target, fires paste, diffs result

get_paste_history / clear_paste_history

In-memory audit log

get_paste_target

XWayland vs Wayland-native detection

Hotkeys (3)

Tool

What it does

list_hotkeys

Current bindings + available actions + reserved combos

set_hotkey

Rebind a global shortcut (Electron accelerator format)

reset_hotkeys

Restore all global shortcuts to catalog defaults + re-register

Transcription engine (3)

Tool

What it does

list_models

Whisper model catalog + current + WindyTune ladder

set_model

Switch (hot-reloads Python engine over WebSocket)

get_windytune_state

Auto-tune state, ladder, recent-timing history

Recording verbs (8)

Tool

What it does

start_recording

Begin a mode-aware recording (batch / streaming / API engine)

stop_recording

End the recording → trigger transcription + paste pipeline

cancel_recording

Abort an in-flight recording without saving

get_recording_state

isRecording + pythonEngineRunning + mode snapshot

toggle_recording

Start/stop (same effect as the global hotkey)

paste_transcript

Re-paste the most recent transcript

set_language

Set the Whisper transcription language (ISO 639-1)

set_panel_visibility

Configure a bottom panel row (always / hover / off)

Audio devices (1)

Tool

What it does

list_audio_devices

Enumerate microphones available to Windy Word

install_dependency family (8)

Agent installs missing system tools (Linux/macOS/Windows package managers). Linux uses pkexec; macOS uses user-scope brew; Windows uses winget. Whitelist-only: wtype, ydotool, wl-clipboard, xdotool, cliclick, ffmpeg.

Tool

What it does

list_installable_dependencies

What's installable on this machine right now

install_dependency

Synchronous install (whitelist + dryRun)

install_dependency_async

Fire-and-poll variant — returns jobId

get_install_status

Poll a job

list_install_jobs

All in-memory jobs

get_install_history / clear_install_history

Audit log

setup_install_polkit_rule

Install/remove the Linux polkit auto-approve rule

Polkit setup (Linux): setup_install_polkit_rule installs /etc/polkit-1/rules.d/49-windy-install-deps.rules once per machine to make installs prompt-free. See the rule snippet.

Windy Doctor — local + cloud (3)

13 local rule-based checks covering paste-stack tooling, /dev/uinput permissions, polkit rule presence (with EACCES-tolerant detection), Python engine liveness, Mutter hotkey collision, macOS Accessibility + Microphone permissions, Homebrew presence, cliclick presence.

Tool

What it does

run_diagnostics

Run the local battery; return structured findings + actionable remediations

list_diagnostic_checks

What checks exist + which apply to this platform

cloud_diagnose

LLM-augment via the windy-fix-me Cloudflare Worker (Claude Haiku 4.5 via OpenRouter)

Settings catalog (5) — typed/validated agent surface

49 typed catalog entries with tags (archive, voice-clone, transcription, paste, hotkey, ui, geometry, lifecycle, license). Validation runs server-side before any write.

Tool

What it does

list_settings

Catalog + current live values + available tags. Supports ?tag=X filter

describe_setting

Single entry + current value

set_setting

Validate + apply + return side effects

get_config

Full electron-store dump (low-level escape hatch)

set_config

Patch by dotted path, no validation (low-level escape hatch)

Settings undo (2)

Tool

What it does

undo_last_setting_change

Revert the most recent catalog-validated setting change this session

list_recent_setting_changes

List session setting changes, oldest first

Archive surface (8) — opaque-id session catalog

Agents work with opaque arc:YYYY-MM-DD:HHMMSS.md ids, never filesystem paths. Path-confined deletes.

Tool

What it does

list_archive_entries

List recordings with transcripts + metadata

get_archive_stats

totalFiles/sizeMB/days/words/sessions (30s server-side cache)

read_archive_entry

Base64 audio or video for an entry

delete_archive_entry

Tear down md + audio + video

open_archive_folder

Pop OS file manager at the archive root

search_archives

Full-text substring search across every transcript

archives_by_date_range

Sessions whose start timestamp falls within [from, to]

bulk_delete_archives

Tear down multiple entries in one call

Voice clones (10 — Phase 1 + Phase 2)

Tool

What it does

list_voice_clones

All clones + activeId (no audio bytes)

get_active_voice_clone

Currently-active clone (or null)

set_active_voice_clone

Switch active (or deactivate with null)

create_voice_clone_from_path

Create from an audio file on disk (path-confined copy)

delete_voice_clone

Irreversible teardown

preview_voice_clone

Metadata + optional base64 audio

list_clone_bundles

Training-bundle catalog

submit_voice_clone_to_cloud

Submit a local clone to Windy Clone for ElevenLabs training

get_cloud_clone_order_status

Poll Windy Clone for ElevenLabs training progress

bulk_ingest_to_clone

Copy a batch of audio files into the voice-samples store as clones

Bulk clone ingest + watchers (3)

Tool

What it does

scan_folder_for_media

Scan a folder (recursive) for audio + video files

watch_folder_for_recordings

Start/stop a folder watcher that auto-ingests new audio

list_clone_watchers

List active folder watchers

Translation (5)

Tool

What it does

translate_text

TM-cache-first → Groq/OpenAI fallback (auto-populates cache)

lookup_translation_memory

Local cache query, no API

save_translation_memory

Manual upsert

get_translation_memory_stats

Total / topPairs / recentEntries

clear_translation_memory

Wipe (destructive)

Documents (3)

Tool

What it does

extract_document_text

Path-based, supports txt/md/csv/html/pdf/docx (5MB default, 20MB cap)

save_text_file

Path-based write; refuses overwrite unless flagged

transcribe_audio_file

Any audio file → Whisper transcript via warm WebSocket engine (~5× real-time on CPU)

Sound effects (7)

Tool

What it does

get_sound_effect_state

Per-hook-stage enabled/volume settings (6 lifecycle stages)

set_sound_hook

Configure a single sound-effect hook stage

set_active_sound_pack

Switch the active sound pack

set_master_sfx_volume

Set master SFX volume (0-100)

set_sound_effect_mode

Switch EffectsEngine mode (silent / classic / surprise / custom / pack)

list_sound_effect_packs

List known sound-effect packs

get_widget_state

Mini-widget (tornado) runtime state via the renderer bridge

System utilities (3) + Forma Animae (1)

Tool

What it does

detect_hardware

RAM, CPU, GPU (nvidia-smi + Apple Silicon detect), disk free

get_autostart_status

Is Windy Word configured to launch on login

set_autostart

Toggle login-item / .desktop entry

export_soul_file_to_path

Forma Animae: zip the whole archive (audio + video + transcripts + manifest) for the digital-twin pipeline

Window + app lifecycle (16)

Tool

What it does

get_window_state

Snapshot of maximized/minimized/focused/visible/fullScreen

minimize_window / maximize_window / unmaximize_window

Title-bar window controls

bring_window_to_front

Restore + show + raise (does not steal keyboard focus)

set_window_geometry

Set position + size in screen pixels (live + persisted)

set_video_fullscreen

Toggle native OS-level fullscreen

set_always_on_top

Keep the window above others

set_opacity

Set window opacity (0.1-1.0)

set_theme

dark / light / auto

set_font_size

UI zoom factor (70-150%)

show_hide_window

Cycle main → tornado → hidden → main

quick_translate

Open the Quick Translate mini-window

restart_app / quit_app

Relaunch / quit Windy Word (destructive)

App info + notifications (5)

Tool

What it does

get_version

Windy Word + Electron + Node versions

check_for_updates

Trigger electron-updater's update check

set_analytics_enabled

Opt in/out of anonymous usage analytics

open_url

Open an http/https URL or a Windy ecosystem scheme

send_notification

Show an OS-native notification

Account + billing (6)

Tool

What it does

get_my_plan

Signed-in identity + license tier

get_billing_history

Purchase / transaction history

get_billing_summary

Tier + lifetime spend + next renewal

open_upgrade_checkout

Open Stripe Checkout for an upgrade

open_billing_portal

Open the Stripe Customer Portal

logout_account

Sign the user out

TTS (3)

Tool

What it does

speak_text

Speak text aloud through the OS system TTS

stop_speaking

Silence in-flight TTS playback

list_tts_voices

List installed system TTS voices

Music ducking (2)

Tool

What it does

pause_other_audio

Pause music/media in other apps (Spotify, Apple Music, browsers, VLC)

resume_other_audio

Resume what pause_other_audio paused


Architecture

┌──────────────────────────┐
│  Agent (Claude Code etc) │
└──────────┬───────────────┘
           │ MCP over stdio
           ▼
┌─────────────────────────────────────────┐
│  windy-word-mcp (this package)          │
│  - 115 zod-validated tool schemas       │
│  - Per-tool timeout overrides           │
│  - Structured 4xx body pass-through     │
│  - "Windy Word not running" detection   │
└──────────┬──────────────────────────────┘
           │ HTTP localhost:18765
           ▼
┌─────────────────────────────────────────┐
│  Windy Word (Electron) — windy-pro repo │
│  - 49-entry settings catalog            │
│  - 13 Doctor checks                     │
│  - Paste-strategy registry (12 backends)│
│  - Whisper Python engine (WebSocket)    │
│  - Voice clone + archive on-disk state  │
└──────────┬──────────────────────────────┘
           │ HTTPS (only for cloud-diagnose)
           ▼
┌─────────────────────────────────────────┐
│  windy-fix-me CF Worker                 │
│  - SHARED_SECRET auth                   │
│  - 20 req/IP/min rate limit             │
│  - Claude Haiku 4.5 via OpenRouter      │
└─────────────────────────────────────────┘

Coverage

115 MCP tools now surface the Windy Word desktop app's agent-control surface — paste, hotkeys, transcription, recording verbs, audio devices, install/Doctor, archive, voice clones (Phase 1 + Phase 2 cloud training), translation, documents, sound effects, window + app lifecycle, account + billing, TTS, settings-undo, music-ducking, bulk-clone-ingest, and soul-file export. Internal renderer events that are not agent-callable RPCs by design are intentionally excluded.

Quality bar

scripts/stress-test.js exercises every safe tool, including:

  • Whitelist rejection at the MCP zod layer

  • Structured 4xx error pass-through for validation failures

  • Cross-OS rejection (cliclick on Linux, wtype on macOS)

  • Real paste injection round-trip (Tk capture + diff)

  • Concurrency burst (20 parallel get_platform calls)

  • Idempotent installs (alreadyInstalled detection)

67/67 passing at v1.0.0 release.

Known intermittent: run_paste_injection_test ~1-in-5 hits a Mutter focus-handoff race on Wayland+GNOME. Re-run is clean. Not a regression.

Sibling components

These are private repositories — the names are here so the architecture reads clearly, not as links.

  • windy-pro — the Electron app (Windy Word). Contains the control server, settings catalog, install registry, Doctor checks, paste strategies, archive scanner, voice-clone CRUD.

  • windy-fix-me — the cloud-relay Cloudflare Worker. Receives Doctor findings + platform context, returns LLM-augmented remediation.

This server is the public, supported interface to Windy Word. You do not need either of the above to use it — install from npm as shown at the top.

Version history

See CHANGELOG.md for the per-version details. Tool count progression:

v0.1.0  20    foundation
v0.2.0  24    install_dependency + polkit auto-approve
v0.3.0  27    settings catalog
v0.4.0  33    async install + Windy Doctor + cross-platform
v0.5.0  34    cloud_diagnose
v0.6.0  35    paste injection + tag filter
v0.7.0  41    voice clones Phase 1
v0.8.0  46    archive surface
v0.9.0  53    translation + documents
v0.10.0 56    utilities + OC5 macOS Doctor merge
v0.11.0 57    transcribe_audio_file
v0.12.0 60    soul-file export + voice-clone Phase 2 starters
v1.0.0  60    stable API surface declared
v1.5.0  95    Waves W1–W6: window/state, archive search, lifecycle, recording verbs, cloud submit
v1.6.0  104   account / billing / plan surface
v1.7.0  107   TTS round-trip
v1.8.0  109   settings undo + audit log
v1.9.0  111   music ducking
v1.10.0 115   bulk clone-ingest

License

MIT. See LICENSE.

Contributing

Bug reports + tool additions welcome. See PUBLISHING.md for the release recipe.

Available Tools

115 tools
archives_by_date_rangeA

Return archived sessions whose start timestamp falls within [from, to]. Either endpoint is optional — omit from for "since beginning", omit to for "until now". Sorted newest first. Use ISO 8601 (date or date+time, e.g. "2026-05-20" or "2026-05-20T18:00:00Z").

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoISO 8601 end of window. Inclusive.
fromNoISO 8601 start of window. Inclusive.
limitNoCap the returned entry count. Default 200.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses sorting order (newest first), endpoint optionality, and ISO 8601 format requirement. Missing mention of the limit parameter's default (200) and behavior when limit is omitted, though schema covers limit description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose. No wasted words. Essential details about optionality, sorting, and format are compactly presented.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description adequately conveys what is returned (archived sessions) and the filtering criteria. Could mention the limit default explicitly, but overall complete for a simple list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, baseline 3. Description adds value by explaining inclusiveness of endpoints, optionality, and providing an ISO 8601 format example. This enriches the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb and resource: 'Return archived sessions' filtered by date range. However, it does not differentiate from sibling tools like 'list_archive_entries' or 'search_archives' which also list archives, missing an opportunity to clarify uniqueness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Describes when to use (when filtering by date range) with optional endpoints, but no guidance on when not to use or alternatives among siblings like 'search_archives' for more complex queries. Usage context is implied but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auto_pasteA

Execute the auto-paste flow against an explicit candidate chain. Returns the winning strategy + per-strategy diagnostic data. Useful for stress-testing fallback behavior. WARNING: injects text into the focused window.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoText to paste (defaults to "wtest").
candidatesNoOrdered list of strategies to try. Defaults to defaultFallbackChain().

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The warning 'injects text into the focused window' discloses a key side effect. Since no annotations are provided, this description compensates well by highlighting destructive behavior and the return of diagnostic data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with five well-structured sentences. It front-loads the core purpose and immediately follows with output description, use case, and a critical warning—no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description covers the essential purpose, output, recommended use case, and a behavioral warning. It is fairly complete for a simple tool with two optional parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description does not add semantic value beyond the schema. It restates defaults (e.g., 'defaults to "wtest"') but provides no additional context on parameter usage or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Execute the auto-paste flow against an explicit candidate chain' and mentions returning diagnostic data. It distinguishes from sibling tools by focusing on an explicit chain versus individual paste strategies or transcript pasting.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Useful for stress-testing fallback behavior,' implying when to use it, but does not specify when not to use it or mention alternative tools among the siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bring_window_to_frontA

Restore the window if minimized, show it if hidden, and raise it above other windows. DOES NOT steal keyboard focus on macOS — the main window is focusable:false to protect the recording flow from focus-theft against the user's external app. The window comes to the visual front; input focus stays where it was. Returns {focused:false} on macOS to make this explicit.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It explicitly states the macOS focus behavior, the window's focusable property, and the return object, providing complete transparency about the tool's effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each adding value. Front-loaded with primary action, then key nuance. Slightly verbose but appropriate for the complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No parameters or output schema, so description must be complete. It explains both action and return value, making it fully informative for a zero-param tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so baseline is 4. Description does not need to explain parameters, as schema coverage is 100% with zero params.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool brings a window to front, restores if minimized, and shows if hidden. It distinguishes from siblings by specifying the focus behavior, which is unique among window-related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description explains when to use (to bring window to front without focus theft on macOS) and what it does not do. Implicitly distinguishes from focus-stealing or toggle tools, but lacks explicit comparison to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bulk_delete_archivesA

Tear down multiple archive entries in one call. Each entry's .md transcript + linked audio + linked video are removed. REQUIRES an explicit confirm token "YES-DELETE-" where N matches the ids.length — this is the guard that prevents an agent hallucinating "yes" and accidentally wiping the entire history. Each id's outcome is reported independently in the response (not-found ids do not abort the batch).

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesArchive ids to delete (from list_archive_entries / search_archives / archives_by_date_range).
confirmYesMust equal "YES-DELETE-<N>" where N is ids.length. Mismatch returns 400.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must disclose behavior. It reveals destructive nature, confirm token guard, and independent outcome reporting per id. It does not mention authentication or reversibility, but for a delete tool this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, followed by critical detail on confirm token and batch behavior. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter batch delete without output schema, the description covers both parameters, the guard condition, and outcome behavior. Could mention if operation is idempotent or not, but overall complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters, baseline 3. Description adds value by explaining confirm token format, source of ids, and that not-found ids do not abort. This goes beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool tears down multiple archive entries, removing .md transcripts and linked audio/video. This action is distinct from single deletion and batch export, providing a specific verb and resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies batch deletion context and mentions a required confirm token to prevent accidental wiping. It does not explicitly contrast with 'delete_archive_entry' but the sibling list makes the distinction clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bulk_export_archives_textA

Export the transcript text of multiple archive entries to a directory. One file per entry, named by the archive id. Format = "md" (default — with header), "txt" (plain transcript), or "json" (full entry metadata + text). targetDir is created recursively if missing. Per-id status returned; failures do not abort the batch. Pair with search_archives or archives_by_date_range to assemble the id list.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesArchive ids to export.
formatNoOutput format. Default "md".
targetDirYesOutput directory. Created recursively if missing.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses file naming, format details, recursive targetDir creation, per-id status returns, and non-aborting failures. This adds significant behavioral context beyond the input schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, no fluff. Every sentence contributes: purpose, naming, formats, directory creation, batch behavior, and pairing advice. Highly efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description mentions per-id status but omits exact format or overwrite behavior. However, it provides enough context for an agent to use the tool effectively with related archival tools. Minor gaps prevent a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and provides basic parameter descriptions. The description adds meaning: 'named by the archive id' for ids, and explains the format enum values ('md — with header', 'txt — plain transcript', 'json — full entry metadata + text'), enhancing the agent's understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Export the transcript text'), the resource ('multiple archive entries'), and the destination ('to a directory'). It distinguishes this tool from siblings like 'read_archive_entry' and 'list_archive_entries' by focusing on bulk export with file naming and format options.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it exports one file per entry named by archive id, explains format options, mentions recursive directory creation, and suggests pairing with search_archives or archives_by_date_range to assemble id lists. It lacks explicit exclusions (when not to use) but the guidance is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bulk_ingest_to_cloneA

Copy a batch of audio files into the voice-samples store, creating one voice-clone entry per file (ElevenLabs multi-sample training model). Use this after scan_folder_for_media finds the files the user wants to clone from — typical flow: scan → confirm with user → bulk_ingest_to_clone(filtered paths) → submit_voice_clone_to_cloud on each resulting cloneId. Returns per-file results so partial failures are visible. Capped at 100 paths per call (chunk larger sets). Audio extensions: webm, wav, mp3, ogg, m4a, flac. Mismatched extensions are reported as failures within the response, not as a top-level error.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYesArray of audio file paths to ingest. Each becomes one clone entry.
namePrefixNoOptional name prefix. Each clone gets "${prefix} (i/N)". Defaults to "Bulk import YYYY-MM-DD".

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description covers key behaviors: per-file results, partial failures, chunking advice, allowed extensions, and error handling. It does not disclose authorization requirements or data persistence details, but these are reasonable omissions given the tool's integration context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core function, followed by usage context, behavioral details, and constraints. It is well-structured without being verbose. Minor redundancy in per-file results mention could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema, the description explains that per-file results are returned. It covers the typical workflow, constraints, and error handling. It is complete enough for a batch tool with clear parameters and sensible defaults.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the namePrefix default format and the audio extensions for paths. It also advises chunking for large sets, which goes beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it copies audio files into a voice-samples store and creates voice-clone entries. It specifies the ElevenLabs multi-sample training model and distinguishes the batch operation from single-file alternatives by referencing the typical flow with scan_folder_for_media and submit_voice_clone_to_cloud.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use after scan_folder_for_media and outlines the flow. It highlights the cap of 100 paths, supported extensions, and error handling for mismatched extensions. It does not explicitly mention when not to use (e.g., for single files), but the implied context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cancel_recordingA

Cancel an in-flight recording without saving the result. Safe to call when idle (returns wasRecording:false). Unlike toggle_recording which stops the recording AND triggers transcribe + paste, this drops the audio entirely. Useful when the agent realizes the recording was started by mistake or the user said "wait, scratch that".

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes two key behaviors: drops audio entirely and returns wasRecording:false when idle. No annotations present, so description carries full burden and meets it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no fluff. Front-loaded with main action, then safety note, then sibling contrast. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-param, no-output-schema tool, description covers all necessary context: purpose, when to use, behavior, and safety. Complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in schema (coverage 100%). Description adds no param info but none needed. Baseline 4 for zero-param tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states action (cancel) and resource (recording), specifies it does not save. Distinguishes from sibling toggle_recording by contrasting behaviors.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit use cases provided: mistaken recording or user saying 'wait, scratch that'. States safety when idle and contrasts with toggle_recording. No ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_for_updatesA

Trigger electron-updater's update check. Mirrors the "Check for Updates" button in Settings → About. Returns immediately; the actual check runs asynchronously. Agents can poll get_config lastUpdateCheck to see when it last ran. SAFE — only downloads; install still requires a user-driven quitAndInstall via the in-app button.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Full disclosure of async execution, non-blocking nature, only downloads, and need for user-driven install. No annotations provided, description covers all.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with purpose, then behavior, then guidance. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no params and no output schema, description fully covers behavior, async nature, and how to monitor results. Complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, schema coverage 100%. Description adds no param info but not needed. Baseline 4 per rules.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool triggers electron-updater's update check, mirroring the UI button. Distinguishes from siblings like get_config.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says returns immediately, asynchronous, poll get_config for result. Mentions safety and that install requires separate user action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

clear_install_historyA

Wipe the in-memory install audit log. Useful between test runs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. The description adds that the log is 'in-memory', implying non-persistence, but does not disclose irreversibility or authorization requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words, front-loaded with the action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema, the description is mostly complete: it states the action and a typical scenario. However, it could mention that the operation is irreversible or that it only affects the in-memory log.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist and schema coverage is 100%; the description naturally adds no parameter info. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('wipe') and resource ('in-memory install audit log'), clearly distinguishing it from siblings like 'get_install_history' (read) and 'clear_paste_history' (different log).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear use case ('between test runs'), but does not explicitly state when not to use it or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

clear_paste_historyA

Reset the in-memory paste history buffer. Useful between stress-test runs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Correctly states reset action (destructive behavior). No annotations, but description accurately conveys the effect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. Front-loaded with action and context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Fully adequate for zero-param, no-output tool. Covers purpose and usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, baseline 4. Schema coverage 100% with no params, description adds no extra param info needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb 'Reset' with resource 'in-memory paste history buffer'. Distinguishes from siblings like get_paste_history no other tool resets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly mentions usefulness between stress-test runs, providing context. No exclusionary guidance but sufficient for a simple tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

clear_translation_memoryA

Wipe the entire translation-memory cache. Destructive — confirm with the user before calling.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses destructive behavior, which is critical for a mutation tool. However, without annotations, it lacks details on side effects, revertibility, or return values. The warning is helpful but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with only two short sentences, both essential. It front-loads the action and adds a critical warning, with no superfluous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple destructive action with no parameters or output schema, the description covers the essential purpose and usage caveat. It could mention confirmation process or return behavior, but the tool's minimal complexity makes this sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the description need not explain any. The mention of 'entire cache' implicitly clarifies scope. Baseline for zero parameters is 4, and the description meets expectations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it wipes the entire translation-memory cache, specifying the resource and action. The verb 'wipe' and 'entire cache' leave no ambiguity about what the tool does, and it contrasts with other translation memory operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly warns that the tool is destructive and requires user confirmation, providing clear guidance on when to call. However, it does not suggest alternative tools for non-destructive operations, which are available among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_diagnoseA

Run local diagnostics AND route the findings to the windy-fix-me cloud-relay for LLM-augmented remediation. Returns both the local rule-based findings and the cloud-relay's structured remediation (each entry has rootCause, a specific MCP tool call to invoke, fallback, verification steps). Use this when local run_diagnostics surfaces warnings/errors and you want expert-level fix guidance that knows about platform-specific quirks the local rules don't. Relay endpoint: https://windy-fix-me.windyword.workers.dev/diagnose (override via WINDY_FIX_ME_URL env var on the Windy Word side). May add ~2-3s of latency from the LLM round-trip.

ParametersJSON Schema
NameRequiredDescriptionDefault
sharedSecretNoOptional X-Windy-Fix-Me-Key for relays that require auth. Most public deployments leave this unset.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses full behavior: local+cloud operation, latency (~2-3s), return structure, auth requirement, endpoint override via env var. Without annotations, this is thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each serving a distinct purpose: what it does, return format, usage guidance. Front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description explains return structure in detail. Also covers endpoint, latency, auth. Complete for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers the only parameter (sharedSecret) with description; description adds endpoint and env var context but doesn't significantly enhance parameter semantics. Baseline 3 for 100% schema coverage, and extra context is minor.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool runs local diagnostics and relays to cloud for remediation, distinguishing it from sibling 'run_diagnostics'. Specific verb 'run' and resource 'local diagnostics + cloud-relay' provide clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this when local run_diagnostics surfaces warnings/errors and you want expert-level fix guidance', providing clear context. Does not explicitly list when not to use, but the condition is well-defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_voice_clone_from_pathA

Create a voice clone from an audio file on disk. Copies the source file into Windy Word's voice-samples directory under a fresh UUID, registers the clone in the local DB, and returns the new clone's metadata (with hasAudio=true). Supported audio extensions: .webm, .wav, .mp3, .ogg, .m4a, .flac. Source file must exist and be readable; the copy itself is path-confined to Windy's voice-samples dir. Use list_voice_clones afterward to see it and set_active_voice_clone to activate.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHuman-readable name for the clone (e.g. "My Voice 2026-05").
sourcePathYesPath to the source audio file.
durationSecNoAudio duration in seconds (if known). Optional metadata.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully covers behavior: copying the file under a fresh UUID, registering in DB, and returning metadata with hasAudio=true. It also discloses supported extensions and constraints. Minor omissions like error handling or disk space are acceptable for a creation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences pack the main action, constraints, supported formats, and follow-up tools. It is front-loaded with the verb 'Create' and contains no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains the return value (metadata with hasAudio=true). It covers supported extensions, file requirements, and follow-up tools. It is adequately complete for a creation tool, though it lacks details on name uniqueness and error conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and each parameter has a schema description. The tool description adds the list of supported audio extensions and the constraint that sourcePath must be readable, but does not significantly expand beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: creating a voice clone from an audio file. It explains the entire workflow (copy, register, return metadata) and distinguishes itself from sibling tools by mentioning follow-up tools like list_voice_clones and set_active_voice_clone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides good usage context: supported audio formats, file existence requirement, and path confinement. It also suggests using list_voice_clones and set_active_voice_clone afterward. However, it does not explicitly state when not to use this tool (e.g., for cloud sources).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_archive_entryA

Tear down an archive entry: removes the transcript .md file + linked audio + linked video, all path-confined to the archive folder. Irreversible — confirm with the user before calling. Returns the list of filenames actually deleted.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesArchive entry id (from list_archive_entries).

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It fully discloses irreversibility, the specific files deleted, and the return value (list of filenames). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no wasted words. The key action is front-loaded ('Tear down an archive entry'). Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description covers what it does, what it affects, irreversibility, and return value. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'id' is documented in the schema. The description adds context by noting it comes from list_archive_entries and clarifies the consequences of using it (deletion of associated files).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (tear down), the specific resources affected (transcript .md, audio, video files), and the scope (path-confined to archive folder). It distinguishes from sibling tools like list_archive_entries and read_archive_entry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states irreversibility and instructs to confirm with user before calling. This gives clear when-to-use guidance. No explicit alternatives mentioned, but sibling tools provide context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_voice_cloneA

Delete a voice clone (metadata + audio file on disk). If the deleted clone was the active one, activeId is reset to null. Returns the deleted clone's id and name for audit purposes. Irreversible — confirm with the user before calling.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesClone id to delete.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully discloses behavior: deletes metadata and audio file, resets activeId if applicable, returns deleted clone's id and name for audit, and irreversibility. No gaps or contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, each serving a distinct purpose: core action, side effect, return value, and warning. No extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description covers return value (id and name for audit) and explains side effects and irreversibility. The one-parameter nature is fully addressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter 'id' is described in the schema as 'Clone id to delete.' The tool description does not add further parameter semantics beyond what the schema provides, but the parameter is simple and well-defined.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool deletes a voice clone including metadata and audio file. Distinguishes from sibling tools like list_voice_clones or create_voice_clone_from_path by specifying the destructive action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly warns that the operation is irreversible and advises confirming with the user before calling. Provides context on side effects (resetting activeId) but does not explicitly list when not to use; the warning serves as a clear guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

describe_settingA

Return the full catalog entry for one setting (type / allowed values / description / default / side effects / restartRequired / sensitivity) plus its current value from the live store. Returns an error if the path is not in the catalog — use get_config for paths outside it.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesDotted path (e.g. "engine.model", "paste.strategy", "hotkeys.toggleRecording").

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses error behavior for unknown paths and mentions alternative tool. No annotations exist, so description carries burden; read-only nature is implied but not explicitly stated. Missing potential side-effect info, but tool is likely safe.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with result details, then error and alternative. No superfluous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, description lists all return fields. Covers error handling and differentiation from sibling. Complete for a simple 1-param tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and already provides examples. Description adds context about what the returned entry contains, but doesn't enhance parameter meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it returns the full catalog entry for a setting, listing included fields (type, allowed values, etc.) plus current value. Explicitly distinguishes from get_config for paths outside the catalog.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use (paths in the catalog) and when-not-to (paths outside, use get_config). No ambiguity about context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_hardwareA

Return system hardware info: totalRAM (GB), freeRAM (GB), cpuModel, cpuCores, platform, arch, gpu (NVIDIA via nvidia-smi on Linux/Windows; Apple Silicon Metal/MPS on macOS arm64; null otherwise), diskFreeGB (homedir partition). Used by Doctor checks and model-selection decisions — bigger models need more RAM, GPU-accelerated paths only fire when gpu != null.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses the exact hardware fields returned, GPU detection method (nvidia-smi, Metal/MPS), and that diskFreeGB is homedir partition. No contradictions, and no side effects are implied (likely none).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that lists return fields and usage context. Every part adds value; there is no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description fully explains what the tool returns and why it's used. It is complete for an agent to understand its purpose and when to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description does not need to add parameter semantics beyond the schema, which is empty.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool returns system hardware info with a specific list of fields (totalRAM, freeRAM, cpuModel, etc.), and ties it to use cases (Doctor checks, model-selection). This clearly distinguishes it from sibling tools, which are mostly unrelated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says the tool is used by Doctor checks and model-selection decisions, giving clear context. It also explains when GPU info is non-null (NVIDIA vs Apple Silicon), implying appropriate usage conditions. No explicit when-not-to-use, but the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_soul_file_to_pathA

Export the user's entire Windy Word archive (audio + video + transcripts) as a single zip file at the given path. The Forma Animae artifact — Grant's exportable "soul" for use with the Windy Clone digital-twin pipeline or as a portable backup. Includes a manifest.json with stats (file counts, word counts, date range). Refuses to overwrite existing files unless overwrite=true. Creates parent directories as needed. Pairs with the existing export-soul-file IPC the renderer uses via the Soul File button (which opens a save dialog) — this is the path-based variant for agent-driven exports.

ParametersJSON Schema
NameRequiredDescriptionDefault
overwriteNoIf true, replace existing file. Default false.
outputPathYesDestination .zip path (e.g. "/home/user/Documents/my-soul-2026-05.zip").

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully explains behavioral traits: it refuses overwrite by default, creates parent directories as needed, and includes a manifest with stats. It also explains the semantic 'soul' concept and its pipeline use, offering complete transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (5 sentences) and front-loaded with the action. Each sentence adds unique information, though the second sentence on 'Forma Animae artifact' introduces jargon that slightly reduces clarity for general agents. No wasted content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately covers return behavior (zip file with manifest), file handling (overwrite, directory creation), and the input schema has only two well-documented parameters. All essential aspects are addressed for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value by explaining the effect of overwrite ('refuses to overwrite... unless overwrite=true') and clarifying outputPath as a destination .zip path, which reinforces parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's action ('export the entire Windy Word archive as a single zip file'), specifies the output format and contents (audio, video, transcripts, manifest.json), and distinguishes it from the sibling save-dialog variant via 'path-based variant for agent-driven exports.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly notes the tool's default refusal to overwrite and condition to allow it (overwrite=true), and contrasts it with the related IPC variant. It provides clear context for use (agent-driven exports) but does not list exhaustive alternatives or non-use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

extract_document_textA

Extract plain text from a document file at a given path. Supports .txt / .md / .csv (read as UTF-8), .html (strip tags), .pdf (regex scrape — best-effort, may return [PDF text extraction yielded nothing] for image-only PDFs), .docx (xml-strip). Default size cap 5MB; override via maxBytes (up to 20MB). Returns {ok, path, ext, sizeBytes, textLength, text}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute or working-dir-relative file path.
maxBytesNoMax file size to attempt (default 5MB).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description adequately covers behavioral traits: size limits (default 5MB, max 20MB), best-effort PDF extraction, and return structure. It lacks explicit mention of error handling (e.g., file not found) but overall is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with three sentences that efficiently convey all necessary information without redundancy or wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 2 parameters, no output schema, and returns a structured result, the description covers the return fields. It could mention error responses (like unsupported format) but is largely complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds value by specifying the default maxBytes (5MB) and that path can be absolute or relative, enhancing the schema's bare descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool extracts plain text from a document file, lists supported formats and extraction methods, and distinguishes itself from sibling tools (none of which perform text extraction from files).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance on when to use the tool (for supported file types) and outlines expectations for each format, including limitations for PDFs. It does not explicitly state when not to use or mention alternatives, but none are apparent among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_active_paste_strategyA

Return the currently selected paste strategy, the user-configured fallback chain, and the resolved chain that will actually be tried at paste time. When strategy is "auto", the chain comes from defaultFallbackChain() with hotkey-collision demotion applied.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It fails to disclose behavioral traits such as read-only nature, potential side effects, or error handling. It does mention a special case for 'auto' strategy, but overall transparency is low.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loading the main purpose and providing a key detail about the 'auto' case. Every sentence adds value without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately describes the three pieces of returned information (current strategy, configured chain, resolved chain). It explains the 'auto' case behavior. However, it does not specify the data types or structure of the return value, which would be helpful for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so schema description coverage is 100%. The description adds no parameter information because none are needed. Per the guidelines, this situation earns a baseline score of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the currently selected paste strategy, the user-configured fallback chain, and the resolved chain. It uses a specific verb ('Return') and distinguishes itself from siblings like list_paste_strategies (which lists all strategies) and set_paste_strategy (which changes the strategy).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used when you need the current strategy and chains, but it does not explicitly state when to use it versus alternatives like list_paste_strategies or auto_paste. No exclusions or prerequisites are provided, leaving the usage context somewhat implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_active_voice_cloneA

Return the currently-active voice clone (the one used for TTS playback), or {active: null} if no clone is selected.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the exact return value and the null case, which is sufficient for a read-only tool with no parameters. No contradictions with annotations (none provided).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no unnecessary words. It efficiently conveys all necessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is fully complete for a parameterless tool. It covers the return value and the null scenario; no output schema is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. The description does not need to add parameter details; the baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool returns the currently-active voice clone or null, using specific verb 'Return' and resource 'currently-active voice clone'. It clearly differentiates from sibling tools like list_voice_clones and set_active_voice_clone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for obtaining the active clone, but does not explicitly state when to use it versus alternatives. However, for a simple getter, the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_archive_statsA

Return aggregate stats for the user's recording archive: totalFiles, totalSizeMB, days (number of distinct date directories), audioHours, videoHours, totalWords, totalSessions, totalChars. Cached server-side for 30s — responses include cached + cacheAgeSec so the agent knows freshness.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that results are cached server-side for 30 seconds and that responses include 'cached' and 'cacheAgeSec' fields for freshness. This provides good behavioral transparency for a read-only stats tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long: the first sentence lists the return fields and the second adds caching details. No fluff, front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (no parameters, no output schema). The description lists all return fields and caching behavior, which is sufficient for an agent to understand the response. However, it does not specify the exact data types or structure, but it is adequate for this simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description does not need to add parameter info. Schema coverage is trivially 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns aggregate stats for the user's recording archive and lists the specific fields. It distinguishes itself from sibling tools like list_archive_entries (which returns individual entries) and archives_by_date_range (which returns archives in a date range).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for retrieving aggregate stats, but it does not explicitly provide when-to-use vs alternatives. No guidance on when not to use or mention of alternatives is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_autostart_statusA

Check whether Windy Word is configured to auto-launch on user login. Returns {platform, enabled, desktopFile?}. Linux checks for ~/.config/autostart/windy-pro.desktop; macOS/Windows use electron's app.getLoginItemSettings(). Pure read — no state change.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Explains return format, platform-specific behavior, and explicitly confirms no state change, providing full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two clear, front-loaded sentences with no wasted words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a simple query tool: explains purpose, return shape, platform details, and side-effect guarantee. No gaps given lack of annotations and output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so description need not add param info. Baseline for 0 params is 4, which is appropriate as no further detail is possible.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Check') and resource ('auto-launch on user login'). It clearly distinguishes from sibling 'set_autostart' which is the write counterpart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States it is a 'Pure read — no state change' but does not explicitly mention when not to use it or provide alternatives. However, context is clear enough for an AI agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_billing_historyA

Return the user's purchase / transaction history — the answer to "show me my receipts", "what have I paid for", "list my transactions". Returns an array of transactions with { id, tier, billing_type, amount_cents, currency, created_at, stripe_session_id }. Requires sign-in.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must cover behavioral traits. It mentions 'Requires sign-in' which is useful, but lacks discussion of side effects, idempotency, or rate limits. Since it's a read operation, the sign-in requirement partially compensates.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. First sentence states main action, second adds return format and a usage requirement. Efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no parameters, the description adequately covers the return format and a key requirement (sign-in). Could optionally mention that the data is for the current user, but overall sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the input schema is empty. Description adds value by specifying the exact return structure (array with fields: id, tier, billing_type, amount_cents, currency, created_at, stripe_session_id), which goes beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it returns purchase/transaction history, includes example queries, and specifies the return data structure. This leaves no ambiguity about the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus siblings like get_my_plan, get_billing_summary, or open_billing_portal. Agent is left to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_billing_summaryA

Return a high-level billing summary — current tier, lifetime spend, next renewal (if subscribed). Answer to "what does my bill look like", "billing summary", "how much have I spent on Windy Word". Requires sign-in.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions the auth requirement and implies a read-only operation by describing the return as a summary. However, it does not explicitly state that it is non-destructive, and lacks details on error handling or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loads the key purpose, includes examples, and the prerequisite. Every sentence is necessary and no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, no output schema, and no annotations, the description covers the return fields, auth requirement, and usage scenarios. It could mention error cases (e.g., not signed in) but is otherwise complete for its simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema provides full coverage. The description does not need to add parameter semantics, and the baseline for zero parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a high-level billing summary with specific fields (current tier, lifetime spend, next renewal) and provides example questions it answers. It distinguishes itself from sibling tools like 'get_billing_history' by focusing on a summarized view.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a prerequisite ('Requires sign-in') and the examples imply when to use it (for billing summary queries). However, it does not explicitly contrast with sibling tools or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cloud_clone_order_statusA

Check the status of a Windy Clone cloud-training order — used after submit_voice_clone_to_cloud to poll for ElevenLabs training completion. Requires the user to be signed in to their Windy account; returns a clean 401-shape error if not. Returns the raw order body from the Windy Clone API.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderIdYesOrder id returned from a previous submit_voice_clone_to_cloud call.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Discloses authentication requirement with 401 error and that it returns raw order body. Additional context beyond name and schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise, front-loaded sentences. First sentence states purpose and usage context, second covers auth, third describes return value. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple poll tool with one parameter and no output schema, description covers purpose, usage context, authentication, and return type sufficiently. No major gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with description of orderId. Description adds value by specifying it's from a previous call, clarifying the source beyond the schema's description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Check the status of a Windy Clone cloud-training order' with specific verb and resource. Distinguishes from siblings by linking to submit_voice_clone_to_cloud and ElevenLabs training completion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'used after submit_voice_clone_to_cloud to poll for ElevenLabs training completion', providing clear when-to-use context. Also mentions sign-in requirement, but does not explicitly state when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_configA

Return the full electron-store config tree (every setting Windy Word has persisted). Large but read-only — use this to discover what setting paths exist before set_config.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Highlights that the output is 'Large' and operation is 'read-only', disclosing key behavioral traits (non-destructive, potential size) beyond the absent annotations. No mention of response format or cost, but adequate for the tool's simplicity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with purpose, no redundancy, every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a 0-param, read-only tool: states return value ('full config tree'), provides usage context, and differentiates from siblings. No output schema exists, but description fills the gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All parameters (none) are fully covered by the input schema; the description adds no param info, which is appropriate per the baseline of 4 for 0-param tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb ('Return') and resource ('full electron-store config tree'), uniquely identifying the tool's action and distinguishing it from siblings like set_config.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises using this tool to discover setting paths before calling set_config, providing clear when-to-use context. Lacks explicit mention of alternatives like list_settings, but the guidance is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_install_historyA

Return the audit log of recent install_dependency attempts on this machine (timestamp, tool, package, exact command, exit code, elapsed ms, whether the tool is on PATH after, stdout/stderr tails). In-memory; resets when Windy Word restarts.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax entries (default 20).

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly notes the tool's data is in-memory and resets on restart, which is critical behavioral context beyond the input schema. It also lists the return fields. Since no annotations are provided, this transparency is valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first states the core function with field list, the second adds an important behavioral note. No superfluous text; information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with one parameter and no output schema, the description covers key aspects: what it returns, ephemeral storage, and implied read-only nature. Minor gap: could explicitly state it is read-only.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter 'limit', and its description is already in the schema. The tool description does not add further semantic meaning beyond 'recent' context. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns an audit log of recent install_dependency attempts, listing specific fields (timestamp, tool, package, etc.). It distinguishes itself from sibling tools like clear_install_history which clears the log.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies it's for inspecting installation history, but does not explicitly state when to use it or when to use alternatives. No guidance on when-not-to-use or contrast with sibling tools like get_install_status or list_install_jobs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_install_statusA

Return the current state of an async install job started by install_dependency_async. Status is "running" (still in flight) or "completed" (finished — check result.ok for success). If the job is not found (FIFO-evicted after 50 jobs, or wrong jobId), returns status="unknown".

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesJob id returned by install_dependency_async.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries full burden. It discloses all possible status values ('running', 'completed', 'unknown'), explains the job eviction policy (FIFO after 50 jobs), and what happens with a wrong jobId. This provides good behavioral context beyond a simple state machine.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long, front-loaded with the purpose, and every word adds value. No waffle or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Since there is no output schema, the description fully explains the return values (status strings and result.ok) and covers edge cases (eviction, wrong ID). For a simple status tool, this is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear parameter description. The tool description adds value by explaining the consequences of providing an incorrect or evicted jobId (returns 'unknown'), which goes beyond the schema's definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Return the current state of an async install job started by install_dependency_async'. It uses a specific verb and resource, and implicitly distinguishes itself from sibling tools like install_dependency_async and list_install_jobs by referencing the job started by the former.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates when to use the tool ('after calling install_dependency_async') and what the possible statuses mean, including the 'unknown' case. It does not explicitly state when not to use it, but the context is clear given its narrow polling purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_my_planA

Return the signed-in user's identity and license tier — the answer to "what plan am I on", "what tier am I on", "am I a pro user", "what subscription do I have". Returns { userId, name, email, tier, devices, deviceLimit, createdAt }. Tier is one of {free, pro, lifetime, team}. If the user is not signed in, returns ok:false with a "Not signed in" error — surface that to the user and offer to walk them through sign-in.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description handles disclosure. It specifies behavior when not signed in (returns error) and lists returned fields. No side effects mentioned, but none expected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise, well-structured: starts with purpose, gives usage examples, return shape, and error handling. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Full coverage for a simple tool: explains return fields, error case, and usage hints. No output schema, but description compensates adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in schema; coverage is 100%. Description adds no param details, but none needed. Baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it returns user identity and license tier, with specific examples (e.g., 'what plan am I on'). No sibling tool overlaps; this is unique.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains when to use (user asks about plan/tier, subscription) and what to do if not signed in. Lacks explicit differentiation from siblings, but context makes it clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_paste_historyA

Return the last N paste attempts with diagnostic data: timestamp, text length, content hash (NOT the actual text), strategy chain attempted, winner, target window type. The buffer is in-memory and resets when the app restarts.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax entries to return (default 20).

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description fully compensates by disclosing that content hash is NOT actual text, buffer is in-memory and resets on app restart. This informs the agent about data persistence and privacy.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two succinct sentences front-load the purpose and critical behavioral notes. No extraneous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter diagnostic tool with no output schema, the description fully explains return fields and buffer behavior, leaving no ambiguity for agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with a clear description for 'limit'. Description mentions 'last N paste attempts' but adds no new semantic detail beyond what schema provides, meeting baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'Return' with resource 'paste attempts' and enumerates exact data fields (timestamp, text length, content hash, strategy chain, etc.), clearly distinguishing from sibling tools like clear_paste_history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives (e.g., get_active_paste_strategy, clear_paste_history). The agent is left to infer usage from purpose alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_paste_targetA

Detect whether the currently focused window is XWayland or Wayland-native (or unknown). This is what xdotool sees — agents use it to verify their assumptions before picking a strategy, because XWayland targets accept different keystrokes than Wayland-native ones.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It explains that the tool detects window compositor type and its relevance, but does not disclose potential side effects, authorization needs, or rate limits. For a read-only detection tool, this is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: two sentences that efficiently convey purpose, context, and importance. No extraneous words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and no output schema, the description sufficiently covers what the tool does and its return meaning (XWayland, Wayland-native, or unknown). It provides enough context for an agent to decide when to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters (schema coverage 100% by vacuity), so the description is not required to detail param semantics. Baseline for zero-parameter tools is 4, and the description adds no unnecessary parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: detecting whether the focused window is XWayland or Wayland-native. It uses specific and distinct language ('detect', 'XWayland or Wayland-native') that differentiates it from sibling tools like get_platform or get_windytune_state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool: 'agents use it to verify their assumptions before picking a strategy', and provides context about keystroke differences. It does not explicitly state when not to use or specify alternatives, but the usage context is clearly implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_platformA

Return OS / arch / distro / display-server / desktop-environment / tool-availability info for the machine running Windy Word. Use this first when diagnosing paste / hotkey issues — the platform determines which strategies and capabilities are valid.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Lists the information returned but does not disclose any behavioral aspects like caching, network access, permissions, or potential side effects. Adequate but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with what it returns, followed by usage context. No wasted words; every sentence is meaningful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Returns a list of key platform properties (OS, arch, distro, display-server, desktop-environment, tool-availability) which is comprehensive for diagnosing environment issues. No output schema, but description fully explains what is returned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist (0 params). Schema coverage is 100%. Description adds no parameter info (unnecessary). Baseline for 0 params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states what the tool returns (OS, arch, distro, display-server, desktop-environment, tool-availability info) and distinguishes it from siblings by specifying it's the first tool to use when diagnosing paste/hotkey issues.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use ('use this first when diagnosing paste / hotkey issues') and why ('platform determines which strategies and capabilities are valid'). Does not explicitly mention when not to use or name alternatives, but the guidance is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recording_stateA

Return the recording-flow state: isRecording (main-process truth), pythonEngineRunning (transcription backend alive), totalPasteAttempts (counter — increments after every paste attempt; use to detect activity between polls). Read-only and cheap. Use this BEFORE doing anything intrusive — if isRecording=true, the user is actively recording and you should defer or use toggle_recording to stop them gracefully.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but the description fully discloses behavior: it is read-only, cheap, and details the meaning of each returned field (e.g., totalPasteAttempts as activity counter). No contradictions. The agent can infer safe usage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first lists fields, second gives usage advice. No filler, front-loaded with key info. Every sentence contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema, the description fully covers what the tool returns and when to call it. It is complete and actionable for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so schema coverage is 100%. The description adds value by explaining the return values and their semantics, which is beyond what the empty schema provides. Baseline 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns recording-flow state with specific fields (isRecording, pythonEngineRunning, totalPasteAttempts). It distinguishes from siblings by emphasizing it is read-only and cheap, and contrasts with intrusive actions or alternative tools like toggle_recording.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: 'Use this BEFORE doing anything intrusive' and explains when to defer (if isRecording=true). It also names toggle_recording as an alternative for graceful stopping. This gives clear when-to-use and when-not-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sound_effect_stateA

Return the current sound-effects configuration: per-hook-stage enabled/volume settings (the 6 stages are start, during, stop, process, warning, paste), the active sound pack, master SFX volume, and any per-stage custom sound overrides. The 6 hookStages are always returned even when live state read fails (so agents can show the stage catalog).

Phase 1 limitation: Sound state lives in renderer-side localStorage, not the main electron-store. Reading via webContents.executeJavaScript currently fails (Electron context-isolation) — expect rendererReadable=false with rendererError set. Phase 2 will add a renderer-side IPC bridge in windy-pro to expose live state + writes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond no annotations by disclosing a known limitation: live state read may fail due to Electron context isolation, returning rendererReadable=false and rendererError. It also guarantees that the 6 stages are always returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise, with two paragraphs. The first paragraph front-loads the main return values, and the second explains a limitation. Every sentence serves a purpose, though it could be slightly shorter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately covers the return data: per-stage settings, active pack, master volume, overrides, and potential error fields. It also explains the limitation, providing complete context for the tool's current behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the description has no param details to add. However, it adds value by describing the return structure in detail, which compensates for the lack of output schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool returns the current sound-effects configuration including per-hook-stage settings, active sound pack, master SFX volume, and per-stage overrides. It specifies the 6 hook stages and distinguishes itself from sibling tools that set these values.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives is provided. The description focuses on what it returns and a limitation, but does not mention when-not to use or suggest alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_translation_memory_statsA

Return TM cache stats: totalEntries, topPairs (top 10 source→target language pairs by count), recentEntries (last 50 by updated_at).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses exact return fields and limits (top 10 pairs, last 50 entries). Since no annotations are provided, the description carries full burden and does so well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no redundancy; every word adds value. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with no parameters and no output schema. Description fully informs agent of what will be returned. Field names are self-explanatory.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist (schema coverage 100%), so tool inherently needs no param documentation. Baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Return TM cache stats' with specific fields (totalEntries, topPairs, recentEntries), distinguishing it from other TM operations like lookup/save/clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when or when not to use. Context implies it's for monitoring cache state, but lacks alternative suggestions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_versionA

Return the running Windy Word version (app.getVersion()) plus the underlying Electron and Node versions. Mirrors the "Windy Word v1.6.2" display in Settings → About. Read-only and safe to call.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears the full burden. It clearly states the tool is read-only and safe, and describes the exact information returned. There are no contradictions or missing behavioral details (e.g., side effects, permissions).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loading the core purpose (version info) and key details (mirrors About dialog, read-only). Every sentence earns its place with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description fully explains the return values (app version, Electron, Node versions) and contextualizes it by referencing the Settings About dialog. For a simple info-getting tool, this is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the score is baseline 4. The description correctly notes that no input is required, adding no additional semantic burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the running Windy Word version along with Electron and Node versions, and explicitly mentions it mirrors the display in Settings → About. This is a specific verb+resource that distinguishes it from sibling tools (most of which are for settings, hardware detection, or other actions).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates the tool is 'Read-only and safe to call,' which implies it can be used anytime without side effects. While it does not explicitly list when not to use it, the simplicity of the tool (version info) makes alternatives irrelevant. It provides clear context for safe invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_widget_stateA

Return mini-widget (tornado) runtime state via the renderer bridge: whether the WidgetEngine is present, whether the widget is currently visible, and the localStorage tornadoSize value. Complements the catalog-driven set_setting path for tornadoX/tornadoY/tornadoSize/widgetSettings.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description implies read-only operation by stating 'return', but does not explicitly disclose side effects, permissions, or error states. The phrase 'via the renderer bridge' hints at mechanism but lacks detailed behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences: first states purpose and outputs, second provides relational context. No redundancy, front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description adequately lists three return values. Missing explicit data types or structure, but sufficient for agent to understand the tool's function.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in schema, so description does not need parameter details. Baseline score 4 is appropriate; description adds value by explaining what the tool returns.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it returns mini-widget runtime state, listing specific items: WidgetEngine presence, visibility, and tornadoSize. It distinguishes from sibling set_setting by positioning itself as a complementary read tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implicitly contrasts with set_setting for writing settings, providing context on when to use this tool (reading state). However, it does not explicitly state when not to use or list alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_window_stateA

Snapshot the main window's current state: exists, maximized, minimized, focused, visible, fullScreen, simpleFullScreen, bounds {x,y,width,height}, fontSize, opacity, alwaysOnTop. Read-only. The cheapest call to find out "is the user actively using the app right now" — check focused + isRecording (via get_recording_state) before doing anything intrusive.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Declares it as 'Read-only' and a snapshot, implying no side effects. Could mention permissions briefly, but sufficient for a simple read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first lists returned fields, second gives usage guidance. No fluff, front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lists all returned fields, gives usage context, and references a sibling tool. Complete for a parameterless state-reading tool with no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so schema coverage is 100%. Baseline 4 applies. Description adds no parameter info but none needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool snapshots the main window's state, listing specific fields (exists, maximized, etc.). It distinguishes itself from siblings like get_recording_state by mentioning recording state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'cheapest call to find out is the user actively using the app right now'. Recommends combining with get_recording_state and provides context 'before doing anything intrusive'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_windytune_stateA

Return WindyTune auto-tune state: whether it is enabled, the current model, the model ladder, switch thresholds, the recent transcription timing history, and the rolling average ratio (used to decide when to climb or descend the ladder).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden. It details all returned fields and explains the ratio's purpose. It doesn't mention side effects (likely none) or prerequisites, but for a read-only getter with no parameters, this is largely transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence listing all fields; front-loaded with purpose. Slightly long but no redundant words. Could be clearer with separation of list items, but acceptable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no parameters, the description is the sole documentation. It comprehensively lists every value returned and explains the ratio. No gaps remain for an agent to understand what the tool provides.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has zero parameters with 100% coverage. Description adds no parameter info since none exist. Baseline of 4 is appropriate as the schema fully covers parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the WindyTune auto-tune state, listing specific fields (enabled, model, ladder, thresholds, timing history, ratio). It distinguishes from sibling getters like get_sound_effect_state or get_widget_state by focusing on auto-tune context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or alternatives are given. The description implies it's for reading state, but doesn't contrast with other state getters or provide usage conditions. Given its simplicity and zero parameters, the lack of guidance is acceptable but not optimal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

install_dependencyA

Install a missing system tool via the distro package manager wrapped in pkexec. WARNING: this triggers a graphical sudo (polkit) prompt that the user must approve interactively — do not call without telling the user a prompt will appear. The tool must be in Windy Word's whitelist: wtype, ydotool, wl-clipboard, xdotool. Linux only. After a successful install of wtype, re-check list_paste_strategies — wtype will flip to availableOnThisMachine=true and become first-pick in the resolved chain (paste becomes instant on Wayland-native targets). Use dryRun=true to see the command without executing it.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolYesWhich tool to install. Constrained to the whitelist. Note: not every tool is installable on every OS (cliclick is macOS-only, the Wayland tools are Linux-only). Use list_installable_dependencies to see what works on the current machine.
dryRunNoIf true, return the install command that WOULD run without executing it.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully carries behavioral disclosure. It warns about the interactive sudo prompt (polkit), states Linux-only, specifies the whitelist, and notes the side effect on paste strategy after wtype install. Missing details on error handling and return value, but critical behaviors are covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (4 sentences) and well-structured: main purpose first, then warning, then details, then post-install guidance, and finally dry-run tip. Every sentence adds value without fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description covers essential aspects: purpose, method, prerequisites (whitelist, Linux), critical warning, side effects, and dry-run. It omits return format and error handling but still provides sufficient context for an agent to use the tool appropriately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters described. The description adds meaningful context: for 'tool' it reiterates the whitelist and OS constraints beyond the schema enum, and for 'dryRun' it provides a usage tip. This extra information justifies a 4 above baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'install a missing system tool via the distro package manager wrapped in pkexec', specifying the verb, resource, and method. It distinguishes from sibling tools like install_dependency_async by implying synchronous interactive behavior and mentions the whitelist and Linux-only constraint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: warns about interactive polkit prompt and advises informing the user, suggests using dryRun=true for preview, and recommends re-checking list_paste_strategies after wtype install. However, it does not explicitly compare with install_dependency_async or other alternatives, lacking exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

install_dependency_asyncA

Fire-and-poll variant of install_dependency. Returns a jobId immediately and runs the install in the background. Use get_install_status to check progress. Useful when the install might take >10 minutes (e.g., compiling from source, large package downloads on slow networks) or when the agent wants to surface a "still installing…" UI without holding a connection open. The whitelist + platform constraints + polkit/sudo flow are identical to install_dependency.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolYesWhich tool to install.
dryRunNoIf true, return the install command without actually running it.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so description carries full burden. Discloses async nature, background execution, and identical constraints to install_dependency. Could add queue behavior detail, but sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with key info front-loaded. No redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description mentions returning jobId and linking to status check. References sibling for constraints. Covers major aspects for two-param tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage 100%, description does not add extra meaning beyond schema. Baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it is the async variant of install_dependency, returns jobId immediately, and runs in background. Distinguishes itself from the synchronous sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides when to use: when install takes >10 min or for UI feedback without holding connection. Also directs to get_install_status for progress.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_archive_entriesA

List archived recording sessions (the user's historical transcripts + linked audio/video). Each entry has an opaque id (use it with read_archive or delete_archive_entry), date, full transcript text, wordCount, engine used, and hasAudio / hasVideo booleans. Newest first. Path information is NOT returned — agents work with the opaque id.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoCap on entries returned (default 200).

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral traits. It mentions the ordering (newest first) and that path info is omitted, but does not explicitly state that the operation is read-only, non-destructive, or require any permissions. This leaves ambiguity about side effects or safety.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two well-structured sentences, front-loaded with the main purpose. Every sentence adds value: first sentence states what the tool does and the output structure, second sentence provides a key constraint (no path info) and usage hint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (1 optional param, no output schema), the description adequately explains the output fields and ordering. It lacks details about error handling or pagination, but for a list tool this is largely sufficient. The schema covers the parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes the 'limit' parameter (type, bounds, default, description). The tool description adds no additional meaning beyond what the schema provides. With 100% schema coverage, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'archived recording sessions', and specifies the contents of each entry (id, date, transcript, wordCount, engine, hasAudio, hasVideo). It distinguishes from siblings like search_archives and read_archive_entry by mentioning the link to read_archive and delete_archive_entry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly notes that path information is not returned and that the opaque id should be used with read_archive or delete_archive_entry, guiding the agent on how to process the output. However, it does not contrast with sibling tools like search_archives for advanced filtering.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_audio_devicesA

Enumerate audio input devices (microphones) available to Windy Word. Returns each device with { deviceId, label, groupId, isCurrent } plus the currently-selected micDeviceId and a hint when labels are hidden (the OS hides labels until mic permission has been granted at least once — the user must start a recording one time before labels become visible). To switch devices, call set_setting with path "engine.micDeviceId" and the desired deviceId.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and discloses key behaviors: return format with specific fields, plus the non-obvious behavior that labels are hidden until mic permission is granted at least once, and that a hint is returned in that case.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences covering purpose, return data, and a usage tip. The parenthetical explanation of hidden labels is necessary but slightly lengthy; overall efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, no output schema, and no annotations, the description is quite complete: it explains purpose, return structure, a behavioral quirk, and a related action. Minor gaps include no mention of error cases or permissions beyond the label hint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so schema coverage is 100% vacuously. The description adds no parameter info but explains the return data and behavioral context, meeting the baseline for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool enumerates audio input devices (microphones) available to Windy Word, using a specific verb and resource. It distinguishes from siblings like detect_hardware by focusing solely on microphones and providing return fields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use this tool (to see available microphones) and offers an explicit alternative for switching devices via set_setting. However, it does not explicitly state when not to use the tool or other alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_clone_bundlesA

List training-bundle catalog — audio/video recordings the user has marked as candidates for voice-clone training. Each entry has bundle_id, name, device info, sync_status, training_ready flag, file size, created_at, and fileExists. Pairs with InstaBio voice-clone ingestion which reads from these bundles. See [[project_instabio_voice_clone_data]] memory for the broader voice-clone training-data contract.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It clearly indicates the tool returns a list with specific fields, but does not explicitly state it is read-only or disclose any side effects. The 'List' verb implies safety, but explicit disclosure would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each adding value: first defines purpose, second lists output fields, third gives broader context. It is front-loaded and avoids redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool with no parameters and no output schema, the description is complete. It explains what is listed, what fields are in each entry, and how it fits into the broader workflow (pairing with ingestion and referencing a memory document).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, and schema coverage is 100%. Per the calibration, with no parameters the baseline is 4. The description adds no parameter info because none exist, but it provides context about what the output contains.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'training-bundle catalog', specifying it is for audio/video recordings marked as candidates for voice-clone training. It differentiates itself from sibling tools like `list_voice_clones` by focusing on pre-training bundles rather than finished clones.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates the tool pairs with InstaBio voice-clone ingestion, giving context for its use. However, it does not explicitly state when not to use it or provide direct alternatives, though the sibling list implies distinct purposes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_clone_watchersA

List currently-active folder watchers from watch_folder_for_recordings. Returns each as { path, autoIngest, startedAt, ingestedCount }. Resets to empty on every app restart.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses important behavioral traits: it lists active watchers, returns specific fields, and resets on app restart. Since no annotations are provided, this information is crucial for safe usage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently covers functionality, return format, and a behavioral note. Every part earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters, the description is fairly complete, specifying return fields and reset behavior. It could mention that it lists all watchers without filtering, but it's adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, so schema description coverage is 100%. The description adds no parameter info, which is fine, and the baseline of 3 is elevated because the output format is clearly described.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool lists currently-active folder watchers, specifies the source (watch_folder_for_recordings), and clearly distinguishes from siblings like watch_folder_for_recordings which creates watchers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied but not explicitly stated; it lacks guidance on when to use this tool versus alternatives or when not to use it. The sibling tool watch_folder_for_recordings provides context but no direct comparison.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_diagnostic_checksA

List the catalog of Windy Doctor diagnostic checks without running them. Returns each check's name, description, and whether it applies to this platform. Useful for agent introspection — understanding what the doctor knows how to look at before kicking off a diagnostic run.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It clearly states the tool lists checks without running them, which is the key behavioral trait. It also describes the return content (name, description, platform applicability). It does not mention potential side effects, but for a read-only list tool this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states the action and output, second states the use case. No redundant words, every sentence adds value. Very concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, no output schema, and no annotations, the description is complete enough. It tells what the tool does, what it returns, and when to use it. Could mention output format more explicitly, but this is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, and schema description coverage is 100% (vacuously). The description does not need to add parameter info. Baseline for zero-param tools is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists diagnostic checks without running them, using specific verbs and a resource ('catalog of Windy Doctor diagnostic checks'). It distinguishes from sibling tools like 'run_diagnostics' by explicitly noting the non-execution behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage context: 'Useful for agent introspection — understanding what the doctor knows how to look at before kicking off a diagnostic run.' This implies when to use but does not explicitly name alternatives or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_hotkeysA

List all current keyboard shortcut bindings, the set of rebindable actions, and the list of accelerators that are reserved (cannot be assigned). Use this before set_hotkey.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, but the description discloses that the operation is read-only and lists the types of information returned. It lacks details on potential costs or prerequisites, but for a simple list tool this is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences: the first describes the output, the second gives usage guidance. No wasted words, front-loaded with essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains the three categories of output (bindings, actions, reserved accelerators). It could mention if the list is sorted or paginated, but it provides enough context for an agent to understand the return value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, and schema coverage is 100%. With zero parameters, the baseline is 4, and the description adds no unnecessary parameter info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists keyboard shortcut bindings, rebindable actions, and reserved accelerators. It distinguishes from siblings like set_hotkey and reset_hotkeys by specifying a read-only inventory function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises using this tool before set_hotkey, providing clear context. It doesn't mention when not to use it or alternatives, but the directive is actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_installable_dependenciesA

List the whitelisted system tools that Windy Word can install on this machine to expand its capabilities (e.g. wtype for instant Wayland paste). Returns supported platform check + distro detection + the resolved install command per tool. Always safe to call (no system mutation). v0 supports Linux only — returns supported=false with a friendly explanation on macOS/Windows.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description fully carries the burden. It discloses that the tool is non-mutating, returns platform support, distro detection, and install commands per tool. It also transparently states the Linux-only limitation and the graceful behavior on other platforms.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long, front-loading the core purpose. Every sentence adds value: listing capability, return information, and safety/platform constraint. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and zero parameters, the description provides sufficient context: what it returns (supported platform, distro detection, install commands), safety, and cross-platform behavior. It covers all necessary aspects for an agent to decide when and how to invoke this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and the input schema coverage is 100% (empty). The description adds context about the return payload and safety, which is more than minimal. Given zero parameters, the baseline score of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists whitelisted system tools for installation, with a concrete example (wtype). It distinguishes itself from sibling tools like install_dependency by being read-only and informative. The verb 'list' and specific resource 'whitelisted system tools' make the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Always safe to call (no system mutation)', indicating low risk. It also notes the platform restriction: 'v0 supports Linux only — returns supported=false with a friendly explanation on macOS/Windows.' However, it does not explicitly mention when not to use it or suggest alternative tools for other platforms.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_install_jobsA

List all install jobs currently in memory — both running and recently completed. Useful for dashboards or when an agent forgot a jobId.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions the jobs are 'in memory', implying they are ephemeral, which is a key behavioral trait. However, it does not disclose behavior when no jobs exist or any edge cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the action and scope. Every sentence provides useful information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is simple and clear, but without an output schema, it does not specify what fields are returned for each job (e.g., jobId, status, progress). This omission affects completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema coverage is 100%, so baseline is 4. The description adds value by specifying the scope (running and completed), which goes beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all install jobs currently in memory, including both running and recently completed. This is specific and distinguishes it from any sibling tools, none of which deal with install jobs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear use cases: 'useful for dashboards or when an agent forgot a jobId.' It does not specify when not to use it or mention alternatives, but given the tool's simplicity, the guidance is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_modelsB

List available Whisper transcription models (tiny / base / small / medium / large-v3), their on-disk size and accuracy/speed tradeoff, the current selected model, and the WindyTune ladder.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It explains what information is returned (size, tradeoff, selected model), but does not mention side effects, rate limits, or resource usage. The disclosure is adequate for a read-only list but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently lists the output categories. It is concise and front-loaded with the core action, but could be slightly more structured with separate pieces of information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema, no annotations), the description covers all relevant aspects: what it lists (models, details) and the current selection. It is complete enough for an AI agent to understand the tool's purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters and 100% schema coverage, the baseline is 4. The description adds no parameter-specific details but the absence of parameters means no additional semantics are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists Whisper transcription models with specific attributes like on-disk size, accuracy/speed tradeoff, current selected model, and WindyTune ladder. However, it does not differentiate from sibling tools like 'set_model' or 'transcribe_audio_file'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. For a simple listing tool, basic context could be implied, but the description lacks any explicit recommendations or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_paste_strategiesA

List all 12 paste strategies (macOS / Windows / Linux X11 / Linux Wayland) with full capability metadata, a per-strategy availableOnThisMachine flag, the resolved default fallback chain, and a hotkeyCollisionDetected flag indicating whether Mutter or another compositor is eating Windy Word's own paste keystroke (which silently breaks the Ctrl+Shift+V family on Wayland+GNOME).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full behavioral disclosure. It explains that the tool returns metadata including an availableOnThisMachine flag and a hotkeyCollisionDetected flag, and details the significance of the collision flag. It is transparent about the output content, though it does not explicitly state that the tool is read-only or non-destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, dense sentence that front-loads the main action and then lists details. While every phrase adds value, the sentence is somewhat long and could be split for readability. It is concise but not perfectly structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description provides comprehensive detail about the return values: 12 strategies, capability metadata, per-strategy availableOnThisMachine flag, resolved default fallback chain, and hotkeyCollisionDetected explanation. It covers the tool's purpose and output fully, though it omits explicit mention of the operation being safe/read-only.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, so schema coverage is 100%. The description adds no parameter-level information beyond what the schema provides. Per the rubric, a baseline of 3 is appropriate when schema coverage is high and description does not add parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (list), the resource (12 paste strategies), and the specific metadata included (capability, availableOnThisMachine flag, default fallback chain, hotkeyCollisionDetected). It distinguishes itself from sibling tools like get_active_paste_strategy and set_paste_strategy by focusing on listing all strategies with full metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when one needs an overview of all paste strategies and their diagnostics (e.g., hotkey collision detection), but it does not explicitly state when to use this tool versus alternatives like get_active_paste_strategy or test_paste_strategy. No when-not or exclusion criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_recent_setting_changesA

List the catalog-validated setting changes made in this session, oldest first. The answer to "what did I just change", "what have I been changing", "show me my recent changes". Each entry: { path, previousValue, newValue, timestamp, source }. Bounded by a 50-entry ring buffer; oldest entries drop as new ones land. History resets on app restart.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description discloses key behavioral traits: bounded by a 50-entry ring buffer, oldest entries drop, and history resets on app restart. This adds valuable transparency beyond a simple 'list'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with four sentences, front-loaded with purpose, followed by example queries and behavioral details. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description explains the return format (path, previousValue, etc.) and behavior (buffer, reset). It is complete and sufficient for an agent to understand.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the description correctly omits parameter details. Schema coverage is 100%, and the baseline for 0 parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists catalog-validated setting changes in this session, oldest first. It distinguishes from sibling tools like list_settings (current settings) and undo_last_setting_change (undo a change).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides example queries such as 'what did I just change' and 'show me my recent changes', making usage context clear. While it doesn't explicitly state when not to use it, the intent is well-understood.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_settingsA

List every setting Windy Word exposes as an agent-discoverable, schema-validated path. Returns each setting's dotted path, type, description, allowed values (if enum / range), default, side effects of changing it, restartRequired flag, sensitivity (writable vs readonly), tags, and the current live value. The response also includes availableTags so agents can discover what tag filters exist. Use this as the entry point for any agent setting introspection. Paths outside the catalog are accessible only via the lower-level get_config / set_config tools. Optional tag parameter narrows results — e.g. tag="voice-clone" returns just the settings that drive InstaBio voice-clone training behavior, tag="archive" returns archive-related settings, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoOptional tag to filter by (voice-clone, archive, transcription, paste, hotkey, ui, geometry, lifecycle, etc). See availableTags in the unfiltered response.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It details return fields (path, type, description, allowed values, default, side effects, restartRequired, sensitivity, tags, live value) and mentions availableTags. It does not explicitly state read-only nature but implies it. Very transparent overall.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single paragraph that front-loads purpose and then adds details. Each sentence contributes value, but could be slightly more streamlined. Still efficient for the amount of information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description compensates by listing all fields returned. Covers parameter semantics, usage guidance, and alternative tools. Fully adequate for a list tool without complex nested structures.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, baseline 3. Description adds concrete examples of tag filtering (e.g., 'tag="voice-clone" returns settings for voice-clone training'), enhancing understanding of parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'list' and resource 'every setting', including the scope 'agent-discoverable, schema-validated path'. It distinguishes from siblings like describe_setting (single setting) and get_config/set_config (lower-level).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this as the entry point for any agent setting introspection' and notes paths outside catalog are only accessible via get_config/set_config, providing clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sound_effect_packsA

List the sound-effect packs the Windy Word EffectsEngine knows about (_silent, classic-beep, soft-chime, and other built-in synthesized packs). Pairs with the 6 hook stages (start/during/stop/process/warning/paste) to drive per-stage sound assignments.

Phase 1 limitation: Same as get_sound_effect_state — the renderer EffectsEngine isn't globally exposed, so live pack-list queries return ok=false until Phase 2 (renderer-side IPC bridge). The endpoint shape is finalized for forward-compat.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the Phase 1 limitation and that the endpoint shape is finalized. No annotations exist, so description carries burden. However, it does not state that the operation is read-only or non-destructive, although implied. The limitation is a key behavioral trait.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two paragraphs: first states purpose, second explains limitation. Front-loaded and efficient. Could be slightly more concise but overall appropriate length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, so description should cover return value. It mentions ok=false in limitation but does not describe the structure of the list (e.g., array of pack names). Examples given but not formal structure. Adequate but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so schema coverage is 100%. Description adds value by explaining what is listed (built-in packs) and the context (hook stages). Baseline for 0 params is 4, and the description meets it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it lists sound-effect packs known to the EffectsEngine and gives examples. However, it does not explicitly differentiate from sibling sound tools (e.g., get_sound_effect_state, set_sound_hook) which are related but have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies use before assigning sounds with hooks and mentions a Phase 1 limitation ('returns ok=false'), providing some context. But lacks explicit when-not-to-use or alternatives, and the limitation is more about implementation status than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tts_voicesA

List the system TTS voices installed on this machine. Returns platform-specific names (macOS: "Samantha", "Daniel", "Alex"; Windows: "Microsoft David Desktop"). Pass one of these as the voice argument to speak_text. Use this when the user asks "what voices do you have" or wants to switch the agent's voice.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description bears full burden. It discloses that it returns platform-specific names, which is the key behavior. Could add that it's read-only with no side effects, but still clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no waste. Front-loaded with main purpose, includes examples and usage guidance. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-parameter tool with no output schema, the description covers purpose, return format, and follow-up usage. Nothing missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters (schema coverage 100%), so baseline 4. Description adds value by explaining that return values are identifiers for speak_text, which aids understanding of output usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists system TTS voices, gives platform-specific examples, and distinguishes itself from siblings like speak_text and list_voice_clones. The verb 'list' and resource 'TTS voices' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to use when user asks about available voices or wants to switch, and tells how to pass the returned name to speak_text. This provides clear when-to-use context and differentiation from alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_voice_clonesA

List all voice clones the user has on this machine. Returns each clone's id, name, duration, created_at, status, plus a hasAudio boolean (no raw audio in the response — use preview_voice_clone to fetch base64 audio for a specific clone). Also returns activeId — which clone is the current TTS default. Use this to answer "what clones does the user have?" without paging through audio bytes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that the tool returns only metadata (id, name, duration, etc.), not raw audio, and also returns activeId. No side effects beyond listing; behavior is well-covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with main purpose, no unnecessary words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description specifies all returned fields (id, name, duration, created_at, status, hasAudio, activeId) and explains the lack of audio bytes. Complete for the tool's purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so schema coverage is trivially 100%. Description adds no parameter info, which is appropriate. Baseline for 0 params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'List all voice clones the user has on this machine' with specific verb (list) and resource (voice clones). It distinguishes from sibling tools like preview_voice_clone by explicitly noting that no raw audio is returned.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use: 'Use this to answer "what clones does the user have?"' and contrasts with preview_voice_clone for fetching audio. Could be improved by stating when not to use, but overall clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

logout_accountA

Sign the user out of their Windy account. Use this for "sign me out", "log me out", "switch accounts". Best-effort upstream logout, then ALWAYS clears the local auth + cached license fields (auth.token, auth.storageToken, license.tier, license.email, license.purchasedAt, license.expiresAt, license.stripeSessionId). Safe to call when already signed out and safe to call offline.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavior: best-effort upstream logout, then clearing of specific local fields (listed explicitly). Also states safety in edge cases (already signed out, offline). This is exemplary transparency for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states purpose and usage triggers, second describes behavior and safety. No filler words, front-loaded purpose, every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, no output schema, and low complexity, the description covers everything needed: purpose, usage triggers, behavioral details, safety. It is complete for an AI agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so schema coverage is 100%. Description adds no parameter details, but none are needed. The baseline of 4 is appropriate as the description is not required to explain parameters that don't exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Sign the user out') and resource ('Windy account'), and includes common trigger phrases like 'sign me out', 'log me out', 'switch accounts'. It distinguishes itself effectively among siblings as there is no other logout tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides contexts for use (sign out, log out, switch accounts) and notes safety when already signed out or offline. No explicit alternatives needed since no sibling tools serve the same purpose, but lacks explicit when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_translation_memoryA

Look up a (text, sourceLang, targetLang) tuple in the local translation-memory cache. Returns {ok, match: {translation, hits} | null}. No external API call — pure local SQLite query.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesSource text to look up.
sourceLangYesSource language code.
targetLangYesTarget language code.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Describes return format, local nature, and no side effects. Could mention exact match requirement, but overall discloses key behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff, front-loaded with purpose. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple lookup tool with 3 required params, no output schema but return format described. Description covers inputs, nature of operation, and side effects. Slightly improved with sibling context, but still adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for each parameter. Description adds minimal value beyond restating the tuple; does not compensate further. Baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb 'look up' with clear resource 'local translation-memory cache' and tuple of inputs. Distinguishes from siblings like 'translate_text' by noting it's a local query without external API call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States it's a pure local SQLite query with no external API call, implying it's for fast cache lookups. Could explicitly mention to use before calling translate_text, but context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maximize_windowA

Maximize the main Windy Word window to fill the screen. Mirrors the title-bar maximize button. Different from fullscreen: keeps the title bar visible and stays in the current OS space. Use set_video_fullscreen for true fullscreen.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses key behavioral traits: mirroring the title-bar maximize button, keeping title bar visible, staying in current OS space. This fully informs the agent of what happens.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences that are front-loaded with the primary action, followed by key distinctions and an alternative. Every sentence adds value without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description is fully complete. It explains what happens, how it differs from fullscreen, and provides an alternative, leaving no gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. The description does not need to explain parameters. Baseline 4 is appropriate as nothing is missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (maximize the main Windy Word window) and distinguishes it from fullscreen mode. It uses specific verbs and resources, and explicitly differentiates from sibling tool set_video_fullscreen.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool (maximize window) and when to use an alternative (set_video_fullscreen for true fullscreen). It also explains the difference from fullscreen to guide selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

minimize_windowA

Minimize the main Windy Word window to the dock/taskbar. Mirrors the title-bar minimize button. Idempotent — calling on an already-minimized window is a no-op.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description fully carries the behavioral disclosure burden. It explicitly states idempotency (no-op on already minimized window) and the visual outcome, leaving no ambiguity about safety or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences deliver all necessary information: purpose and idempotent behavior. Front-loaded with the action, no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the trivial parameter count and absence of output schema, the description covers action, effect, and edge cases (idempotency) completely. No gaps for an agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters with 100% coverage, so the baseline is 4. The description adds no parameter information, but none is needed as the tool requires no inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (minimize), the target (main Windy Word window), and the effect (to dock/taskbar). It explicitly distinguishes from sibling tools by mirroring the title-bar minimize button, providing a specific verb+resource scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies standard minimize behavior by referencing the title-bar button, but does not explicitly state when to use this tool versus alternatives like maximize_window or bring_window_to_front. No exclusions or alternative tool names are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_archive_folderA

Pop the archive root directory in the user's OS file manager. Side-effect on the desktop (opens a Files / Finder / Explorer window). Use when the user asks "show me where my recordings are saved" or similar.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the side-effect of opening a file manager window, which is the main behavioral trait. No annotations exist, so description bears full burden; it provides sufficient transparency for a simple no-parameter tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. Front-loaded with action and outcome. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, no output schema, and a simple action, the description fully explains what the tool does and when to use it. No gaps are present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so schema coverage is 100%. The description adds no parameter info because none exist, and baseline for zero parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action ('Pop the archive root directory') and the resource ('in the user's OS file manager'). Provides example usage, and no sibling tool does the same thing, so it is well-distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use when the user asks show me where my recordings are saved or similar.' This gives clear context for when to invoke, though it does not explicitly mention when not to use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_billing_portalA

Open the Stripe Customer Portal in the user's default browser. Use this for "manage my subscription", "update my credit card", "cancel my plan", "view my invoices", "I want a refund". Returns { ok, url, opened }. Cancellation, plan changes, and card updates all happen in the portal — the user must complete those steps there. Requires sign-in AND a prior purchase (account-server returns 400 if the user has never bought anything).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that the tool opens a browser, returns a specific object, and that the user must complete actions in the portal. It also mentions an error condition (400 if no purchase). Good coverage for a simple tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with a bullet-like list of use cases. It front-loads the core action and is free of fluff. Slightly could be more organized, but highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description covers purpose, behavior, return value, error condition, and prerequisites. It is complete enough for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters with 100% schema coverage. The description adds no param info (not needed), meeting the baseline expectation for such tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Open the Stripe Customer Portal' and lists specific use cases like managing subscriptions and updating payment methods. However, it does not explicitly distinguish from sibling tools like get_billing_history, though the use cases imply the difference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit use cases ('manage my subscription', etc.) and prerequisites ('requires sign-in AND a prior purchase'). It also states that further steps must be completed in the portal. It does not explicitly list when not to use, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_upgrade_checkoutA

Open a Stripe Checkout page in the user's default browser to upgrade to a paid tier. Use this for "upgrade me", "I want pro", "switch me to lifetime", "buy the yearly plan". Returns { ok, url, sessionId, opened } — opened:true means shell.openExternal launched the browser; tell the user to complete checkout there. tier must be one of {pro, translate, translate_pro}; billing_type must be one of {lifetime, monthly, yearly}. After checkout completes the user's tier updates via webhook — call get_my_plan to confirm. Requires sign-in.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierYesSubscription tier the user wants to buy.
billing_typeYesBilling cadence. "lifetime" is a one-time payment; "monthly"/"yearly" are subscriptions.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses that shell.openExternal launches the browser, the return format ({ ok, url, sessionId, opened }), and that sign-in is required. Provides sufficient transparency for an upgrade action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is moderately concise and front-loaded with the main purpose. It contains necessary details but could be slightly tighter. Still, every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a checkout tool: explains the return value, how to interpret opened, the prerequisite (sign-in), and the follow-up action. No output schema exists, but the description covers what the agent needs to know.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but description adds context by listing the allowed enums and providing example usage. It reinforces the meaning of tier and billing_type beyond the schema's descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states what the tool does: opens a Stripe Checkout page for upgrading to a paid tier. Provides concrete example intents ('upgrade me', 'I want pro') and distinguishes from sibling tools like open_billing_portal and get_my_plan by specifying when to use it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use (user intents like 'upgrade me') and what to do after calling (call get_my_plan). Could more explicitly state when not to use, but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_urlA

Open an http/https URL or one of the Windy ecosystem schemes (windypro://, windychat://, windyword://, windyfly://) in the user's default browser via Electron's shell.openExternal. Mirrors UI buttons like "View all history in Web Portal" and the Upgrade → checkout flow. Allowlisted: file://, javascript:, and other dangerous schemes are rejected with 403.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to open. Must use an allowlisted protocol.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries full burden. It discloses the execution mechanism (shell.openExternal), allowlisted schemes, and dangerous scheme rejection with 403. This goes beyond a basic 'opens URL' description, though it omits details like error behavior for invalid URLs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences, each serving a distinct purpose: purpose, mechanism, UI context, and security. It is front-loaded and contains no redundant or extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (1 parameter, no output schema, no annotations), the description covers the key aspects: what, how, security. It lacks explicit return value description but rejects dangerous schemes with a status code, which provides operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'url' is fully described in the input schema. The tool description reiterates the allowlisted protocol requirement but adds no new semantic details beyond the schema. With 100% schema coverage, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it opens http/https URLs or Windy ecosystem schemes via Electron's shell.openExternal. It explicitly mentions mirroring UI buttons, distinguishing it as a general URL opener. Sibling tools like open_upgrade_checkout and open_billing_portal are more specific, but this tool covers broad use cases.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by stating it mirrors UI buttons, but it does not explicitly guide when to use this tool vs alternatives like open_upgrade_checkout or open_billing_portal. No exclusions or when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

paste_transcriptA

Re-paste the most recent transcript into the focused window (same effect as the paste-transcript hotkey). Does NOT start a new recording.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses it re-pastes and does not start recording. No annotations provided, so description carries full burden. However, lacks detail on side effects (e.g., clipboard overwrite) or behavior when no recent transcript exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no unnecessary words. Front-loaded with action and target, followed by a clarifying negation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequately describes a simple tool with no parameters and no output schema. Could mention error handling (e.g., no transcript), but overall sufficient for its simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters defined in schema, but description adds meaning by specifying it uses 'the most recent transcript'. This is useful context beyond an empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 're-paste' and resource 'most recent transcript', and distinguishes from 'start a new recording'. No ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs siblings like auto_paste or get_paste_history. Only mentions hotkey equivalence, but no context about prerequisites or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pause_other_audioA

Pause any music or media playing in other apps (Spotify, Apple Music, browsers, VLC) so it doesn't bleed into a recording. Use this BEFORE start_recording when the user is listening to music, or whenever the user says "pause my music", "stop the music", or "mute Spotify". Returns per-app attempts so the agent can describe what was paused. Best-effort cross-platform: macOS uses AppleScript to Music + Spotify (guarded by "is running"); Windows sends VK_MEDIA_PLAY_PAUSE (toggle key — same key used for resume); Linux uses playerctl pause (covers any MPRIS-compatible player). On Linux the response includes an install hint when playerctl is missing.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully carries the burden of transparency. It discloses that the tool is best-effort cross-platform, details platform-specific methods (macOS AppleScript, Windows toggle key, Linux playerctl), notes the toggle key on Windows can also resume, and mentions an install hint when playerctl is missing on Linux. This goes beyond basic functionality to cover important behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat lengthy but well-structured, front-loading the main purpose and usage, then detailing platform specifics and return value. Every sentence contributes value, though the platform details could be condensed slightly. Overall, it is efficiently written for an agent's consumption.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, no output schema, and no annotations, the description provides comprehensive context: when to use, how it works per platform, what it returns (per-app attempts), and additional notes (install hint on Linux). An agent using this tool would have sufficient information to invoke it correctly and understand its behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, and schema description coverage is 100%. According to guidelines, a tool with no parameters has a baseline score of 4. The description does not add parameter info because none exist, so this baseline is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool pauses music/media in other apps, listing specific examples like Spotify, Apple Music, browsers, and VLC. It specifies the verb 'pause' and the resource 'other apps audio', making the purpose unmistakable. The distinction from the sibling 'resume_other_audio' is implied but not explicit, yet the purpose is very clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage context: 'Use this BEFORE start_recording when the user is listening to music, or whenever the user says "pause my music", "stop the music", or "mute Spotify".' It does not explicitly state when not to use or mention alternatives, but the context is clear and sufficient for an agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_voice_cloneA

Return a voice clone's metadata, optionally with the base64-encoded audio sample. Pass metadataOnly=true to skip the audio (responses can be several MB otherwise). The mimeType field tells the agent how to interpret audioBase64 (typically audio/webm).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesClone id.
metadataOnlyNoIf true, skip the base64 audio payload. Defaults to false (audio included).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It warns about response size and explains mimeType field. Adds useful behavioral context but could further disclose if it's read-only or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no unnecessary words. Efficient and focused.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple read tool with good schema coverage. Could mention typical metadata fields or that it's read-only, but current description is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters fully described in schema (100% coverage). Description adds practical guidance on metadataOnly impact and explains mimeType interpretation, enhancing understanding beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it returns a voice clone's metadata and optional audio. Distinguishes from siblings like list_voice_clones and get_active_voice_clone by focusing on a single clone with optional audio.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides guidance on using metadataOnly=true to avoid large responses. However, does not explicitly compare to sibling tools like get_active_voice_clone or list_voice_clones, leaving when to use this tool vs alternatives unclear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

quick_translateB

Open the Quick Translate mini-window.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description only states the action without disclosing side effects, state changes, or whether it is a read-only operation. No annotations are present, so the description must cover this but does not. For example, it does not indicate if the window is modal or if it changes focus.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that conveys the entire purpose without wasted words. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's zero parameters and no output schema, the description is largely sufficient for its simplicity. However, it could mention whether the window appears in the foreground or what triggers it, but for a basic UI action it is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and the schema coverage is 100%, so the description adds no param info. By baseline rules (0 params = baseline 4), this is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Open the Quick Translate mini-window,' specifying a distinct verb and resource. It distinguishes from sibling 'translate_text' by referring to a UI window rather than the translation operation itself. However, it lacks further detail on what the mini-window offers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'translate_text' or other translation-related tools. There are no exclusions, prerequisites, or context for optimal use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

quit_appA

Quit Windy Word cleanly. app.quit(). Returns 200 immediately; exit fires ~250ms later. DESTRUCTIVE — app will not auto-restart. Get user confirmation before calling.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description thoroughly discloses behavior: clean quit, immediate return of 200, delayed exit ~250ms later, destructive nature (no auto-restart). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—two sentences—and front-loads the purpose. Every sentence provides necessary information without fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description explains the return value (200) and the exit timing. For a simple quit tool, this is complete and sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters with 100% coverage. Since there are no parameters, the description does not need to add parameter information; baseline 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool quits Windy Word cleanly. The verb 'Quit' and resource 'Windy Word' are specific. Although it does not explicitly differentiate from sibling tools like restart_app, the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description instructs to get user confirmation before calling, which is a clear usage guideline. It does not mention when not to use or alternatives, but for a destructive action this is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_archive_entryA

Return an archive entry's metadata + optionally the base64 audio or video media bytes. The mediaType parameter selects which stream ("audio" default, or "video"). Pass metadataOnly=true to skip the base64 payload (responses can be MBs otherwise). Returns { ok, present, mimeType, base64 } or { ok, present: false } if the requested media isn't attached to this entry.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesArchive entry id (from list_archive_entries).
mediaTypeNoWhich media stream (default "audio").
metadataOnlyNoIf true, skip the base64 media payload.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that responses can be large (MBs) without metadataOnly, describes the return format ({ ok, present, mimeType, base64 } or { ok, present: false }), and notes default mediaType. However, it does not cover error cases (e.g., invalid id) or other behaviors like rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states purpose and options, second explains return behavior. No wasted words, front-loaded with key information. Highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately covers return values and main parameters. It mentions large payloads and the present flag. Missing error handling details, but overall sufficient for a read-only tool with good parameter descriptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds meaning beyond the schema: it explains that mediaType selects audio/video with default 'audio', and metadataOnly skips base64 payload. It also clarifies the return shape, providing useful context for parameter effects.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns an archive entry's metadata and optionally base64 media bytes, specifying the mediaType and metadataOnly parameters. It distinguishes from sibling tools like list_archive_entries and delete_archive_entry by focusing on reading a single entry's details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage after obtaining an entry ID from list_archive_entries, but does not explicitly state when to use this tool versus alternatives or provide exclusions. It gives parameter guidance (using metadataOnly to avoid large payloads) but lacks broader usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reset_hotkeysA

Restore all global keyboard shortcuts to their catalog defaults and re-register them. Mirrors the "Reset All to Defaults" button in Settings → Keyboard Shortcuts. Returns the applied bindings so the agent can confirm. Idempotent — safe to call repeatedly.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the tool restores defaults, is idempotent, and returns applied bindings. It could mention that custom hotkeys are overwritten, but overall is adequate for a straightforward reset operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences front-load the core function, provide a UI reference, and add behavioral notes (idempotent, return). No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description mentions the return value (applied bindings) for confirmation. Combined with idempotency and UI reference, the description is complete for this simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters are defined, so the description does not need to provide parameter semantics. It correctly does not add extraneous parameter info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it restores all global keyboard shortcuts to catalog defaults and re-registers them, with a reference to the UI button. This is specific and distinguishes it from sibling tools like set_hotkey and list_hotkeys.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (full reset) and mentions idempotency, but does not explicitly list alternatives or when not to use it. However, the UI mirroring provides clear context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restart_appA

Relaunch Windy Word. app.relaunch() + app.exit(0). Returns 200 immediately; the actual exit fires ~250ms later so this response lands. DESTRUCTIVE — closes the running app, losing any in-flight recording. Get user confirmation before calling.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description fully discloses behavioral traits: it returns 200 immediately, actual exit fires after ~250ms, and it loses in-flight recording. No annotations exist, so the description carries full burden and meets it well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: two sentences plus a warning. Every sentence adds value, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description covers all necessary context: behavior, side effects, and usage warning. It is fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the description does not need to add parameter info. Baseline for zero parameters is 4, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool relaunches the app using specific methods. It is distinct from sibling 'quit_app' which only exits. The verb 'relaunch' and resource 'app' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description instructs to get user confirmation before calling due to destructiveness. It does not explicitly compare to alternatives but implies use for restarting rather than quitting.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resume_other_audioA

Resume music or media that was paused with pause_other_audio. Use this AFTER stop_recording, or when the user says "play my music again", "unpause Spotify", or "resume the music". macOS resumes Music + Spotify by name; Windows toggles the media key (so calling this when nothing was previously paused will START playback — be mindful of that on Windows); Linux uses playerctl play.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses platform-specific behaviors (macOS resumes by name, Windows toggles media key with a warning, Linux uses playerctl play). This adds significant transparency beyond the tool name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise (three sentences) but packed with essential details: purpose, usage, platform differences, and warnings. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description thoroughly covers what the tool does, when to use it, and platform-specific behaviors. It is complete for an agent to understand and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so baseline is 4. Description adds no parameter info, which is appropriate since there are none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool resumes paused music/media and references the sibling tool pause_other_audio. It distinguishes itself by specifying platform behaviors and example use cases.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises to use after stop_recording or when user says specific phrases. Provides critical Windows warning that calling it unpaused will start playback.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_diagnosticsA

Run the local Windy Doctor check battery and return a structured report: overall health (healthy / degraded / unhealthy), per-check status (ok / warning / error / not_applicable), severity, what was found, and (for non-ok findings) an actionable remediation step that often references the specific MCP tool to call next (e.g., "install_dependency({tool: "wtype"})"). Covers: paste-stack tooling presence, /dev/uinput permissions, ydotoold daemon health, polkit rule installation, Python transcription engine liveness, Mutter hotkey collision. No system mutation — pure read. Use this as the starting point for any "why is paste broken / why is transcription failing" agent flow.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Clearly states 'No system mutation — pure read.' Details all checks performed and output structure including health status, per-check status, severity, findings, and remediation steps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single paragraph front-loads purpose and output, then details checks and behavior. Every sentence adds value, though slightly verbose. Could be split into clearer sections but still effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a diagnostics tool with no output schema, description comprehensively covers what it checks, what the report includes, and how to use results (remediation steps). Complete enough for an agent to invoke and interpret.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so no additional semantic explanation needed. Schema coverage is 100%. Baseline 4 applies as description adds no parameter info but none is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb 'Run' and resource 'local Windy Doctor check battery', clearly states the output is a structured report. Distinguishes from siblings by positioning it as the starting point for debugging paste/transcription issues.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'Use this as the starting point for any "why is paste broken / why is transcription failing" agent flow.' Also implies follow-up actions via remediation steps referencing specific MCP tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_paste_injection_testA

Real end-to-end paste injection test. Spawns a focusable Tk scratchpad target, temporarily flips Mutter's focus-new-windows policy to "strict" so the target auto-grabs focus, fires the requested paste strategy, captures what landed in the target, and returns whether the captured text matches what was sent. SAFE TO RUN — the target is a spawned scratchpad, not the user's active window; the focus-policy flip is reverted after the test. Wayland+GNOME only in v0 (the gsettings focus-policy flip is GNOME-specific). Returns the paste-strategy attempt diagnostic too.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoText to inject (default: a unique timestamped marker).
strategyNoPaste strategy to test (default "ydotool_type"). Use list_paste_strategies to discover names.
captureSecondsNoHow long to keep the Tk target open after firing the paste (default 6s).

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses critical behavioral traits: the target is a spawned scratchpad (not active window), the focus-policy flip is reverted after the test, and it is Wayland+GNOME only. It also notes return diagnostics. This goes beyond basic explanation and ensures safe usage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately efficient, with all sentences contributing useful information. It is well-structured: purpose first, then details. A minor improvement could be slightly shorter phrasing, but overall effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (3 optional parameters, no output schema), the description is complete. It explains return values (match status and diagnostic), platform limitations, safety, and defaults. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, but the description adds value by explaining defaults (text defaults to timestamped marker, strategy default 'ydotool_type', captureSeconds default 6s) and suggesting use of list_paste_strategies to discover strategy names. This enriches the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a 'real end-to-end paste injection test' and details the process of spawning a scratchpad, flipping focus policy, firing paste strategy, and capturing results. It distinguishes from siblings like list_paste_strategies and test_paste_strategy by being an actual end-to-end test rather than just listing or setting strategies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool (for testing paste injection) and includes safety assurances. However, it does not explicitly state when not to use it or compare directly with the sibling test_paste_strategy tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_text_fileA

Write text content to a file at a given path. Default: refuses to overwrite existing files (returns a 409-shaped error with the existing file size). Pass overwrite=true to replace. Creates parent directories as needed. Returns {ok, path, bytesWritten}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute or working-dir-relative target path.
contentYesString content, or an object (will be JSON-stringified).
overwriteNoIf true, replace existing file. Default false.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses key behaviors: default refusal to overwrite with error, overwrite=true to replace, parent directory creation, and return format. Lacks details on encoding or permissions, but sufficient for a simple file write.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four efficiently written sentences. First sentence states purpose, followed by key behaviors. No redundant or missing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, default behavior, overwrite option, directory creation, and return value. Missing error cases beyond overwrite refusal, but acceptable for a simple tool with no annotations or output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds context like 'returns 409 error' and 'creates parent directories', but mostly parallels schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Write text content to a file at a given path', specifying the verb (write) and resource (text content to file). No sibling tool performs the exact same function, so it stands out.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implicitly describes when to use (to write text files) and explains overwrite behavior, but does not explicitly state when not to use or compare with alternatives like export_soul_file_to_path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_translation_memoryA

Store a (source, target, sourceLang, targetLang) tuple in the TM cache. Useful when an agent has a known-good translation it wants future lookups to find without re-calling the LLM. Upserts on duplicate keys (increments the hits counter).

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesSource text.
targetYesTarget translation.
sourceLangYesSource language code.
targetLangYesTarget language code.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses that upserts on duplicate keys and increments a hits counter, which is behavioral info beyond the basic store operation. However, it doesn't mention safety or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the action, and includes the upside. Every word contributes value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description should ideally mention return value or success confirmation. It explains behavior well but omits what the tool returns. Also no annotations, but the tool is simple.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no new parameter-specific meaning beyond the schema. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the function: store a translation tuple in TM cache. It distinguishes from sibling tools like lookup_translation_memory and clear_translation_memory by explicitly mentioning the use case of caching known-good translations to avoid re-calling the LLM.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use this tool (when a known-good translation is available for caching) and contrasts with re-calling the LLM. It doesn't explicitly state when not to use it, but the context and sibling tool list provide enough guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scan_folder_for_mediaA

Scan a folder for audio + video files (recursive by default). Use this when the user says "find all my voice memos", "what recordings do I have in this folder", "look in my Music folder", or before bulk_ingest_to_clone so the agent knows what's there. Returns per-file { path, name, ext, sizeBytes, modifiedAt, kind, durationSec? } plus aggregates (audioCount, videoCount, totalSizeBytes, totalDurationSec). Audio durations are extracted via music-metadata. Capped at 500 results to prevent runaway responses (truncated:true in that case); recursion depth capped at 6 to prevent symlink loops. Permission-denied subdirectories are silently skipped. Read-only — no side effects.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute or tilde-expanded folder path to scan.
recursiveNoWalk subdirectories. Defaults true.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but description fully discloses behavior: recursive by default, capped at 500 results, recursion depth 6, permission-denied subdirectories silently skipped, read-only, and audio duration extraction method. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat lengthy but every sentence adds value. It is well-structured with usage hints first, then return details and constraints. Could be slightly more concise but is not verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but the description fully explains return format (per-file fields and aggregates), truncation flag, and edge cases (permission-denied, loops). Complete for a scanning tool with two simple parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The description reiterates defaults (recursive default true, path expansion) but adds minimal new meaning beyond what schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it scans a folder for audio/video files recursively, provides example user queries, and mentions its use before bulk_ingest_to_clone. It distinguishes from siblings by being the only scanning tool among them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this when the user says...' and gives context for before bulk_ingest_to_clone. Also mentions behavioral limits like 500 results cap and recursion depth 6, guiding appropriate use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_archivesA

Full-text substring search across every archived transcript. Returns matches with a short snippet of surrounding context. Case-insensitive by default. Scales to thousands of entries (the scan is a single _agentArchiveScan pass + in-memory filter). Use this when the user asks "what did I say about X" or "when did I last talk to Y". For richer queries (regex, semantic, embedding) — defer; this is the fast substring path.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoCap the returned match count. Default 200.
queryYesSubstring to search for. Required.
includeBodyNoDefault false. Pass true to include the full transcript text on each match (otherwise only a snippet).
caseInsensitiveNoDefault true. Pass false for exact-case matching.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses case-insensitivity by default, performance scaling ('single pass + in-memory filter'), and output format (snippet). It could mention read-only nature, but as a search tool this is implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, each adding distinct value: purpose, output, case sensitivity, performance, usage guidance. Front-loaded and efficient, though the performance detail could be integrated with the first sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 params, no output schema), the description covers query model, limits, output format options, casing defaults, and performance characteristics. Nothing missing for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds overall context like 'fast substring path' but no additional per-parameter details beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it performs full-text substring search across all archived transcripts and returns matches with snippets. The verb 'search' and resource 'archives' are specific, and it distinguishes from richer query types like regex or semantic search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises when to use this tool (e.g., 'what did I say about X') and when not to ('for richer queries, defer'), providing clear context for selecting this tool over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_notificationA

Show an OS-native notification via Electron's Notification API. Returns ok:true if shown. Title is capped at 200 chars, body at 1000 chars. Pass silent:true to suppress sound. Returns 500 on platforms where notifications aren't supported.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoNotification body (up to 1000 chars).
titleYesNotification title (1-200 chars).
silentNoSuppress notification sound (default false).

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral disclosure burden. It discloses char limits, silent mode, return value (ok:true), and platform dependency error (500). Missing detailed side effects, but sufficient for a simple tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with primary purpose, followed by constraints. Every sentence adds value with no fluff. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (3 params, no output schema), the description fully covers purpose, all constraints, return value, and error conditions. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all parameters. The description partly repeats schema info (char limits, silent suppression) but adds no new parameter semantics beyond what's in schema. Meets baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool shows an OS-native notification via Electron's Notification API and returns ok:true. This is specific to notification functionality, distinguishing it from diverse sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides constraints (char limits, silent option, platform support issues) but does not explicitly state when to use this tool over alternatives or when not to use it. Usage is implied but not guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_active_sound_packA

Switch the active sound pack. Pack ids come from list_sound_effect_packs — typical built-ins are "_silent", "classic-beep", "soft-chime". Affects all 6 hook stages unless individually overridden via custom-sound assignments. Persisted via EffectsEngine _saveSettings.

ParametersJSON Schema
NameRequiredDescriptionDefault
packIdYesPack id (e.g. "classic-beep", "_silent").

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but description discloses that the action persists via EffectsEngine _saveSettings and affects all 6 hook stages, giving useful behavioral context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, front-loaded with purpose, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with 1 parameter and no output schema, the description fully covers purpose, parameter source, scope, and persistence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter with 100% schema coverage; description adds examples of valid pack IDs and explains their source, supplementing the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Switch the active sound pack' (verb+resource) and provides context about pack IDs coming from list_sound_effect_packs, distinguishing it from sibling tools like list_sound_effect_packs and set_sound_hook.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides guidance on where to find pack IDs (list_sound_effect_packs) and notes that it affects all hook stages unless overridden, implying when this tool is appropriate vs custom assignments.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_active_voice_cloneA

Set which voice clone is the active TTS default. Pass id=null to deactivate (no clone — falls back to built-in TTS). The id must match an existing clone (use list_voice_clones to discover ids).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesClone id, or null to deactivate.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses that setting a clone activates it as default TTS, deactivation falls back to built-in TTS, and id must match existing clone. Could mention persistence or error behavior but covers key traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, extremely concise, no redundant information. Purpose is front-loaded, and every sentence adds necessary context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one parameter and no output schema, the description covers the core scenario and deactivation. Referencing the discovery tool adds completeness. Could include return value info, but sufficient for a setter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with description 'Clone id, or null to deactivate.' Description adds value by explaining null behavior and the prerequisite of an existing clone, referencing a sibling tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Set which voice clone is the active TTS default', specifying verb (set) and resource (active voice clone). It distinguishes from siblings like get_active_voice_clone (read) and list_voice_clones (list) by focusing on setting and deactivation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to pass null to deactivate, and instructs to use list_voice_clones to discover ids. This provides clear context and an alternative tool for discovery.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_always_on_topA

Toggle whether the Windy Word window stays above other windows. Mirrors Settings → Appearance → Always on Top. Live update on the window + persist to appearance.alwaysOnTop. Idempotent.

ParametersJSON Schema
NameRequiredDescriptionDefault
onYestrue = pin above all, false = normal Z-order.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

In the absence of annotations, the description fully discloses key behavioral traits: it applies live updates to the window, persists the change to 'appearance.alwaysOnTop', and states idempotency. This provides an agent with a clear understanding of the tool's effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three sentences front-loading the core action. Every sentence adds value: purpose, mapping to settings, and behavioral notes. No extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (single boolean parameter, no output schema), the description covers all necessary aspects: purpose, behavior, persistence, and idempotency. It is complete for an agent to correctly invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides a clear description for the only parameter. The tool's description does not add additional semantic information about the parameter beyond what the schema states, so the score remains at the baseline for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Toggle' and clearly identifies the resource 'Windy Word window'. It further explains the effect (stays above other windows) and distinguishes itself from siblings by being a unique window management function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear usage context by referencing the equivalent setting ('Mirrors Settings → Appearance → Always on Top'). It implicitly guides when to use this tool, though it does not explicitly state when not to use it or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_analytics_enabledA

Opt in or out of anonymous usage analytics (engine, duration, mode, language — never transcript content). Mirrors Settings → Analytics → "Help improve Windy Word". Off by default. Live-applies to the renderer's localStorage flag.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYestrue = opt in, false = opt out.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description covers behavior: what data is/not collected, UI location, default state, storage mechanism. Lacks potential side effects like needing restart, but sufficient for a simple toggle.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with all essential information front-loaded. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a simple toggle tool: purpose, behavior, data policy, UI location, default, storage. No missing information needed for correct use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Single boolean parameter enriched with context: what true/false mean (opt in/out), what data is collected, UI path, and default. Adds meaning beyond schema description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb ('opt in or out'), resource ('anonymous usage analytics'), and specifics of data collected. Distinguishes from sibling tools which cover different features.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Describes the setting ('Off by default') and how it applies ('Live-applies to renderer's localStorage flag'). Could be slightly more explicit about when to toggle, but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_autostartA

Enable or disable Windy Word's auto-launch on user login. Linux writes/removes a .desktop autostart entry; macOS/Windows toggle via Electron's setLoginItemSettings. Returns the resulting state (enabled boolean) so agents can verify the change took.

ParametersJSON Schema
NameRequiredDescriptionDefault
enableYestrue to enable autostart, false to disable.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavioral traits: platform-specific mechanisms (Linux .desktop entry, Electron on macOS/Windows) and the return of the resulting state. This provides clear context for the mutation action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no extraneous words. Front-loaded with purpose, followed by platform details and return value. Efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description covers purpose, platform variation, and return verification fully. It is complete given the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is 100% and the description repeats the parameter semantics, it adds value by explaining platform-specific behavior and the return value, which goes beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: enabling or disabling Windy Word's auto-launch on user login. It specifies the verb-resource pair and distinguishes it from sibling tools by detailing platform-specific behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives like get_autostart_status. It implies usage for toggling autostart, but lacks explicit when/when-not guidance or mention of alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_configA

Patch the config store. Pass EITHER {path, value} for a single dotted-path write (e.g. path="engine.model", value="small"), OR {patch: {...}} for a flat object of dotted-path → value pairs applied in order. Changes persist immediately.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoDotted path (e.g. "engine.model").
patchNoObject of dotted-path → value, applied in iteration order.
valueNoValue for the single-path form.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses that changes persist immediately and explains the dotted-path syntax. But it doesn't mention side effects, permissions, or whether values are validated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action ('Patch the config store'), no wasted words. Each sentence is essential.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the two input forms and persistence, but omits return value (e.g., success/failure). For a mutation tool, more detail on output could be helpful, but overall adequate for selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, baseline 3. Description adds value by explaining the two usage patterns and that patch is applied in iteration order. This goes beyond the schema's basic parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it patches the config store and distinguishes two usage forms (single path-value or patch object). This differentiates it from sibling tools like set_setting or describe_setting.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells when to use each form: EITHER {path, value} for single write OR {patch} for batch. It also notes immediate persistence. However, it doesn't specify when not to use this tool or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_font_sizeA

Set the UI font-size zoom factor (70-150%). 100 is default. Mirrors the A- / A+ buttons in the Settings header. Persists to appearance.fontSize and broadcasts a font-size-changed event to the renderer so the live UI updates immediately.

ParametersJSON Schema
NameRequiredDescriptionDefault
percentYesZoom percentage. Clamped to 70-150.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden. It discloses that changes persist to 'appearance.fontSize' and that a 'font-size-changed' event is broadcast for immediate UI update. This provides clear behavioral insight.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each substantive. First defines purpose and range, second gives real-world analogy, third details persistence and event. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple parameter and no output schema, the description fully explains the tool's action, effects, and parameter meaning. No gaps or missing information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value by stating the default value (100) and the context of mirroring UI buttons. This enhances understanding beyond the schema's 'Zoom percentage. Clamped to 70-150.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verb 'Set' and clearly identifies the resource as 'UI font-size zoom factor' with a range of 70-150%. This distinguishes it from sibling tools, none of which relate to font size.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions it mirrors the A- / A+ buttons, providing context, but does not explicitly state when to use this tool versus alternatives or when not to use it. Usage is implied but not fully guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_hotkeyA

Rebind a keyboard shortcut. Action keys: toggleRecording, pasteTranscript, pasteClipboard, showHide, quickTranslate. Accelerator format is Electron-style (e.g. "CommandOrControl+Shift+Space", "Alt+W"). Triggers an immediate re-registration.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesWhich action to rebind.
acceleratorYesElectron accelerator (e.g. "CommandOrControl+Shift+Space"). Avoid reserved combos.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses that the tool 'triggers an immediate re-registration', which is a key behavioral trait. However, it lacks information on permissions, error handling, or whether the change is persistent or temporary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no wasted words. The first sentence states the purpose, the second lists valid keys, and the third provides format and side effect. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and simple parameters, the description covers the essential aspects: purpose, valid values, format, and that re-registration happens. It does not explain error scenarios or that it overrides existing bindings, but it is largely adequate for a straightforward tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value by listing the allowed action keys (enums) and explaining the accelerator format with examples (Electron-style) and a caution about reserved combos. This goes beyond the schema's descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool rebinds a keyboard shortcut, specifying verb 'rebind' and resource 'keyboard shortcut'. It lists specific action keys and accelerator format, distinguishing itself from sibling tools like list_hotkeys (listing) and reset_hotkeys (resetting).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for changing hotkey bindings, but does not explicitly state when to use or avoid this tool versus alternatives like reset_hotkeys. No exclusions or contextual guidance are provided, relying on the agent's understanding of the sibling tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_languageA

Set the Whisper transcription language. ISO 639-1 code (e.g. "en", "es", "fr", "ja", "zh", "ar", "hi", "de", "pt", "ko", "ru", "it", "nl", "pl", "tr", "sv", "vi", "th") — or "auto" to let Whisper detect per-utterance. Mirrors Settings → Transcription → Language. Hot-swappable: the live Python engine reconfigures over WebSocket without app restart; the new language applies on the next recording.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageYesISO 639-1 code or "auto".

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It discloses that the change occurs over WebSocket without app restart and applies on the next recording. This provides good insight into the tool's behavior, though it does not discuss potential permissions or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: the first clearly states the purpose and examples, the second provides behavioral details. No extraneous information, every sentence contributes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with no output schema, the description fully explains what it does, how it works (hot-swappable), and when changes apply. Complete and sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with the description 'ISO 639-1 code or "auto".' The tool description adds value by listing common examples and noting hot-swappability, which helps the agent understand the parameter's context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The tool's purpose is explicitly stated: 'Set the Whisper transcription language.' It specifies the verb (Set), the resource (Whisper transcription language), and provides a clear list of example ISO codes and 'auto'. This distinguishes it from any potential sibling tools (none directly related to language setting).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions that this mirrors a specific settings location ('Settings → Transcription → Language') and states that it is 'hot-swappable' and applies on the next recording. However, it does not explicitly exclude scenarios or provide alternatives, but given no sibling tool for language, this is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_master_sfx_volumeA

Set the master SFX volume (0-100). Affects every hook stage as a multiplier on per-stage volumes. Persists immediately to localStorage windy_sfxVolume and applies to the live EffectsEngine.sound master.

ParametersJSON Schema
NameRequiredDescriptionDefault
volumeYesMaster SFX volume 0-100. 0 = silent, 100 = full.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries full burden. It discloses immediate persistence to localStorage and application to EffectsEngine.sound master, which is sufficient for a simple setter. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no extraneous words, front-loaded with core purpose. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given single parameter, no output schema, no annotations, the description fully covers purpose, range, behavior, and persistence. Complete for a simple setter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers volume parameter fully (range 0-100). Description adds no extra semantic info about the parameter beyond what's in schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sets master SFX volume with range 0-100, specifies it affects every hook stage as a multiplier, and distinguishes from sibling tools like get_sound_effect_state or set_sound_hook by targeting global volume.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for global volume control, but does not explicitly contrast with per-stage volume tools. The context of 'multiplier on per-stage volumes' provides clear guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_modelA

Switch the active transcription model. Hot-reloads the running Python engine over WebSocket if it is currently active — no app restart needed. Model must be in the WindyTune ladder (see list_models).

ParametersJSON Schema
NameRequiredDescriptionDefault
modelYesModel id (e.g. "tiny", "base", "small", "medium", "large-v3").

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose all behavioral traits. It mentions hot-reloading the Python engine if active, which is good. However, it does not explain behavior when the engine is not active (e.g., does it queue the change?), nor potential side effects like interrupting current transcription. This leaves some ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, each serving a distinct purpose: stating the primary action and the method, and adding a usage constraint. No redundant words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, single-parameter tool with no output schema, the description covers the essential aspects: what it does, how it works, and a prerequisite. It could be improved by clarifying behavior in edge cases (e.g., no active engine), but is otherwise complete enough for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage with a description for the only parameter. The tool description adds value by stating the constraint that the model must be in the WindyTune ladder, which is not present in the schema. This helps the agent select a valid value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb-resource pair ('Switch the active transcription model') and clearly distinguishes from related tools like list_models. It also adds implementation details (hot-reload via WebSocket) that make the tool's purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear prerequisite: the model must be in the WindyTune ladder, and instructs users to consult list_models. It does not explicitly state when not to use this tool, but the guidance is sufficient for typical scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_opacityA

Set the Windy Word window opacity (0.1 = mostly transparent, 1.0 = fully opaque). Mirrors Settings → Appearance → Window Opacity. Live update on the window + persist to appearance.opacity. Values outside [0.1, 1.0] are rejected.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesOpacity 0.1-1.0.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description fully discloses key behaviors: live update ('Live update on the window'), persistence ('persist to appearance.opacity'), and input validation ('Values outside [0.1, 1.0] are rejected'). With no annotations present, this provides complete clarity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no extraneous words. The first sentence states the action and range. The second adds key behavioral details. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers input, behavior, and validation sufficiently for invocation. However, it does not mention the return type (e.g., success/failure), which could be helpful for debugging. Given the tool's simplicity, minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'value' has schema coverage of 100% but the description enriches it with contextual meaning: the range explained in plain language ('0.1 = mostly transparent, 1.0 = fully opaque'), relation to settings, and rejection policy. This adds significant value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Set'), the target ('Windy Word window opacity'), and the valid range (0.1-1.0). It also references the settings path ('Mirrors Settings → Appearance → Window Opacity'), which adds specificity and distinguishes it from other window-related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for adjusting window transparency and references the settings location, providing context. However, it does not explicitly state when to use versus alternatives (though no direct alternative exists among siblings).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_panel_visibilityA

Configure how one of the bottom panel rows behaves in the main app: "always" pins it open, "hover" reveals it when the cursor is near the bottom edge, "hidden" never shows it. Mirrors Settings → Bottom Panel. "playback" and "export" default to "hover"; "control" defaults to "always".

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesVisibility behavior.
panelYesWhich row to configure.

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It explains the modes and default values, but does not disclose if changes persist, require permissions, or trigger UI updates. The 'mirrors Settings' hint implies persistence, but more explicit behavioral details would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, no wasted words. It states the purpose, lists modes with definitions, and provides defaults. Perfectly concise and structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and simple enum parameters, the description is fully complete. It covers what the tool does, all parameter options with effects, and relevant settings context. No information is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, yet the description adds significant meaning: it defines each mode's behavior ('pins it open', 'reveals it when cursor is near', 'never shows it') and provides default values per panel. This goes well beyond the schema's terse descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: configuring the visibility behavior of bottom panel rows in the main app. It lists the three modes and three panel rows, making the function unambiguous. Among sibling tools, there are no similar visibility configuration tools, so it is well-differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly mentions the tool mirrors a Settings menu, providing context for when to use it programmatically. It does not state when not to use or suggest alternatives, but the context is clear and sufficient for an agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_paste_strategyA

Select a paste strategy. Pass "auto" to use the platform default chain, or a specific strategy name (e.g. "wtype", "ydotool_type", "osascript_cmdv"). Optionally override the fallback chain. Strategy names come from list_paste_strategies.

ParametersJSON Schema
NameRequiredDescriptionDefault
strategyYesStrategy name (or "auto"). Must match a name returned by list_paste_strategies.
fallbackChainNoOptional override for the fallback order. If omitted, leaves the existing chain.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It explains the parameters and basic effect (selects a strategy), but does not disclose persistence, immediate impact, or side effects of setting the strategy or overriding fallback.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (three sentences) and front-loaded with the core action. No extraneous information is included.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and a simple setter action, the description is largely complete. It covers parameter usage and source of valid values, but could mention return behavior (e.g., success indication) for full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the 'auto' option, giving examples of valid strategy names, and explicitly tying names to list_paste_strategies, which the schema description does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool selects a paste strategy with specific verb 'Select'. It provides examples and references list_paste_strategies, but does not explicitly differentiate from sibling tools like auto_paste or get_active_paste_strategy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains how to use the tool (pass 'auto' or a specific name, optionally override fallback), but lacks explicit guidance on when to use it versus other paste-related siblings like test_paste_strategy or auto_paste.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_settingA

Validate and apply a setting change against the catalog. Rejects unknown paths, type mismatches, out-of-range numbers, invalid enum values, malformed accelerators, and attempts to write read-only settings (e.g. license.*). On success, returns the previous + new value, any side effects that fired (e.g. "global shortcuts re-registered", "python engine hot-reload sent"), and whether a restart is required for the change to take full effect. Use set_config to bypass the catalog (low-level, no validation — for paths outside the catalog).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesDotted path. Get the catalog from list_settings.
valueYesNew value. Must match the type the catalog declares for this path.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavior: lists all rejection conditions (unknown paths, type mismatches, etc.) and return details (previous+new value, side effects, restart requirement). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, then validation details, then success output and alternative. No redundancy, each sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description fully covers validation behavior, return values, side effects, and restart implications. Also references sibling tool for alternative use. Complete for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (both path and value described). Description adds extra context: path is a dotted path and can be obtained from list_settings; value must match catalog type. Exceeds baseline 3 by providing actionable info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Validate and apply a setting change against the catalog,' providing a specific verb (validate and apply) and resource (setting change). It also distinguishes from the sibling tool set_config, making the purpose clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises when to use an alternative: 'Use set_config to bypass the catalog (low-level, no validation — for paths outside the catalog).' This gives clear contextual guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_sound_effect_modeA

Switch the EffectsEngine mode: "silent" (no sounds), "classic" (built-in beeps), "surprise" (random selection from a category), "custom" (per-hook user-assigned sounds), "pack" (active pack drives everything). Persisted via _saveSettings.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that the mode is persisted via '_saveSettings', covering a key behavioral trait. It does not mention immediate effect on sound output or side effects, but for a simple mode switch, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, no fluff. It front-loads the action and explains each mode efficiently. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one parameter, no output schema, and no annotations, the description is largely complete. It covers mode values and persistence. It could optionally mention immediate effect, but not essential for a simple switch.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does so by explaining each enum value of the 'mode' parameter in detail, adding meaning beyond the raw enum list in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verb 'Switch' and resource 'EffectsEngine mode', lists all five enum values with clear explanations, and distinguishes from sibling tools like set_sound_hook and set_active_sound_pack that handle different aspects of sound effects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the tool does but does not provide explicit guidance on when to use it versus alternatives (e.g., set_sound_hook for per-hook sounds, set_active_sound_pack for pack selection). The purpose is clear, but no 'when not to use' or alternative references are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_sound_hookA

Configure a single sound-effect hook stage. Hooks are the 6 lifecycle points where Windy Word plays sounds: start (🎬 begin recording), during (🎤 mid-recording chirps), stop (⏹️ end recording), process (⏳ Whisper transcribing), warning (⚠️ approaching session limit), paste (📋 transcript injected). Each hook has enabled (boolean) + volume (0-100 int). Pass any combo of those args — omitted ones are unchanged. Routes through the renderer EffectsEngine and persists via _saveSettings to localStorage.

ParametersJSON Schema
NameRequiredDescriptionDefault
hookYesWhich of the 6 hook stages.
volumeNoPer-stage volume 0-100. Multiplies with master SFX volume.
enabledNoMute (false) / unmute (true) this stage.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries full burden. It discloses persistence via EffectsEngine and localStorage, and mentions partial update behavior. However, it omits whether changes take effect immediately or any side effects (e.g., does setting enabled trigger a sound?).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise but includes emoji examples that, while helpful, slightly increase length. It front-loads the main action and details hook stages efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and 3 simple parameters, the description covers the hook lifecycle, update behavior, and persistence. It does not mention error conditions or return values, but for a straightforward configuration tool, this is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining that omitted parameters remain unchanged (partial update semantics) and reiterates the volume range. This goes beyond the schema's static field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool configures a single sound-effect hook stage, enumerates all 6 hooks with emoji examples, and specifies the modifiable parameters (enabled, volume). It distinguishes from siblings like set_master_sfx_volume by focusing on per-stage settings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains that hooks are lifecycle points and that you can pass any combination of arguments (omitted unchanged), which implies partial updates. However, it does not explicitly contrast with other sound tools (e.g., set_active_sound_pack) or state when NOT to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_themeA

Switch the UI theme. "dark" / "light" force one mode; "auto" follows the OS appearance. Mirrors Settings → Appearance → Theme. Persists to electron-store and propagates to the renderer (light-theme body class + localStorage.windy_theme) live — no app restart.

ParametersJSON Schema
NameRequiredDescriptionDefault
themeYesTheme mode.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses persistence to electron-store, propagation to the renderer via body class and localStorage, and live update without restart. This is thorough for a simple mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no fluff. The action is front-loaded, and every sentence adds value. Perfectly sized for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description sufficiently covers what happens (persist, propagate, live update). It does not mention return value, but for a setter this is acceptable. No gaps in essential information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, baseline 3. The description adds meaning by explaining the semantics of the enum values ('dark'/'light' force, 'auto' follows OS), which goes beyond the schema's bare 'Theme mode.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Switch' and the resource 'UI theme', and explains the three modes. However, it does not explicitly distinguish this tool from siblings like 'set_setting', which could also affect theme. Still, the purpose is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use each mode (force dark/light vs follow OS) and mentions it mirrors the Settings menu. It does not provide explicit when-not-to-use or alternative tools, but the context is adequate for a straightforward setter.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setup_install_polkit_ruleA

Install or remove the Linux polkit auto-approve rule that lets install_dependency run without prompts. CRITICAL ONE-TIME SETUP for the agent-native install flow on a fresh machine: triggers a single pkexec password prompt for THIS call (the user types their password once); thereafter every install_dependency call for a whitelisted tool (wtype/ydotool/wl-clipboard/xdotool/ffmpeg) runs prompt-free. Uses subject.active so the rule applies to any logged-in user on the machine (not hardcoded to a single account). Linux only — returns 501 on macOS/Windows.

Recommended flow:

  1. run_diagnostics — see if install_polkit_rule check is warning

  2. setup_install_polkit_rule({enable: true}) — user types password once

  3. install_dependency({tool: "wtype"}) — silent install, no prompt

Pass enable=false to remove the rule (also triggers a polkit prompt).

ParametersJSON Schema
NameRequiredDescriptionDefault
enableYestrue to install the rule, false to remove it.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavior: triggers a single pkexec prompt for this call, after which install_dependency runs without prompts; uses subject.active for all users; removal also triggers a prompt. No hidden side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise yet comprehensive, front-loading the critical purpose and criticality. The recommended flow is clearly formatted as a bullet list, and every sentence adds necessary context without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single boolean parameter and no output schema, the description covers all needed context: purpose, usage, platform restriction, dependency on user interaction, and side effects for both enable true and false. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already describes the boolean 'enable' parameter with good coverage. Description adds value by explaining the behavioral difference between true and false (install vs remove, each triggering a prompt), surpassing the schema's basic description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool installs or removes a Linux polkit auto-approve rule, distinct from siblings like install_dependency. It specifies the resource (polkit rule) and action (install/remove), and notes Linux-only with a 501 error on other platforms.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides an explicit recommended flow (run_diagnostics → this tool → install_dependency) and explains when to pass enable=false. Also states Linux-only, guiding the agent not to invoke on macOS/Windows.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_video_fullscreenA

Toggle the main window into native OS-level fullscreen. On macOS uses setSimpleFullScreen (works with the focusable:false main window — doesn't need key window); other platforms use standard setFullScreen. Used by the History video-expand button (PR #143). For UI font zoom use set_font_size; for in-window maximize use maximize_window.

ParametersJSON Schema
NameRequiredDescriptionDefault
onYestrue = enter fullscreen, false = exit.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries burden. It discloses platform-specific behavior (macOS setSimpleFullScreen vs standard setFullScreen) and mentions it works with focusable:false main window. Does not cover potential side effects, but sufficient for a simple toggle.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences: first defines core purpose, second adds platform details, third gives alternative tools. Front-loaded, no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given simple tool with one boolean parameter and no output schema, description covers purpose, platform differences, and usage context. No missing details for a standard window management operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions already clear ('true = enter fullscreen, false = exit'). Description adds no new meaning beyond confirming toggle behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it toggles the main window into native OS-level fullscreen, with specific verb 'Toggle' and resource 'main window fullscreen'. It distinguishes from siblings like set_font_size and maximize_window.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides when to use (History video-expand button) and when not to (use set_font_size for font zoom, maximize_window for in-window maximize). Lacks broader prerequisites but is clear for its scope.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_window_geometryA

Set the main window's position and size in screen pixels. Updates the live window AND persists to window.{x,y,width,height} so it survives restart. Useful for arranging the app before a demo or moving it to a specific monitor.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesWindow x position in screen pixels.
yYesWindow y position in screen pixels.
widthYesWindow width in pixels (200-4000).
heightYesWindow height in pixels (200-4000).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reveals that updates are both live and persistent: 'Updates the live window AND persists to window.{x,y,width,height} so it survives restart.' This goes beyond the input schema, but does not discuss error handling or constraints beyond what the schema provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the main action, and contains no unnecessary words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple setter tool with no output schema, the description covers purpose, persistence, and a use case. It does not explain the return value, but that is typically inferred.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already has 100% coverage with descriptions for each parameter. The description adds context but does not enhance parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Set the main window's position and size' with specific units (screen pixels). It distinguishes from sibling tools like minimize_window or maximize_window by focusing on position and size.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear use case: 'arranging the app before a demo or moving it to a specific monitor.' It does not explicitly state when not to use, but the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

show_hide_windowA

Cycle the Windy Word window through its three states: full → mini tornado → hidden → full.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It transparently discloses the cycle sequence (full → mini tornado → hidden → full). However, it does not mention potential side effects like focus changes or platform compatibility, but for a simple toggle this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the action ('Cycle') and concisely specifies the states and order. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with simple behavior, the description is nearly complete. It explains the states and cycle order. It lacks mention of initial state or prerequisites (e.g., window must exist), but these are minor omissions given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, and schema description coverage is 100% (trivial). The description does not need to add parameter meaning because there are none. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool cycles a specific window through three distinct states (full, mini tornado, hidden) in a defined order. It uses a specific verb 'cycle' and resource 'Windy Word window', distinguishing it from sibling tools that perform single-state actions like minimize_window or maximize_window.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for cycling through window states but does not provide explicit guidance on when to use this tool versus alternatives (e.g., individual state commands). It lacks when-not-to-use or prerequisite context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

speak_textA

Speak text aloud through the OS's system TTS. Use this whenever the user can't see the screen — confirmations ("OK, I muted notifications"), read-backs ("here's your transcript: ..."), or eyes-free conversation. Returns 200 immediately after starting playback (does NOT block for audio duration). Default interrupt:true cancels any currently-playing TTS so a new utterance always wins; pass interrupt:false to queue. voice and rate are platform-specific — call list_tts_voices first if the user asks for a particular voice. Linux requires festival or espeak installed; failure returns a structured hint.

ParametersJSON Schema
NameRequiredDescriptionDefault
rateNoOptional speech rate. macOS: words-per-minute (default ~175). Omit for OS default.
textYesText to speak. Max 5000 chars; break longer messages into chunks.
voiceNoOptional voice name (platform-specific, e.g. "Samantha" on macOS). Omit for OS default.
interruptNoIf true (default) cancels any in-flight TTS before speaking. Set false to queue after current speech.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but description fully covers behavior: non-blocking (returns 200 immediately), interrupt default (true) with queue option, platform-specific voice/rate, and Linux requirement. Also mentions error handling (failure returns structured hint).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a single paragraph but efficiently conveys purpose, usage, behavior, and parameter details. Could be slightly more structured (e.g., bullet points) but remains concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has 4 params, no output schema. Description covers all essential aspects: operation, use cases, parameter defaults, platform considerations, dependency, and failure mode. No gaps identified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but description adds value: max length on text, interrupt default true, rate as words-per-minute on macOS, and advice to use list_tts_voices for voice. Only minor improvement would be clarifying rate default format for other platforms.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool speaks text aloud via system TTS, and distinguishes from sibling tools like stop_speaking and list_tts_voices by providing use cases (when user can't see screen) and alternatives for voice selection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description explicitly states when to use ('when user can't see the screen') and provides examples (confirmations, read-backs). It recommends calling list_tts_voices first for specific voices and notes Linux dependency. Lacks explicit when-not-to-use but sufficiently guides usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_recordingA

Begin a voice recording (mode-aware: batch / streaming / API engine). The actual mic-capture + WebSocket setup completes asynchronously after the call returns — poll get_recording_state to confirm the live state. Idempotent: if already recording, returns { ok: true, alreadyRecording: true } without firing a second start.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description bears full transparency burden. It discloses the async nature of the actual setup, idempotent behavior with return shape, and that the call returns immediately. However, it does not elaborate on mode-awareness or potential errors. Still adequate for a simple start tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, no wasted words. It front-loads the primary action and then adds critical behavioral details (async, idempotent). Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no input parameters and no output schema, the description covers the essential behavior: how to start, async follow-up, and idempotency. It does not detail return values beyond the idempotent case, but that is acceptable for a simple trigger tool with siblings for state checking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and schema coverage is 100%. The description implies no arguments are needed, which is clear. Baseline for no parameters is 4, and the description adds no misleading information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Begin a voice recording,' clearly stating the action and resource. It mentions mode-awareness and distinguishes itself from siblings like stop_recording and cancel_recording. The purpose is explicit and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (to start a recording) and provides guidance on polling get_recording_state to confirm live state. It does not explicitly compare with siblings like toggle_recording, but the async and idempotency notes offer useful context. Some missing when-not-to-use information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stop_recordingA

End the current recording and trigger the transcription + paste pipeline against the window that had focus when recording started. Idempotent: returns { ok: true, alreadyStopped: true } if no recording is active.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description fully discloses behavioral traits: it ends the recording, triggers transcription+paste, targets the window that had focus, and is idempotent with a specific return value for the no-recording case. No annotations are present, so the description carries the full burden and meets it well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two concise sentences that are front-loaded with the primary action and include important details like idempotency and return value. Every sentence adds value with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and no output schema, the description covers the main behavior, target window, and idempotency case. However, it does not specify the return value for a successful stop (only for the already-stopped case), which is a minor gap given the absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the input schema is fully covered. The baseline for 0 parameters is 4, and the description adds no parameter information (as none exist), so this score is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'End' and the resource 'current recording', and specifies the subsequent action of triggering the transcription + paste pipeline against the focused window. It distinguishes from siblings like start_recording and cancel_recording by describing a complete pipeline.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when a recording is active and wants to stop and process it. It does not explicitly contrast with cancel_recording or toggle_recording, but the context of 'transcription + paste' suggests when to use this vs. a simple cancel. No explicit 'when not to use' guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stop_speakingA

Silence any in-flight TTS playback immediately. Use this when the user says "stop", "shut up", "be quiet", or interrupts to ask something new. Safe to call when nothing is playing.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses immediate silencing and safety when nothing is playing. Without annotations, it could add details like whether it cancels all queued TTS, but the current info is sufficient for a simple action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action and context. Every word earns its place; no unnecessary fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema or annotations, the description fully covers purpose, usage, and safety. It is complete for a zero-parameter stop action tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. The description adds no extra parameter info, which is appropriate; baseline score of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool silences any in-flight TTS playback immediately, using a specific verb and resource. It distinguishes itself from sibling tools like speak_text or stop_recording by focusing on TTS.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly lists trigger phrases (stop, shut up, be quiet, interrupt) and notes it is safe to call when nothing is playing, providing clear guidance on when to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_voice_clone_to_cloudA

Submit a local voice clone to Windy Clone for ElevenLabs training. Idempotent on cloud_order_id: if the clone has already been submitted, returns { ok: false, error: "Already submitted...", cloud_order_id: } without firing a second submission. Requires the user to be signed in to their Windy account (auth.token in electron-store). On success returns { ok: true, order_id, status }; poll get_cloud_clone_order_status with the returned order_id for training progress. Get clone ids from list_voice_clones.

ParametersJSON Schema
NameRequiredDescriptionDefault
cloneIdYesLocal clone id from list_voice_clones (e.g. "vc_2026-05-21_abc123").

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses idempotency, authentication requirements (auth.token in electron-store), and success response structure. However, it does not mention potential errors beyond the idempotent duplicate case (e.g., network failures, invalid cloneId).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four concise sentences, each essential: purpose, idempotency behavior, auth and response details, and cross-reference to sibling tools for IDs and polling. Information is front-loaded and no redundant text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity and lack of output schema, the description covers all necessary aspects: what it does, idempotency, input source, auth requirement, return fields, and follow-up actions. It references related tools for cloning lifecycle, providing complete context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers the single parameter with 100% coverage. The description adds meaningful context by providing an example value ('vc_2026-05-21_abc123') and specifying the source (list_voice_clones), which goes beyond the schema description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('submit a local voice clone to Windy Clone for ElevenLabs training') and explicitly distinguishes from sibling tools by referencing list_voice_clones for obtaining clone IDs and get_cloud_clone_order_status for polling progress.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains idempotency ('if the clone has already been submitted...') to guide repeated invocations, and implies the tool should be used after creating a local clone. However, it does not explicitly state when not to use this tool or list alternative tools for other scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

test_paste_strategyA

WARNING: injects test text ("wtest") into whatever window currently has focus. Use to verify a specific strategy works on this machine. Returns timing + success flag. Have the user focus a known-safe target (e.g. a text editor) before calling.

ParametersJSON Schema
NameRequiredDescriptionDefault
strategyYesStrategy name to test. Get the list from list_paste_strategies.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description warns about the injection into the focused window, explains returns (timing + success flag), and instructs safety precautions. Lacks details on edge cases like no window focused.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with a front-loaded warning and clear, essential information; no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one parameter and no output schema, the description fully explains purpose, return values, and a critical safety condition, making it complete for a test tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers the single parameter with a description linking to list_paste_strategies; the tool description adds no further parameter details, so baseline 3 applies due to high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Describes injecting test text into the focused window to verify a paste strategy, which clearly distinguishes it from sibling tools like list_paste_strategies or set_paste_strategy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States to use for verifying a strategy on the machine, and provides a prerequisite to focus a safe target. Does not explicitly exclude alternative tools but gives clear context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

toggle_recordingA

Toggle voice recording on or off (same effect as the global hotkey). If currently idle, starts listening. If currently recording, stops and triggers the transcription + paste pipeline against whatever window had focus when recording started.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description fully carries burden. It explains both states: starts listening if idle, stops and triggers transcription+paste if recording, including window focus detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, efficient and front-loaded. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, it explains the result (starts/stops and pipeline). Lacks potential failure modes but overall sufficient for a simple toggle.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so schema coverage is 100% but empty. Description adds meaning beyond schema by explaining the toggle behavior and pipeline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it toggles voice recording on/off, explains the effect (same as global hotkey). Distinguishes from sibling tools like start_recording and stop_recording by being the combined action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says it's same as global hotkey, and describes behavior when idle vs recording. Provides clear context for when to use, though doesn't explicitly say when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transcribe_audio_fileA

Transcribe an audio file at a given path. Accepts any format ffmpeg can read (wav, mp3, m4a, ogg, flac, webm, etc. — auto-detected). Routes through the same Python Whisper engine the Windy Word desktop app uses for live transcripts (no cold start when the engine is warm — WebSocket-routed for sub-second hand-off). Returns transcript text + timing diagnostics (transcribeMs, audioDurationSec, ratio = transcribe/audio, modelUsed). 500MB file cap; 60s ffmpeg ceiling; 120s WS ceiling. Designed for individual files — agents wanting bulk processing should iterate over a directory and call this per file.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute or working-dir-relative path to the audio file.
languageNoISO-639-1 language hint for Whisper (default "en"). Pass "auto" to let the model detect.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses engine (Whisper), routing (WebSocket), return fields (transcript, timing diagnostics), and file/processing caps. No annotations exist, but description adequately covers behavioral traits without contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at about 4 sentences, front-loaded with the main verb and object. Every sentence adds value, though the last sentence could be integrated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description fully specifies return fields and diagnostic details. It covers format support, engine, limits, and usage pattern, making it complete for an agent's decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The description adds context about ffmpeg format support and language auto-detection, but these are incremental to the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool transcribes an audio file at a given path, explicitly distinguishes from bulk processing needs by directing agents to iterate per file, and no sibling tool offers transcription.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context for when to use the tool (individual files, not bulk), and lists technical limits (500MB, 60s ffmpeg, 120s WS). However, it does not explicitly exclude alternative tools since none exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

translate_textA

Translate text to a target language. Tries the local translation-memory cache first (instant + free); on miss, calls Groq (preferred) or OpenAI via Windy Word's configured key. The TM cache auto-populates from successful calls so repeat translations are free. Source language defaults to "auto" (model detects); only concrete source-lang calls hit the TM. Returns {ok, translation, fromCache, sourceLang, targetLang, engine}.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to translate.
sourceLangNoSource language code or "auto" (default).
targetLangYesTarget language code (e.g. "es", "fr", "ja").

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses caching behavior (local TM cache first, auto-populates), engine fallback (Groq preferred, then OpenAI), and default source detection. Returns structure is also explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph of five sentences, well-structured with main action first. It is concise but could be slightly more compact without losing key details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explicitly lists return fields (ok, translation, fromCache, sourceLang, targetLang, engine). It covers caching, engine fallback, and default behavior, making it sufficiently complete for a translation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is 100%, the description adds value by explaining the caching logic, default behavior for sourceLang, and the return structure. This context helps the agent understand parameter usage beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the primary action 'Translate text to a target language' and details the caching mechanism, distinguishing it from a simple translation. However, it does not explicitly differentiate from the sibling 'quick_translate' tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the caching behavior and engine fallback, implying when to use. It notes that sourceLang defaults to 'auto' and only concrete source-lang calls hit the translation memory. However, it lacks explicit when-not or comparison with alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

undo_last_setting_changeA

Revert the most recent catalog-validated setting change in this session. Use this when the user says "undo", "undo that", "put it back", "I didn't mean to change that", or "that was too loud, go back". Pops the last entry from the change history and replays the previousValue through the same apply path as set_setting (so hotkey re-registration, renderer live-apply, and engine hot-reload all fire correctly). Returns 404 with a clean error when there's nothing to undo. Cannot undo a /config raw write — only catalog-validated changes (set_setting, set_theme, set_language, set_font_size, set_opacity, set_always_on_top, set_panel_visibility, set_analytics_enabled, set_hotkey, set_model).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description bears full burden. It explains the pop-and-replay mechanism, impact on hotkeys/renderer/engine, and error return (404 with clean message) when history is empty. Fully transparent about internal behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is compact with each sentence serving a distinct purpose: purpose, usage, behavior, limitations. Could be slightly tightened but remains informative without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, annotations, or output schema, the description covers all needed context: trigger phrases, list of undoable operations, behavior details, error handling, and constraints (no raw writes). Entirely sufficient for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema_coverage is 100%. Description does not need to add parameter details; it appropriately focuses on tool behavior and scope. The listing of undoable tools adds context but doesn't affect parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool reverts the most recent catalog-validated setting change. The verb 'revert' and specific resource 'catalog-validated setting change' make the purpose unambiguous. Distinguished from siblings as the only undo tool among many set_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides usage triggers (user says 'undo', 'undo that', etc.) and includes a list of which tools are undoable. Also states what cannot be undone (raw /config writes), giving clear guidance on when to use vs. avoid.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unmaximize_windowA

Restore the main window from maximized to its previous size. No-op if not maximized.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully carries the transparency burden. It discloses a key behavioral trait: the tool is a no-op if the window is not maximized. This provides useful safety information for the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core action. No extraneous words; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple operation with no parameters and no output schema, the description covers all necessary information: what it does, its condition (maximized), and its safety (no-op otherwise). It is complete for its complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the schema is complete. The description does not need to add parameter details; the baseline score for no parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Restore the main window from maximized to its previous size.' It also specifies it is a no-op if not maximized, which precisely distinguishes it from sibling tools like maximize_window or minimize_window.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when the window is maximized to restore it. While it does not explicitly list when not to use or provide alternatives, the context and sibling tools make the intended usage clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

watch_folder_for_recordingsA

Start (enabled:true) or stop (enabled:false) a folder watcher that auto-ingests new audio files as they land. Use this when the user says "watch my Voice Memos folder", "anytime I drop a file in ~/Recordings, add it to my clone", or "auto-import new recordings". Chokidar-backed: ignoreInitial:true so existing files don't trigger; awaitWriteFinish so in-progress writes complete before ingest. autoIngest defaults true (unsupported file types are silently skipped). Watchers are in-memory only — they do NOT survive an app restart, so a long-running watch needs re-registration after every launch. Calling enable on an already-watched path returns "already-watching" with the existing meta.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFolder to watch.
enabledNotrue (default) starts the watcher; false stops it.
autoIngestNoWhen true (default) auto-ingest new audio files. When false, just log detection.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and delivers comprehensive behavioral disclosure. It covers start/stop via 'enabled', Chokidar specifics (ignoreInitial:true, awaitWriteFinish), autoIngest behavior (silent skip of unsupported files), in-memory only persistence, and duplicate enable response. This is thorough and transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and concisely covers key details. It includes multiple subpoints but remains focused. Minor improvement could be structuring into bullet points, but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and moderate complexity, the description covers tool purpose, behavior, limitations, and parameter meanings. It specifies return value for one edge case but does not describe full success/error response format. Still, it is largely complete for agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds value beyond schema by explaining defaults (enabled and autoIngest default true), behavior of autoIngest (silent skip), and the 'already-watching' response for duplicate enables. This enriches parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to start or stop a folder watcher that auto-ingests audio files. It uses specific verbs ('start/stop') and resources ('folder watcher'). It distinguishes from siblings like 'scan_folder_for_media' by emphasizing real-time watching and providing natural language use cases such as 'watch my Voice Memos folder'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage triggers ('Use this when the user says...') and explains behavior for enabling an already-watched path. However, it does not explicitly list alternatives or when not to use this tool, though sibling tools imply differentiation. The note about in-memory watchers not surviving restart offers important context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 115 tool updatesv1.11.0
    • First observedarchives_by_date_range
    • First observedauto_paste
    • First observedbring_window_to_front
    • First observedbulk_delete_archives
    • First observedbulk_export_archives_text
    • First observedbulk_ingest_to_clone
    • First observedcancel_recording
    • First observedcheck_for_updates
    • First observedclear_install_history
    • First observedclear_paste_history
    • First observedclear_translation_memory
    • First observedcloud_diagnose
    • First observedcreate_voice_clone_from_path
    • First observeddelete_archive_entry
    • First observeddelete_voice_clone
    • First observeddescribe_setting
    • First observeddetect_hardware
    • First observedexport_soul_file_to_path
    • First observedextract_document_text
    • First observedget_active_paste_strategy
    • First observedget_active_voice_clone
    • First observedget_archive_stats
    • First observedget_autostart_status
    • First observedget_billing_history
    • First observedget_billing_summary
    • First observedget_cloud_clone_order_status
    • First observedget_config
    • First observedget_install_history
    • First observedget_install_status
    • First observedget_my_plan
    • First observedget_paste_history
    • First observedget_paste_target
    • First observedget_platform
    • First observedget_recording_state
    • First observedget_sound_effect_state
    • First observedget_translation_memory_stats
    • First observedget_version
    • First observedget_widget_state
    • First observedget_window_state
    • First observedget_windytune_state
    • First observedinstall_dependency
    • First observedinstall_dependency_async
    • First observedlist_archive_entries
    • First observedlist_audio_devices
    • First observedlist_clone_bundles
    • First observedlist_clone_watchers
    • First observedlist_diagnostic_checks
    • First observedlist_hotkeys
    • First observedlist_install_jobs
    • First observedlist_installable_dependencies
    • First observedlist_models
    • First observedlist_paste_strategies
    • First observedlist_recent_setting_changes
    • First observedlist_settings
    • First observedlist_sound_effect_packs
    • First observedlist_tts_voices
    • First observedlist_voice_clones
    • First observedlogout_account
    • First observedlookup_translation_memory
    • First observedmaximize_window
    • First observedminimize_window
    • First observedopen_archive_folder
    • First observedopen_billing_portal
    • First observedopen_upgrade_checkout
    • First observedopen_url
    • First observedpaste_transcript
    • First observedpause_other_audio
    • First observedpreview_voice_clone
    • First observedquick_translate
    • First observedquit_app
    • First observedread_archive_entry
    • First observedreset_hotkeys
    • First observedrestart_app
    • First observedresume_other_audio
    • First observedrun_diagnostics
    • First observedrun_paste_injection_test
    • First observedsave_text_file
    • First observedsave_translation_memory
    • First observedscan_folder_for_media
    • First observedsearch_archives
    • First observedsend_notification
    • First observedset_active_sound_pack
    • First observedset_active_voice_clone
    • First observedset_always_on_top
    • First observedset_analytics_enabled
    • First observedset_autostart
    • First observedset_config
    • First observedset_font_size
    • First observedset_hotkey
    • First observedset_language
    • First observedset_master_sfx_volume
    • First observedset_model
    • First observedset_opacity
    • First observedset_panel_visibility
    • First observedset_paste_strategy
    • First observedset_setting
    • First observedset_sound_effect_mode
    • First observedset_sound_hook
    • First observedset_theme
    • First observedset_video_fullscreen
    • First observedset_window_geometry
    • First observedsetup_install_polkit_rule
    • First observedshow_hide_window
    • First observedspeak_text
    • First observedstart_recording
    • First observedstop_recording
    • First observedstop_speaking
    • First observedsubmit_voice_clone_to_cloud
    • First observedtest_paste_strategy
    • First observedtoggle_recording
    • First observedtranscribe_audio_file
    • First observedtranslate_text
    • First observedundo_last_setting_change
    • First observedunmaximize_window
    • First observedwatch_folder_for_recordings

TDQS

A3.9/5.0
Disambiguation4/5

Despite a large toolset at 115, most tools have detailed descriptions that clearly distinguish their specific purposes. Some potential overlap exists between settings tools (list_settings vs describe_setting vs set_setting) but descriptions clarify the differences. Overall, an agent can reliably select the correct tool.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern (e.g., list_paste_strategies, get_active_paste_strategy, set_paste_strategy). No mixing of conventions like camelCase or snake_case. This predictability aids agent navigation.

Tool Count2/5

At 115 tools, the count is far above the typical 3-15 range for well-scoped servers. While the domain is broad (covering recording, paste, settings, voice cloning, etc.), many tools could be combined or reduced. The extreme quantity feels excessive for a single MCP server.

Completeness4/5

The toolset is remarkably comprehensive for the Windy Word application, covering CRUD-like operations for voice clones, archives, settings, and translation memory. Minor gaps exist (e.g., no direct tool to retrieve the last transcript without archive search), but overall it provides a thorough surface.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server that provides computer control capabilities including mouse movements, keyboard actions, screenshot capture with OCR, and window management through a unified API.
    165
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A standalone MCP server for Windows desktop control, enabling screenshots, mouse and keyboard input, app launch, window/display management, and clipboard access via natural language.
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A local MCP server for controlling Windows desktop applications through Win32 automation, enabling window listing, launching, clicking, typing, shortcuts, screenshots, and folder monitoring.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sneakyfree/windy-word-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server