- name
- amc-setup-calibration-stack
- description
- Launch AutoMagicCalib microservice and web UI from NGC release images via Docker Compose. Use when user says 'deploy auto calibration', 'launch auto calibration', 'launch AMC', 'start MS+UI', or 'set up auto-magic-calib'. Requires NGC API key.
- metadata
- author: "NVIDIA CORPORATION" tags: [amc, deepstream, docker, calibration, setup, ngc]
- owner
- NVIDIA CORPORATION
- service
- auto-magic-calib
- version
- 1.0.0
- reviewed
- 2026-04-28
- license
- Apache-2.0
Skill: Launch AutoMagicCalib Release Containers
Set up the AutoMagicCalib microservice and UI from release containers: resolve an AMC checkout, authenticate to NGC, optionally download VGGT, configure Docker Compose, launch services, and verify readiness.
Prerequisites
- Docker and Docker Compose installed
- NVIDIA Docker Runtime configured (for GPU support)
auto-magic-calibrepo on disk. Step 0b resolves the current repo, DeepStreamtools/auto-magic-calib,DEEPSTREAM_REPO_ROOT, or~/auto-magic-calib; otherwise it asks before cloninghttps://github.com/NVIDIA-AI-IOT/auto-magic-calib.- NGC account with access to NVIDIA container registry
- Docker runnable without
sudo; verify withdocker psbefore continuing.
Instructions
Step 0: Verify Docker Runs Without sudo
docker ps
- If it succeeds → continue.
- If it fails with "permission denied" → the user is not in the
dockergroup. Ask the user to run:
Then ask the user to confirmsudo usermod -aG docker $USER && newgrp dockerdocker psworks before continuing.
Agent note: If
docker pscannot be run from within the agent sandbox, ask the user to confirm it works (e.g. "Can you confirmdocker psruns without sudo?") before proceeding.
Step 0b: Resolve Repo Checkout
The skill needs AMC repo assets (compose/, sample data, and models/). Resolve an existing checkout first; ask before cloning into ~/auto-magic-calib.
REPO_URL="https://github.com/NVIDIA-AI-IOT/auto-magic-calib.git"
DEFAULT_CLONE_DIR="$HOME/auto-magic-calib"
CURRENT_GIT_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || true)"
is_amc_checkout() {
[ -n "$1" ] \
&& [ -f "$1/README.md" ] \
&& grep -q "AutoMagicCalib" "$1/README.md" 2>/dev/null \
&& [ -f "$1/compose/compose.yml" ] \
&& grep -q "auto-magic-calib-ms" "$1/compose/ms/compose.yml" 2>/dev/null \
&& grep -q "auto-magic-calib-ui" "$1/compose/ui/compose.yml" 2>/dev/null
}
REPO_ROOT=""
for candidate in \
"$CURRENT_GIT_ROOT" \
"${CURRENT_GIT_ROOT:+$CURRENT_GIT_ROOT/tools/auto-magic-calib}" \
"${DEEPSTREAM_REPO_ROOT:+$DEEPSTREAM_REPO_ROOT/tools/auto-magic-calib}" \
"$PWD/tools/auto-magic-calib" \
"$DEFAULT_CLONE_DIR"; do
if is_amc_checkout "$candidate"; then
REPO_ROOT="$candidate"
echo "✓ Using auto-magic-calib checkout: $REPO_ROOT"
break
fi
done
if [ -z "$REPO_ROOT" ]; then
if [ -n "$CURRENT_GIT_ROOT" ] && [ -d "$CURRENT_GIT_ROOT/tools/auto-magic-calib" ]; then
echo "Found $CURRENT_GIT_ROOT/tools/auto-magic-calib, but it is not an initialized AMC checkout."
echo "If running from the DeepStream repository root:"
echo " git submodule update --init tools/auto-magic-calib"
fi
# Nothing usable on disk — STOP and ask the user for confirmation using the
# host's question mechanism; if none is available, ask in chat and wait.
# Do NOT clone silently from this block or clone over a tracked submodule path.
echo "No usable auto-magic-calib checkout found. Ask the user for confirmation:"
echo " Clone $REPO_URL into $DEFAULT_CLONE_DIR? [y/N]"
echo "On 'y' — run: git clone \"$REPO_URL\" \"$DEFAULT_CLONE_DIR\""
exit 1
fi
cd "$REPO_ROOT"
export REPO_ROOT
echo "REPO_ROOT=$REPO_ROOT"