Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
03cd145
feat(osmo): VS Code/Cursor dev workflow on NVIDIA OSMO
smash0190 May 14, 2026
64a2ceb
fix(osmo): harden CLI + workspace image against stale-state, port-for…
smash0190 May 14, 2026
769c4a2
fix(osmo): correct osmo:logs CLI invocation; install Foxglove extensi…
smash0190 May 14, 2026
2d9b161
fix(osmo): pin Kit livestream UDP media port to 49099 so osmo:webrtc …
smash0190 May 14, 2026
7c95b4e
fix(osmo): render Kit GUI in WebRTC stream; document SSH agent forwar…
smash0190 May 14, 2026
02fcc19
fix(osmo): make osmo:setup idempotent + paste-safe; document Nucleus …
smash0190 May 14, 2026
c7f89a8
fix(osmo): use Nucleus API-token auth, with double-dollar to survive …
smash0190 May 14, 2026
6f3a8e5
docs(osmo): make OSMO the recommended dev path, single clone-the-repo…
smash0190 May 15, 2026
b61b18b
fix(osmo): make osmo:logs actually stream + survive pod host-key churn
smash0190 May 15, 2026
98b00ad
fix(osmo): auto-pin --branch to local checkout + clean error UX when …
smash0190 May 15, 2026
17ca30d
perf(osmo): bump inner dockerd concurrency to saturate 10 GbE pulls
smash0190 May 15, 2026
838ec7d
docs(osmo): require buildx --platform linux/amd64 for workspace image
smash0190 May 15, 2026
2dbfdf4
perf(osmo): move dockerd data-root to /osmo/run for native overlay2
smash0190 May 15, 2026
1a26c19
updated version
krrishj18 May 19, 2026
e77337b
added virtual display for GL context
krrishj18 May 19, 2026
6981d6a
added virtual display for droan_gl
krrishj18 May 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
719 changes: 719 additions & 0 deletions .airstack/modules/osmo.sh

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion .env
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ PROJECT_NAME="airstack"
# If you've run ./airstack.sh setup, then this will auto-generate from the git commit hash every time a change is made
# to a Dockerfile or docker-compose.yaml file. Otherwise this can also be set explicitly to make a release version.
# auto-generated from git commit hash
VERSION="0.18.0-alpha.10"
VERSION="0.18.0-alpha.11"
# Choose "dev" or "prebuilt". "dev" is for mounted code that must be built live. "prebuilt" is for built ros_ws baked into the image
DOCKER_IMAGE_BUILD_MODE="dev"
# Where to push and pull images from. Can replace with your docker hub username if using docker hub.
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -99,3 +99,5 @@ common/rayfronts/

# Docker build cache (root-owned subdirs cause permission warnings on `git add`)
robot/docker/cache/
.DS_Store
gcs/.DS_Store
41 changes: 41 additions & 0 deletions airstack.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,47 @@
# This script provides a unified interface for common development tasks
# in the AirStack project, including setup, installation, and container management.

# Re-exec under bash 4+ if necessary. macOS ships bash 3.2 which can't handle
# `declare -A` (associative arrays) used throughout this script. Searches for
# a newer bash via $AIRSTACK_BASH, then common Homebrew install paths, then
# any `bash` on PATH that reports version >= 4. Sets AIRSTACK_REEXEC_BASH=1
# to guard against infinite re-exec loops.
if [ -z "${AIRSTACK_REEXEC_BASH:-}" ] && [ "${BASH_VERSINFO[0]:-0}" -lt 4 ]; then
_airstack_candidates=(
"${AIRSTACK_BASH:-}"
/opt/homebrew/bin/bash # Apple Silicon Homebrew
/usr/local/bin/bash # Intel Homebrew
/opt/local/bin/bash # MacPorts
)
if command -v bash5 >/dev/null 2>&1; then
_airstack_candidates+=("$(command -v bash5)")
fi
# Add any `bash` on PATH whose version is >= 4 (other than the one we just
# got here from, which is < 4 by the if-check above).
for _alt in $(command -v -a bash 2>/dev/null); do
_airstack_candidates+=("$_alt")
done

for _airstack_alt_bash in "${_airstack_candidates[@]}"; do
[ -z "$_airstack_alt_bash" ] && continue
[ -x "$_airstack_alt_bash" ] || continue
# Probe BASH_VERSINFO[0] without sourcing the script.
if "$_airstack_alt_bash" -c '[ "${BASH_VERSINFO[0]:-0}" -ge 4 ]' 2>/dev/null; then
export AIRSTACK_REEXEC_BASH=1
exec "$_airstack_alt_bash" "$0" "$@"
fi
done

cat >&2 <<'EOF'
[ERROR] airstack.sh requires bash 4 or newer (your bash is 3.x).
macOS ships bash 3.2 by default; install a modern bash with:
brew install bash
Or set AIRSTACK_BASH=/path/to/bash >= 4 before invoking this script.
EOF
exit 1
fi
unset AIRSTACK_REEXEC_BASH

set -e

# Script directory
Expand Down
7 changes: 7 additions & 0 deletions docs/getting_started/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Getting Started

!!! tip "On Mac, Windows, or no GPU?"

This page assumes a Linux desktop with an NVIDIA GPU. If that's not you,
use [AirStack on OSMO](../tutorials/airstack_on_osmo.md) instead — you
only need an SSH key, the `osmo` CLI, and VS Code or Cursor. No local
Docker, no NVIDIA drivers, no `airstack install`.

!!! warning ""

AirStack is currently in ALPHA and only meant for internal usage.
Expand Down
Loading
Loading