| Run a command and wait for its result | Async await image.run(...); sync run(...).wait() | Submit, then poll until the operation reaches a terminal state | contree run | run with wait=true |
| Start work and inspect it later | Use REST when the application must receive an operation ID immediately | Submit and keep the returned operation ID | Use contree run -d, then contree op wait OPERATION_ID; see the operation reference | run with wait=false, then get_operation or wait_operations |
| Save or discard filesystem changes | Set disposable=False to save or True to discard | Send disposable: false to save or true to discard; the request schema defaults to false | Runs save by default; add -D to discard | Set disposable=false to save; the tool defaults to true |
| Stream operation events and resume after disconnect | Use REST; SDK 0.3.6 has no event-stream method | Subscribe with SSE and resume with Last-Event-Id | CLI 0.9.4 has no event-stream command | The exposed tool set has no event-stream tool |
| Start and control another process inside an active operation | Use REST; SDK 0.3.6 has no additional-process API | Use the spawn, stdin, EOF, result, and signal endpoints | CLI 0.9.4 has no additional-process command | The exposed tool set has no additional-process, stdin, or signal tool |
| Inspect files in a stored image without guest compute | Use ls, read, and download | Use the image inspection endpoints | Use ls, cat, and cp | Use list_files, read_file, and download |