New:Microsoft Teams Notifications Are Now Available in Socket.Learn more
Get Started

@doublespeed/ds

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@doublespeed/ds

ds — CLI for the remote Xcode build/test/archive service

Source
npmnpm
Version
0.2.2
Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

ds — CLI for the remote Xcode service

ds xcode build   .            # compile; default destination generic/platform=iOS Simulator
ds xcode test    .            # run XCTest; default destination iPhone 16 simulator
ds xcode archive .            # Release .xcarchive

Common flags: --scheme, --workspace X.xcworkspace / --project X.xcodeproj, --configuration, --destination '<xcode destination>', --xcode 16, --env KEY=value (repeatable), --timeout <s>, --only-testing T / --skip-testing T / --test-plan P, --collect-app, --no-follow, --json.

ds xcode run . builds for a simulator on a worker and prints a browser link where you can use the app live (tap, swipe, type). --device 'iPhone 16 Pro', --idle 600 (end after N idle seconds), --timeout caps the session; Ctrl-C or ds xcode stop <job> ends it.

Other commands: ds xcode status <job>, ds xcode logs <job> [--after N], ds xcode cancel <job>, ds xcode artifacts <job> [--download <artifact_id> --out file], ds xcode jobs [--status queued].

Config: DS_API_URL (e.g. https://<host>/v1/xcode), DS_API_KEY (dsx_…, minted by an operator via POST /v1/xcode/admin/keys). Exit code 0 on succeeded, 1 otherwise; --json prints one JSON line per event and a final job object.

How a run works

  • Walk the directory (git ls-files when it is a git repo, so .gitignore applies) plus .dsignore and built-in excludes (DerivedData, build, .build, node_modules, *.xcresult, *.xcarchive, .git). Symlinks are skipped with a warning.
  • Hash every file (sha256) and POST /sources with the manifest. The API answers with the hashes it does not have for your tenant plus a signed upload URL for each.
  • Upload only those blobs directly to storage (8 in parallel), then POST /sources/{id}/complete. Editing one file and re-running uploads exactly one blob.
  • POST /jobs202 {id, status: "queued"}.
  • Follow GET /jobs/{id}/events as SSE; the server caps a connection at ~55 s and the CLI reconnects with Last-Event-ID, so nothing is missed.
  • GET /jobs/{id} for the final structured result (diagnostics, test counts, artifacts, timings).

Install

npm install -g @doublespeed/ds   # published from xcode-cli/; for local dev: cd xcode-cli && npm install && npm run build && npm link

Keywords

xcode

FAQs

Package last updated on 27 Aug 2026

Related posts