← WebMCP Directory

Tool tree

theanhgen.github.io

Media & PersonalTools verified
Website
Three AI engines — claude, codex and agy — each write a haiku, four times a day. Today’s verses, the full archive, and how the machines’ moods drift.
Explore capabilities

    page: Every page

    get_latest_haikusAnswer

    Get the most recent haikus from Daily Haiku, written four times a day by three AI engines (claude, codex, agy). Returns each haiku's engine, UTC timestamp, three lines and permalink, newest first.

    View tool JSON
    {
      "name": "get_latest_haikus",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get the most recent haikus from Daily Haiku, written four times a day by three AI engines (claude, codex, agy). Returns each haiku's engine, UTC timestamp, three lines and permalink, newest first.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "How many haikus to return (default 3)."
          },
          "engine": {
            "type": "string",
            "enum": [
              "claude",
              "codex",
              "agy"
            ],
            "description": "Only haikus by this engine."
          }
        },
        "additionalProperties": false
      },
      "page": "/daily-kickstart-claude/"
    }
    search_haikusAnswer

    Search the full Daily Haiku archive (every haiku since November 2025) by a word or phrase, engine and date range. Returns the total number of matches and up to `limit` of them, newest first, with permalinks.

    View tool JSON
    {
      "name": "search_haikus",
      "kind": "answer",
      "impl": "imperative",
      "description": "Search the full Daily Haiku archive (every haiku since November 2025) by a word or phrase, engine and date range. Returns the total number of matches and up to `limit` of them, newest first, with permalinks.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Word or phrase to find in the haiku text, case-insensitive. Omit to match every haiku."
          },
          "engine": {
            "type": "string",
            "enum": [
              "claude",
              "codex",
              "agy"
            ],
            "description": "Only haikus by this engine."
          },
          "from": {
            "type": "string",
            "format": "date",
            "description": "Earliest date, YYYY-MM-DD (UTC)."
          },
          "to": {
            "type": "string",
            "format": "date",
            "description": "Latest date, YYYY-MM-DD (UTC)."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "How many matches to return (default 10)."
          }
        },
        "additionalProperties": false
      },
      "page": "/daily-kickstart-claude/"
    }
    get_haikus_for_wordAnswer

    Get the haikus that use one word as a whole word (so "sea" does not match "season"; a possessive like "winter's" counts as "winter", a plural does not: find those with search_by_word). Returns the total, the count per engine and up to `limit` haikus with permalinks, newest or oldest first. For phrases or word fragments use search_haikus.

    View tool JSON
    {
      "name": "get_haikus_for_word",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get the haikus that use one word as a whole word (so \"sea\" does not match \"season\"; a possessive like \"winter's\" counts as \"winter\", a plural does not: find those with search_by_word). Returns the total, the count per engine and up to `limit` haikus with permalinks, newest or oldest first. For phrases or word fragments use search_haikus.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "word": {
            "type": "string",
            "description": "One word, case-insensitive, e.g. \"sparrow\"."
          },
          "engine": {
            "type": "string",
            "enum": [
              "claude",
              "codex",
              "agy"
            ],
            "description": "Only haikus by this engine."
          },
          "from": {
            "type": "string",
            "format": "date",
            "description": "Earliest date, YYYY-MM-DD (UTC)."
          },
          "to": {
            "type": "string",
            "format": "date",
            "description": "Latest date, YYYY-MM-DD (UTC)."
          },
          "order": {
            "type": "string",
            "enum": [
              "newest",
              "oldest"
            ],
            "description": "newest first (default) or oldest first, e.g. to find the first use."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "How many haikus to return (default 10)."
          }
        },
        "required": [
          "word"
        ],
        "additionalProperties": false
      },
      "page": "/daily-kickstart-claude/"
    }
    search_by_wordAnswer

    Look up words in the archive's vocabulary: every distinct word that starts with, contains or exactly matches `query`, with how many times it was used, in how many haikus, per engine, and the first and last date it appeared. Returns words, not haikus; use get_haikus_for_word to read them.

    View tool JSON
    {
      "name": "search_by_word",
      "kind": "answer",
      "impl": "imperative",
      "description": "Look up words in the archive's vocabulary: every distinct word that starts with, contains or exactly matches `query`, with how many times it was used, in how many haikus, per engine, and the first and last date it appeared. Returns words, not haikus; use get_haikus_for_word to read them.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "A word or the start of one, e.g. \"blos\" finds blossom, blossoms."
          },
          "match": {
            "type": "string",
            "enum": [
              "prefix",
              "contains",
              "exact"
            ],
            "description": "prefix (default), contains, or exact (the word and its possessive)."
          },
          "engine": {
            "type": "string",
            "enum": [
              "claude",
              "codex",
              "agy"
            ],
            "description": "Only haikus by this engine."
          },
          "from": {
            "type": "string",
            "format": "date",
            "description": "Earliest date, YYYY-MM-DD (UTC)."
          },
          "to": {
            "type": "string",
            "format": "date",
            "description": "Latest date, YYYY-MM-DD (UTC)."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "How many words to return, most used first (default 20)."
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      },
      "page": "/daily-kickstart-claude/"
    }
    get_word_cloudAnswer

    Get the most-used words in the Daily Haiku archive (the three engines, not the free-model bench), counted as on the Archive page: stopwords and words under three letters are left out. Each word comes with its total uses and uses per engine. Filter by engine and date range. For the bench's cloud use get_free_model_bench.

    View tool JSON
    {
      "name": "get_word_cloud",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get the most-used words in the Daily Haiku archive (the three engines, not the free-model bench), counted as on the Archive page: stopwords and words under three letters are left out. Each word comes with its total uses and uses per engine. Filter by engine and date range. For the bench's cloud use get_free_model_bench.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "engine": {
            "type": "string",
            "enum": [
              "claude",
              "codex",
              "agy"
            ],
            "description": "Only haikus by this engine."
          },
          "from": {
            "type": "string",
            "format": "date",
            "description": "Earliest date, YYYY-MM-DD (UTC)."
          },
          "to": {
            "type": "string",
            "format": "date",
            "description": "Latest date, YYYY-MM-DD (UTC)."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "How many words to return, most used first (default 30)."
          }
        },
        "additionalProperties": false
      },
      "page": "/daily-kickstart-claude/"
    }
    get_word_trendsAnswer

    Track up to five words over time: uses per month or week, with that period's haiku count and uses per 100 haikus, so periods with fewer haikus compare fairly. Whole-word matching, as in get_haikus_for_word. Oldest period first.

    View tool JSON
    {
      "name": "get_word_trends",
      "kind": "answer",
      "impl": "imperative",
      "description": "Track up to five words over time: uses per month or week, with that period's haiku count and uses per 100 haikus, so periods with fewer haikus compare fairly. Whole-word matching, as in get_haikus_for_word. Oldest period first.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "words": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "maxItems": 5,
            "description": "One to five words, case-insensitive, e.g. [\"frost\", \"bloom\"]."
          },
          "period": {
            "type": "string",
            "enum": [
              "month",
              "week"
            ],
            "description": "month (default, YYYY-MM) or week (the Monday's date)."
          },
          "engine": {
            "type": "string",
            "enum": [
              "claude",
              "codex",
              "agy"
            ],
            "description": "Only haikus by this engine."
          },
          "from": {
            "type": "string",
            "format": "date",
            "description": "Earliest date, YYYY-MM-DD (UTC)."
          },
          "to": {
            "type": "string",
            "format": "date",
            "description": "Latest date, YYYY-MM-DD (UTC)."
          }
        },
        "required": [
          "words"
        ],
        "additionalProperties": false
      },
      "page": "/daily-kickstart-claude/"
    }
    compare_enginesAction

    Compare the three engines (claude, codex, agy) over a date range: haikus written, vocabulary size, words per haiku, top words, words each leans on more than the others, share of haikus that are unique, share that scan 5-7-5 (syllables estimated) and mood. Mood is a lexical warm (+1) to cool (-1) lean with a 95% confidence interval, not true sentiment; "even" means the interval doesn't clear zero.

    View tool JSON
    {
      "name": "compare_engines",
      "kind": "act",
      "impl": "imperative",
      "description": "Compare the three engines (claude, codex, agy) over a date range: haikus written, vocabulary size, words per haiku, top words, words each leans on more than the others, share of haikus that are unique, share that scan 5-7-5 (syllables estimated) and mood. Mood is a lexical warm (+1) to cool (-1) lean with a 95% confidence interval, not true sentiment; \"even\" means the interval doesn't clear zero.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "format": "date",
            "description": "Earliest date, YYYY-MM-DD (UTC)."
          },
          "to": {
            "type": "string",
            "format": "date",
            "description": "Latest date, YYYY-MM-DD (UTC)."
          },
          "top": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "How many top and distinctive words per engine (default 5)."
          }
        },
        "additionalProperties": false
      },
      "page": "/daily-kickstart-claude/"
    }
    get_free_model_benchAnswer

    Get the Experimental free-model bench: every free model reachable through OmniRoute writes a haiku to the same prompt four times a day. `cloud` gives the 80 most-used words and the model family that leans on each; `latest_run` the last run's haikus with model, provider and reasoning effort; `models` how often each model was used and answered.

    View tool JSON
    {
      "name": "get_free_model_bench",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get the Experimental free-model bench: every free model reachable through OmniRoute writes a haiku to the same prompt four times a day. `cloud` gives the 80 most-used words and the model family that leans on each; `latest_run` the last run's haikus with model, provider and reasoning effort; `models` how often each model was used and answered.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "section": {
            "type": "string",
            "enum": [
              "cloud",
              "latest_run",
              "models"
            ],
            "description": "Which part of the bench to return."
          }
        },
        "required": [
          "section"
        ],
        "additionalProperties": false
      },
      "page": "/daily-kickstart-claude/"
    }