nodus.workspace
View MarkdownWorkspace: a development machine with SSH, VS Code, JupyterLab and a persistent home (resources.md §3.8).
Workspace
Section titled “Workspace”class Workspace(obj: Obj) -> NoneWorkspace.create
Section titled “Workspace.create”create(name: str, *, gpu: Any = None, cpu: Any = None, memory: Any = None, disk: Any = None, image: str | None = None, volume: str | _Volume | None = None, ephemeral: bool = False, tools: list[str] | None = None, idle_timeout: Any = None, secrets: list[Any] | None = None, env: dict[str, str] | None = None, max_cost: Any = None, project: str | None = None) -> _WorkspaceCreate a Workspace; unless ephemeral=True its home is volume (default <name>-home), made if missing.
Workspace.exec
Section titled “Workspace.exec”exec(*command: str, pty: bool = False) -> _ProcessWorkspace.files
Section titled “Workspace.files”Type: _Files
Workspace.from_name
Section titled “Workspace.from_name”from_name(name: str, project: str | None = None) -> _WorkspaceWorkspace.logs
Section titled “Workspace.logs”logs(follow: bool = False) -> AsyncIterator[str]Workspace.name
Section titled “Workspace.name”Type: str
Workspace.open
Section titled “Workspace.open”open(tool: str = 'vscode', browser: bool = True) -> strMint a preview URL for VS Code or JupyterLab in the browser, open it, and return it.
Workspace.schedule
Section titled “Workspace.schedule”schedule(ready_by: str | datetime, stop_at: str | datetime | None = None) -> NoneBe ready by ready_by (it starts 15 minutes earlier) and stop at stop_at.
Workspace.sessions
Section titled “Workspace.sessions”sessions() -> list[View]Every running period of this Workspace, each an Attempt whose status is the session’s receipt.
Workspace.ssh
Section titled “Workspace.ssh”ssh() -> NoneOpen an interactive SSH session through the CLI’s ssh-proxy (the CLI writes ~/.ssh/config).
Workspace.start
Section titled “Workspace.start”start() -> NoneWorkspace.status
Section titled “Workspace.status”status() -> ViewWorkspace.stop
Section titled “Workspace.stop”stop() -> NoneWorkspace.unschedule
Section titled “Workspace.unschedule”unschedule() -> NoneWorkspace.wait_ready
Section titled “Workspace.wait_ready”wait_ready(timeout: float | None = None) -> ViewBlock until the tools answer (phase Running); raises when it fails or stops instead.