Files
Copy files to and from a screen, list folders.
Download a file
Needs the exec permission. Answers within 28 s.
Returns the file at path as bytes. Up to 64 MiB. Needs exec (a screen holds logins and keys). The hosted MCP's read_file wraps it for files up to 64 KiB.
path Parameters
screen_id^scr_[0-9a-z]{20}$ · requiredScreen id (scr_...).
query Parameters
pathAbsolute path on the screen, or relative to /home/user.
Headers
Kubi-Run^[ -~]{1,100}$Optional label that groups calls into one run in the screen's history. It is only a label and never locks the screen. The SDK fills it from KUBI_RUN, else Claude Code's CLAUDE_CODE_SESSION_ID, else one id per client it creates.
Download a file › Responses
Success.
Upload a file
Needs the exec permission. Answers within 28 s.
Writes the request body to path on the screen as the desktop user, creating folders. Replaces an existing file. Up to 64 MiB; bigger files go through exec (curl, git) for now. The 28 s limit counts our work after the body has arrived, not your upload time. The hosted MCP's write_file wraps it for files up to 64 KiB.
path Parameters
screen_id^scr_[0-9a-z]{20}$ · requiredScreen id (scr_...).
query Parameters
pathAbsolute path on the screen, or relative to /home/user.
mode^[0-7]{3,4}$Octal permissions.
Headers
Kubi-Run^[ -~]{1,100}$Optional label that groups calls into one run in the screen's history. It is only a label and never locks the screen. The SDK fills it from KUBI_RUN, else Claude Code's CLAUDE_CODE_SESSION_ID, else one id per client it creates.
Upload a file › Responses
Success.
pathsize_bytessha256^[0-9a-f]{64}$ · requiredList a folder
Needs the exec permission. Answers within 5 s.
Names, types, sizes and dates in one folder, sorted by name, folders first. Moving and deleting go through exec.
path Parameters
screen_id^scr_[0-9a-z]{20}$ · requiredScreen id (scr_...).
query Parameters
pathFolder on the screen, absolute or relative to /home/user.
limitPage size, 1 to 100.
after^[A-Za-z0-9_-]+$Opaque cursor from the previous page's next.
Headers
Kubi-Run^[ -~]{1,100}$Optional label that groups calls into one run in the screen's history. It is only a label and never locks the screen. The SDK fills it from KUBI_RUN, else Claude Code's CLAUDE_CODE_SESSION_ID, else one id per client it creates.