)]}'
{
  "log": [
    {
      "commit": "43b60b9b6906a2077175bcb1c3ea53b90d92a9f8",
      "tree": "14ecadd5c94db811087f97b0e7858f1482ff5f4e",
      "parents": [
        "95354b15c6469f871ecabd778c04304bcce16195"
      ],
      "author": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Mon Jul 21 14:57:10 2025 -0700"
      },
      "committer": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Mon Jul 21 19:46:45 2025 -0700"
      },
      "message": "llm: make Tool.Run return ToolOut\n\nThis is preliminary work towards\nallowing tools to add additional information.\nNo functional changes (at least, that\u0027s the intent).\n"
    },
    {
      "commit": "44de46c38652047d3ff70b59f69d00bad4985561",
      "tree": "ada533469ed18d0e3ccc29870a620e5b5edef219",
      "parents": [
        "15a0ffa7a68f5915eaed6044260edc794c806283"
      ],
      "author": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Mon Jul 21 16:14:34 2025 -0700"
      },
      "committer": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Mon Jul 21 19:46:45 2025 -0700"
      },
      "message": "mcp: fix ineffectual break\n\nCaught by gopls, surfaced by sketch.\n"
    },
    {
      "commit": "08b073b79f4372e2f61c03ba17e5d86a5cf7a769",
      "tree": "9cafdbc3e14006f1d338ec350035a3d905e266a7",
      "parents": [
        "d11714374f290a693b724a3e2b7d5b81b49da803"
      ],
      "author": {
        "name": "Philip Zeyliger",
        "email": "philip@bold.dev",
        "time": "Fri Jul 18 10:40:00 2025 -0700"
      },
      "committer": {
        "name": "Autoformatter",
        "email": "bot@sketch.dev",
        "time": "Fri Jul 18 17:41:06 2025 +0000"
      },
      "message": "sketch/mcp: add docs and test out playwright, and extend timeouts.\n"
    },
    {
      "commit": "4201bde20034516105d17deca502c6e76e7db603",
      "tree": "7c39dbc55cfc88e3aa2f6866f5400c7790fd7fb6",
      "parents": [
        "cad67b0ac0e374dd687ca4ef8abddbc9c4323fd5"
      ],
      "author": {
        "name": "Philip Zeyliger",
        "email": "philip@bold.dev",
        "time": "Fri Jun 27 17:22:43 2025 -0700"
      },
      "committer": {
        "name": "Philip Zeyliger",
        "email": "philip@bold.dev",
        "time": "Fri Jun 27 17:22:43 2025 -0700"
      },
      "message": "Replace skaband tools with a sketch.dev MCP client\n\nsketch.dev provides seeing recent sessions and reading a past\nsession as tool.\n"
    },
    {
      "commit": "194bfa8cc3970d28f2d072dc82142e24b7e56c9f",
      "tree": "8cf0872d8d1d6b1ab5eec4ef1f20ab7b201a7de9",
      "parents": [
        "ba351be3a9e50c67baef59af5ee35e3b654727e1"
      ],
      "author": {
        "name": "Philip Zeyliger",
        "email": "philip@bold.dev",
        "time": "Tue Jun 24 06:03:06 2025 -0700"
      },
      "committer": {
        "name": "Philip Zeyliger",
        "email": "philip@bold.dev",
        "time": "Tue Jun 24 06:03:06 2025 -0700"
      },
      "message": "sketch: add MCP support\n\nLets you initialize extra tools via MCP. This is additive, so it\u0027s\nharmless enough.\n\nHere are some examples of the kind of things you can pass to the -mcp\nflag.\n\n  {\"name\": \"context7\", \"type\": \"http\", \"url\": \"https://mcp.context7.com/mcp\"}\n  {\"name\": \"context7-http\", \"type\": \"http\", \"url\": \"https://mcp.context7.com/mcp\"}\n  {\"name\": \"context7-stdio\", \"type\": \"stdio\", \"command\": \"npx\", \"args\": [\"-y\", \"@upstash/context7-mcp\"]}\n  {\"name\": \"context7-sse\", \"type\": \"sse\", \"url\": \"https://mcp.context7.com/sse\"}\n  {\"name\": \"local-tool\", \"type\": \"stdio\", \"command\": \"my_tool\", \"args\": [\"--option\", \"value\"], \"env\": {\"TOKEN\": \"secret\"}}\n  { \"name\": \"playwright\", \"command\": \"npx\", \"args\": [ \"@playwright/mcp@latest\" ]}\n\nCo-Authored-By: sketch \u003chello@sketch.dev\u003e\nChange-ID: s259a35d11e7bd660k\n"
    }
  ]
}
