Python API
from long_running_agent import Client, SettingsClient
Client(settings: Settings | None=None, *, runner: Runner=run, home: Path | None=None, sleeper: Callable[[float], None]=time.sleep, clock: Callable[[], float]=time.monotonic, master_launcher: Callable[[Sequence[str]], int]=launch_master)ssh
ssh(arguments: Sequence[str], *, timeout: float | None=None, capture_output: bool=False, check: bool=True, input_text: str | None=None) -> Completedwake
wake() -> Nonesleep
sleep() -> Nonestop
stop() -> Noneensure_connection
ensure_connection() -> Noneremote
remote(command: str, *, tty: bool=False, check: bool=True, capture_output: bool=False, timeout: float | None=None, input_text: str | None=None) -> Completedhealth
health() -> Nonesummary
summary(reconnect: Sequence[str]=('vm',)) -> strbrowser
browser(*, no_open: bool=False, url: str | None=None) -> intshell
shell(command: Sequence[str], *, tty: bool=False, reconnect: Sequence[str]=('vm', 'ssh')) -> intterminal
terminal(session: str='sarj-home', *, host_bridge: bool=True) -> intcodex
codex(action: Literal['status', 'switch']) -> intconfigure_ssh
configure_ssh() -> Pathsetup
setup() -> NoneSettings
Settings(*, project: CloudIdentifier = 'example-project', instance: CloudIdentifier = 'agent-vm', zone: CloudIdentifier = 'us-central1-a', account: str | None = None, ssh_alias: str = 'sarj-codex', ssh_key: Path = <factory>, gcloud_binary: str = 'gcloud')Connection coordinates and personal identity; this contains no credentials.
packages/long-running-agent/src/long_running_agent/config.pyvalidate_account
validate_account(value: str | None) -> str | Nonevalidate_ssh_alias
validate_ssh_alias(value: str) -> strexpand_ssh_key
expand_ssh_key(value: Path) -> Path