This page follows the command tree implemented by the current parser. Command output is JSON. All download URLs and SHA-256 digests must come from the trusted Skill returned by the current official website's Build With Local Agent action; they must not be hard-coded in this offline manual.
| Command | Purpose | Changes state? |
|---|---|---|
oasn-sa-dev --version | Shows the version of the CLI that is actually executed. This manual requires 0.7.3 or later. | No |
oasn-sa-dev doctor | Checks Python, SSH, ssh-keygen, local loopback ports, and known public keys. | No |
install --expected-sha256 SHA | Installs a script already verified against the Skill into the current user's directory. | Writes only to the local installation directory |
# Windows (for the verified temporary script)
py oasn-sa-dev.py install --expected-sha256 <Skill-bound 64-character SHA-256>
# macOS / Linux
python3 oasn-sa-dev.py install --expected-sha256 <Skill-bound 64-character SHA-256>
The installation result returns installed_path, command, and path_hint. First use the complete returned command to run --version again. If PATH still resolves to an older copy, do not reinstall repeatedly or modify shell configuration on your own.
oasn-sa-dev auth status
oasn-sa-dev auth login
oasn-sa-dev auth logout
oasn-sa-dev ssh-key ensure
oasn-sa-dev ssh-key ensure --create
oasn-sa-dev ssh-key ensure --create --path <new_private_key_path>
auth status only checks the secure credential store. Use auth login to explicitly retry OAuth; other commands that require authentication also open the browser when needed.auth logout reports local deletion and server-side revocation separately. server_status=unconfirmed must not be treated as confirmed revocation.ssh-key ensure without --create only finds or validates a public key. Creating a new key requires explicit authorization, and the CLI refuses to overwrite an existing target.oasn-sa-dev workspace sources --version-id <agent_version_id>
The result may include the current existing_workspace, recoverable published versions, and a recommended_source_version_id. A recommendation is not automatic authorization. The developer must explicitly choose among reusing the existing Workspace, selecting a historical snapshot, or starting from a fresh base environment.
# Start from a published version snapshot confirmed by the developer
oasn-sa-dev workspace create --version-id <target_draft_version_id> --source-version-id <source_version_id>
# Explicitly start from the platform base environment
oasn-sa-dev workspace create --version-id <target_draft_version_id> --fresh
# Query the lifecycle of a known Workspace without changing state
oasn-sa-dev workspace status --workspace-id <workspace_id>
A source Version restores only a compatible code and file snapshot. It does not copy the Agent Card, Pricing, model, resource specifications, or WebUI ports. If sources already returns a reusable Workspace, use its ID instead of calling create to overwrite it.
oasn-sa-dev workspace connect --workspace-id <workspace_id>
status=active only means that the lifecycle is ready; it does not prove that SSH works. workspace connect verifies the local public/private key pair, binds an unbound Workspace using a stable idempotent intent, uses Workspace-isolated known_hosts, and performs a real -vvv authentication probe. Only after the result returns ssh_binding_status=bound and ssh_verified=true should you execute the complete returned ssh_command/scp_command exactly as provided.
oasn-sa-dev workspace resume --workspace-id <workspace_id>
Run this only when the developer explicitly asks to continue using the same active + expired Workspace. resume does not create a new Sandbox, bind an SSH key, or replace the authentication probe performed by a subsequent workspace connect.
| Parameter | Range | Default |
|---|---|---|
--timeout-seconds | 30..3600 | 600 |
--poll-interval-seconds | 1..30 | 3 |
--login-timeout-seconds | 60..600 | 300 |
# Query without changing state
oasn-sa-dev version webui-ports get --version-id <agent_version_id>
# Replace the entire port list after developer confirmation
oasn-sa-dev version webui-ports set --version-id <agent_version_id> --ports 7860,8765
# Clear all ports after explicit developer confirmation
oasn-sa-dev version webui-ports set --version-id <agent_version_id> --clear
# Preserve the complete port list and create a new generation of application links
oasn-sa-dev version webui-ports refresh --version-id <agent_version_id>
1..65535; 22/18789/18790 are not allowed.revision in the result is not the official website draft ETag.sync_status=ready proves only that the declaration has synchronized. proxy_status=ready provides the currently valid webui_urls, but you must still perform a real HTTP test.# List the official website operations supported by this deployment and their write properties, offline
oasn-sa-dev portal commands
In 0.7.3, portal commands use the same public APIs as the official website. Read-only commands can query directly. A write command must be the current action the developer explicitly requested and must include the command's required --confirm, stable --idempotency-key, original quoted --if-match, or temporary --body-file. Use the local portal commands output and --help as the authority for specific operations and parameters; do not guess from an old manual.
oasn-sa-dev skill-link create --version-id <VERSION_ID>
This compatibility entry point is still accepted by the parser. The recommended primary flow remains clicking Build With Local Agent on the official website and copying the complete trusted prompt bound to the current Agent and Version.
| Command or assumption | Current behavior | Correct path |
|---|---|---|
oasn-sa-dev sync | There is no general-purpose synchronization command. | After authorization, follow Safe synchronization using the exact SSH/SCP parameters returned by connect. |
oasn-sa-dev workspace close/delete/publish | These Workspace subcommands do not exist. | Do not construct internal API calls. Publish through the website or a listed, controlled portal operation. |
| Execute an old SSH string from status directly | It does not prove key binding, host-key verification, or successful authentication. | Run workspace connect first. |
| Call raw platform HTTP endpoints directly | This bypasses the CLI's authentication, idempotency, digest verification, and redaction boundaries. | Use a public CLI command or the official website. |
| Error | Response |
|---|---|
CLI_DIGEST_MISMATCH | Stop. Obtain the bound download information again from the current Skill; do not change the expected digest. |
WORKSPACE_TIMEOUT | Keep the returned Workspace ID and continue querying it with status; do not call create again. |
SSH_AGENT_KEY_NOT_LOADED / SSH_PRIVATE_KEY_PASSPHRASE_REQUIRED | Unlock or load the original private key in the same user session, then rerun connect for the same Workspace; do not switch keys. |
SSH_HOST_KEY_CHANGED | Stop immediately. Do not retry the network request or overwrite known_hosts. |
SSH_CONNECTION_FAILED | Use the returned timeout/refused/dns/unreachable/closed reason to distinguish a network failure from a platform entry-point failure. |
WEBUI_PORT_UPDATE_TIMEOUT | Use webui-ports get to query the accepted intent; do not repeat set with different parameters. |
PORTAL_RESULT_UNKNOWN | The result of the write is unknown. Query or recover the same business intent; do not resubmit it with a different idempotency key. |