← ModalCONTENT HISTORY

Update to Modal

Snapshot Sep 30, 2026 · 23:14 UTC · version 1.5.3

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "Install, upgrade, detect, and authenticate the Modal Python SDK and CLI on a local Codex Desktop host using Codex's bundled Python runtime, then install Modal's CLI-generated skill globally. Use when Modal is missing, `modal` is not on PATH, credentials or profiles are not configured, authentication fails, the global Modal skill is missing, or the user asks to set up Modal before running or deploying workloads.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 223
    }
  ],
  "name": "onboard-modal",
  "skill_md_contents": "---\nname: onboard-modal\ndescription: Install, upgrade, detect, and authenticate the Modal Python SDK and CLI on a local Codex Desktop host using Codex's bundled Python runtime, then install Modal's CLI-generated skill globally. Use when Modal is missing, `modal` is not on PATH, credentials or profiles are not configured, authentication fails, the global Modal skill is missing, or the user asks to set up Modal before running or deploying workloads.\n---\n\n# Set up Modal\n\nPrepare the current local Codex Desktop host and install Modal's official CLI-generated skill globally. Keep credential entry in Modal's own interactive flow.\n\n## Check for an existing Modal installation\n\nDo this before discovering Python or installing anything:\n\n1. Run `command -v modal`.\n2. If it returns an executable, run `modal --version`.\n3. If `modal --version` succeeds, preserve the existing installation. Skip both **Discover Codex Python** and **Install the CLI**, inspect `modal --help` plus any relevant subcommand help, and continue with **Install the Modal skill**.\n4. If the executable is absent or broken, continue with **Discover Codex Python**.\n\n## Discover Codex Python\n\n1. Check whether `CODEX_PYTHON` is already set to an executable path with `test -n \"${CODEX_PYTHON:-}\" && test -x \"$CODEX_PYTHON\"`. If that succeeds, run `\"$CODEX_PYTHON\" --version` and preserve the existing value.\n2. If `CODEX_PYTHON` is unset or invalid, invoke the Codex dynamic tool named `load_workspace_dependencies` through the tool-calling interface. This is not a shell command: never type or run `load_workspace_dependencies` in a terminal.\n3. Read the `Python executable` path from the tool result, substitute it into the assignment below, and run the assignment and checks in the shell:\n\n```bash\nexport CODEX_PYTHON='/exact/path/from/tool-result'\ntest -x \"$CODEX_PYTHON\"\n\"$CODEX_PYTHON\" --version\n```\n\nNever execute the placeholder path literally. Shell tool calls may start fresh shells, so re-export the same verified value at the start of any later shell invocation before using `\"$CODEX_PYTHON\"`. If the Codex tool is unavailable or reports that the bundled runtime is unavailable, explain that this onboarding skill requires a local Codex Desktop thread with workspace dependencies enabled, then stop. Do not fall back to another Python installation.\n\nAfter `CODEX_PYTHON` is verified, run `\"$CODEX_PYTHON\" -m modal --version`. If that succeeds, Modal is already installed in the bundled Python user site: skip **Install the CLI**, inspect `\"$CODEX_PYTHON\" -m modal --help` plus any relevant subcommand help, and continue with **Install the Modal skill**. Only continue to installation if this module check fails.\n\n## Install the CLI\n\nOnly reach this section after both the existing `modal` executable check and the `\"$CODEX_PYTHON\" -m modal` check fail.\n\nInstalling packages changes the host. Explain the selected method and obtain any approval required by the execution environment before running it.\n\nUse Codex's bundled Python interpreter to install Modal into the user's Python site directory:\n\n```bash\n\"$CODEX_PYTHON\" -m pip install --user --upgrade modal\n```\n\nThe bundled runtime is managed and replaced by Codex updates. Always use `--user`; never install packages into the bundled runtime itself, use `sudo pip`, or modify a project's environment or lockfile as part of host onboarding. Do not fall back to `uv`, `pipx`, system Python, or a project package manager.\n\nAfter installation, run `modal --version`. If the user-site scripts directory is not on `PATH`, use `\"$CODEX_PYTHON\" -m modal` for the current task and explain the `PATH` limitation. Do not edit shell startup files unless the user asks.\n\n## Install the Modal skill\n\nAfter `modal --version` succeeds, explain that this step writes generated skill files under the user's home directory and obtain any approval required by the execution environment. Then run:\n\n```bash\nmodal skills install --global\n```\n\nDo not copy or vendor the generated skill or its documentation into this plugin. If the executable is unavailable but the module invocation works, run `\"$CODEX_PYTHON\" -m modal skills install --global` instead.\n\nAfter installation, verify that `~/.agents/skills/modal/SKILL.md` exists. If the newly installed skill is not available in the current Codex task, tell the user to start a new task or refresh skill discovery before using it.\n\n## Allow Modal network access in Codex\n\nModal CLI commands that authenticate, inspect, or mutate cloud state require external network access. In a Codex execution environment with restricted egress, browser authentication may succeed while a later CLI API command remains blocked. Use Codex's normal network approval or escalation mechanism for Modal API commands when required. If an API-backed command stalls because egress is blocked, stop it and retry after access is approved; do not treat blocked egress as invalid credentials or bypass the network policy.\n\n## Authenticate\n\n1. Run `modal token info` first. If it succeeds, preserve the existing credentials.\n2. If credentials are missing, run `modal setup`. If the executable is unavailable but the module works, run `\"$CODEX_PYTHON\" -m modal setup`.\n3. Tell the user that Modal will open or print a browser URL and that they must complete the sign-in themselves. Pause while that human interaction is required.\n4. For adding a token to another profile through an authenticated browser session, use `modal token new --verify --activate` and add `--profile NAME` only when the user names the profile.\n\nDo not ask the user to paste a token secret into chat. Do not place token IDs or secrets in command arguments, logs, source files, plugin files, or final responses. Avoid `modal token set --token-secret ...`; if manual token entry is unavoidable, let the user enter it directly into Modal's interactive prompt.\n\n## Verify configuration\n\nAfter the browser flow completes, run:\n\n```bash\nmodal token info\nmodal profile current\nmodal app list --json\n```\n\nTreat successful read-only commands as verification. If the executable remains unavailable, invoke each command through `\"$CODEX_PYTHON\" -m modal`. Do not create, deploy, or stop an App merely to test authentication.\n\nFor multiple workspaces or profiles, inspect `modal profile list`, then use `modal profile activate PROFILE` only after confirming the intended workspace with the user. Use an explicit Modal environment for later mutations when the workspace has more than one environment.\n\n## Hand off\n\nReport the CLI version, whether the global Modal skill was installed, the active profile or workspace, and whether the read-only verification succeeded. Do not reproduce credential values. Then continue with the globally installed `modal` skill for workload implementation, execution, deployment, or debugging.\n"
}

SHA-256 of public snapshot: 74f75102f931e5f92f50c3615cd38910a0a2badd593548505acbc2d820f1635d