{
  "name": "capture_since",
  "wireName": "capture_since",
  "source": {
    "repo": "libtmux/libtmux-rs",
    "revision": "f0e37052c232636b61d095817046e6bfc8f2ca40",
    "extractedRevision": "7a5def5921b12f58d47327cf625c039de5fa8ea7",
    "file": "crates/tmux-mcp/src/tools/observe.rs",
    "line": 434
  },
  "description": "Read what a pane wrote since the previous call. The first call, with no cursor, starts watching and returns a cursor; later calls pass it back and receive only what is new, as the raw output stream, not the rendered screen: a line redrawn in place repeats; capture_pane shows the screen. Use this to follow a pane over several turns without re-reading the whole screen. The answer says missed=true if the cursor no longer names retained output, including when the pane outran the buffer, its live tail was evicted, or the server restarted. Starting a tail owns a retained observer until the tail is evicted or the server stops. Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted.",
  "schemaStatus": "runtime",
  "inputSchema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "additionalProperties": false,
    "properties": {
      "cursor": {
        "description": "The cursor from the previous call. Omit to start watching.",
        "type": [
          "string",
          "null"
        ]
      },
      "pane": {
        "description": "The `%`-prefixed pane to read.",
        "type": "string"
      }
    },
    "required": [
      "pane"
    ],
    "type": "object"
  },
  "outputSchema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "closed": {
        "description": "Whether the pane has stopped writing for good.",
        "type": "boolean"
      },
      "cursor": {
        "description": "The cursor to pass back next time.",
        "type": "string"
      },
      "first": {
        "description": "Whether this is the first answer, which reports the visible screen\nrather than what is new.",
        "type": "boolean"
      },
      "missed": {
        "description": "Whether output between the previous cursor and this text was lost.",
        "type": "boolean"
      },
      "pane": {
        "description": "The pane that was read.",
        "type": "string"
      },
      "text": {
        "description": "The text, with escape sequences removed.\n\nAfter the first answer this is the raw output stream, not the rendered\nscreen: a line redrawn in place repeats. `capture_pane` shows the\nscreen.",
        "type": "string"
      }
    },
    "required": [
      "pane",
      "text",
      "cursor",
      "missed",
      "closed",
      "first"
    ],
    "type": "object"
  },
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": true,
    "readOnlyHint": true,
    "title": "Read New Pane Output"
  },
  "meta": {
    "com.git-pull.libtmux-mcp/capability": {
      "amplifiesFutureInput": false,
      "inputLiteralization": {},
      "mayExposeSecrets": true,
      "mayReturnUntrustedContent": true,
      "nestedAuthority": [],
      "outputClasses": [
        "tmux-metadata",
        "terminal-content"
      ],
      "processReach": "none",
      "tmuxEffects": [
        "observe"
      ],
      "toolset": "inspect"
    }
  }
}
