Prerelease This site documents an alpha of libtmux. Its structure, URLs and APIs are subject to change.

capture_since

TypeScript

Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. What a pane has printed since you last looked. Call it once with no cursor to start watching and get the current screen; keep the cursor it returns and pass it back each time after that, and you are charged only for what is new. This is the tool for watching a build, a log, or a test run — not a capture_pane loop. Set waitMs to block until something arrives rather than returning empty. Reports the stream in the order it was written, so a program that draws by moving the cursor (a progress bar, a full-screen TUI) reads jumbled here — capture_pane renders those.

All TypeScript tools · JSON · Source

Arguments

cursor optional · string
The cursor from your previous capture_since. Omit on the first call.
maxLines optional · integer
Keep at most this many lines, from the end. Defaults to the server limit.
paneId required · string
Stable pane id, e.g. %1.
waitMs optional · integer
Wait up to this long for new output before answering. Default 0.

Schemas

The schema defines required fields, nested values, defaults, and validation constraints.

Input schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"cursor": {
"description": "The cursor from your previous capture_since. Omit on the first call.",
"pattern": "^ltxc1\\.[0-9a-f]{32}\\.(?:0|[1-9][0-9]*)$",
"type": "string"
},
"maxLines": {
"description": "Keep at most this many lines, from the end. Defaults to the server limit.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"paneId": {
"description": "Stable pane id, e.g. %1.",
"pattern": "^%\\d+$",
"type": "string"
},
"waitMs": {
"description": "Wait up to this long for new output before answering. Default 0.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"paneId"
],
"type": "object"
}
Output schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"byteClamped": {
"description": "Whether the byte ceiling shortened this result.",
"type": "boolean"
},
"cursor": {
"anyOf": [
{
"pattern": "^ltxc1\\.[0-9a-f]{32}\\.(?:0|[1-9][0-9]*)$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Pass this to the next capture_since call; null means streaming was unavailable."
},
"droppedLines": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"effectiveTimeoutMs": {
"description": "The wait ceiling applied; zero when this call did not wait on a live stream.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"missedBytes": {
"description": "Output that scrolled past before this read reached it. Non-zero means you fell behind.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"omittedBytes": {
"description": "Result bytes omitted after capture or streaming.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"paneId": {
"description": "Stable pane id, e.g. %1.",
"pattern": "^%\\d+$",
"type": "string"
},
"rangeClamped": {
"description": "Whether result limits shortened a grid capture.",
"type": "boolean"
},
"returnedBytes": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"seeded": {
"description": "True when this call started the watch and returned the screen.",
"type": "boolean"
},
"streaming": {
"description": "False when no control connection was available and this fell back to capturing.",
"type": "boolean"
},
"text": {
"type": "string"
}
},
"required": [
"byteClamped",
"cursor",
"droppedLines",
"effectiveTimeoutMs",
"missedBytes",
"paneId",
"omittedBytes",
"rangeClamped",
"returnedBytes",
"seeded",
"streaming",
"text"
],
"type": "object"
}
Tool annotations
{
"destructiveHint": true,
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": false
}
Esc

Type to search.