v1.5.4: Remove unused feature flags and oz-platform skill

Remove cloud/sharing feature flags (viewing_shared_sessions, shared_with_me,
session_sharing_acls, shared_block_title_generation, agent_shared_sessions,
cloud_environments, cloud_conversations, etc.) and classic_completions flags.
Remove oz-platform skill. Update blocklist views and drive index.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ryan Ward
2026-05-28 11:02:41 -05:00
co-authored by Claude Opus 4.6
parent 1fee031ea5
commit d9bdafed0a
8 changed files with 53 additions and 531 deletions
@@ -1,273 +0,0 @@
---
name: oz-platform
description: Use Warp's REST API and command line to run, configure, and inspect Oz cloud agents
---
# oz-platform
Use the Oz REST API and CLI to:
* Spawn cloud agents
* Get the status of a cloud agent
* Schedule cloud agents to run repeatedly
* Create and manage the environments in which cloud agents run
* Provide secrets for cloud agents to use
## Command Line
The Oz CLI is installed as `{{warp_cli_binary_name}}`. To get help output, use `{{warp_cli_binary_name}} help` or `{{warp_cli_binary_name}} help <subcommand>`.
Prefer `--output-format text` to review the response, or `--output-format json` to parse fields with `jq`.
You can find more information at https://docs.warp.dev/reference/cli.
The most important commands are:
* `{{warp_cli_binary_name}} agent run-cloud`: Spawn a new cloud agent. You can configure the prompt, model, environment, and other settings.
* `{{warp_cli_binary_name}} run list` and `{{warp_cli_binary_name}} run get <run-id>`: List all cloud agent runs, and get details about a particular run.
* `{{warp_cli_binary_name}} environment list` and `{{warp_cli_binary_name}} environment get`: List available environments, and get more information about a particular environment.
* `{{warp_cli_binary_name}} schedule list` and `{{warp_cli_binary_name}} schedule get`: List scheduled tasks with most recent runs, and get more information about a particular scheduled run.
Most subcommands support the `--output-format json` flag to produce JSON output, which you can pipe into `jq` or other commands.
### Examples
Start a cloud agent, and then monitor its status:
```sh
$ {{warp_cli_binary_name}} agent run-cloud --prompt "Update the login error to be more specific" --environment UA17BXYZ
# ...
Spawned agent with run ID: 5972cca4-a410-42af-930a-e56bc23e07ac
```
```sh
$ {{warp_cli_binary_name}} run get 5972cca4-a410-42af-930a-e56bc23e07ac
# ...
```
Schedule an agent to summarize feedback every day at 8am UTC:
```sh
$ {{warp_cli_binary_name}} schedule create --cron "0 8 * * *" \
--prompt "Collect all feedback from new GitHub issues and provide a summary report" \
--environment UA17BXYZ
```
Create a secret for cloud agents to use:
```sh
$ {{warp_cli_binary_name}} secret create JIRA_API_KEY --team --value-file jira_key.txt --description "API key to access Jira"
```
## REST API
Oz has a REST API for starting and inspecting cloud agents.
All API requests require authentication using an API key. The user can generate API keys in their Warp settings, on the `Platform` page (accessible via `{{warp_url_scheme}}://settings/platform`).
You can find the full OpenAPI specification here: https://docs.warp.dev/reference/api-and-sdk
### TypeScript / JavaScript SDK
The TypeScript SDK is available via NPM. It is fully async, and works with Node, Bun, and Deno.
* Package link: https://www.npmjs.com/package/oz-agent-sdk
* Source Code: https://github.com/warpdotdev/oz-sdk-typescript
* API reference: https://raw.githubusercontent.com/warpdotdev/oz-sdk-typescript/HEAD/api.md
### Python SDK
The Python SDK is available from PyPi. It can be used synchronously or asynchronously.
* Package link: https://pypi.org/project/oz-agent-sdk/
* Source Code: https://github.com/warpdotdev/oz-sdk-python
* API reference: https://raw.githubusercontent.com/warpdotdev/oz-sdk-python/refs/heads/main/api.md
### API Examples
```sh
curl -L -X POST {{warp_server_url}}/api/v1/agent/run \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"prompt": "Update the login error to be more specific",
"config": {
"environment_id": "UA17BXYZ"
}
}'
```
```sh
curl -L -X GET {{warp_server_url}}/api/v1/agent/runs/5972cca4-a410-42af-930a-e56bc23e07ac \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json'
```
## GitHub Actions Integration
You can trigger Oz cloud agents from GitHub Actions workflows. This enables automation like:
* Triaging issues when they're created or labeled
* Running checks on pull requests
* Scheduling periodic tasks via workflow dispatch
The agent will have access to the `gh` CLI to communicate back to the repository. Prefer prompting the agent to use `gh` vs. requiring the agent to respond with structured output for the GitHub workflow to parse.
### Action Setup
Use `warpdotdev/oz-agent-action@main` in your workflow. Required inputs:
* `prompt`: The task description for the agent
* `warp_api_key`: API key (store in GitHub secrets, e.g., `${{ secrets.WARP_API_KEY }}`)
* `profile`: Optional agent profile identifier (can use repo variable, e.g., `${{ vars.WARP_AGENT_PROFILE || '' }}`)
The action outputs `agent_output` with the agent's response.
### Minimal Workflow Example
```yaml
name: Run Oz Agent
on:
issues:
types: [opened, labeled]
jobs:
agent:
runs-on: ubuntu-latest
permissions:
contents: write
issues: write
pull-requests: write
steps:
- uses: actions/checkout@v6
- uses: warpdotdev/oz-agent-action@main
id: agent
with:
prompt: |
Analyze the GitHub issue and provide a summary.
Issue: ${{ github.event.issue.title }}
${{ github.event.issue.body }}
Respond to the issue with a comment containing your summary using the `gh` CLI.
warp_api_key: ${{ secrets.WARP_API_KEY }}
profile: ${{ vars.WARP_AGENT_PROFILE || '' }}
- name: Use Agent Output
run: echo "${{ steps.agent.outputs.agent_output }}"
```
### Common Patterns
**Conditional steps**: Use `if: steps.agent.outputs.agent_output` to branch on agent results.
**Templating**: Use `actions/github-script@v7` to construct dynamic prompts from issue templates, repo context, or code.
**Error handling**: Check action success with `if: success()` or `if: failure()`.
**Git operations**: The action runs with checked-out code and Git credentials, so agents can commit and push changes.
## Environments
All cloud agents run in an environment. The environment defines:
* Which programs are preinstalled for the agent (based on a Docker image)
* The Git repositories to check out before the agent starts
* Setup commands to run, such as `npm install` or `cargo fetch`
You should almost always run cloud agents in an environment. Otherwise, they may not have the necessary code or tools available.
Cloud agents run in a sandbox, so they _can_ install additional programs into their environment. They also have Git credentials to create PRs and push branches.
Cloud environments DO NOT store secret values, like API keys. Use the `{{warp_cli_binary_name}} secret` commands instead.
## Using Third-Party Coding CLIs
Oz environments support running third-party coding agent CLIs such as Claude Code, Codex, Gemini CLI, Amp, Copilot CLI, and OpenCode. The `-agents` tagged variants of prebuilt Oz Docker images (e.g. `warpdotdev/dev-rust:1.85-agents`) come with the most popular CLIs preinstalled. Base tags (without `-agents`) do not include coding agent CLIs.
For detailed per-CLI documentation (installation, authentication, non-interactive flags, and artifact reporting), see [references/third-party-clis.md](./references/third-party-clis.md).
### For Interactive Agents: Launching Cloud Agents with Third-Party CLIs
When you are an interactive agent launching a cloud agent to use a third-party CLI:
1. **Environment Selection**: First, ask the user which environment to use. Present the public `-agents` image options from [warpdotdev/oz-dev-environments](https://github.com/warpdotdev/oz-dev-environments):
- `warpdotdev/dev-base:latest-agents`
- `warpdotdev/dev-go:1.23-agents`
- `warpdotdev/dev-rust:1.83-agents`
- `warpdotdev/dev-rust:1.85-agents`
- `warpdotdev/dev-java:21-agents`
- `warpdotdev/dev-dotnet:8.0-agents`
- `warpdotdev/dev-ruby:3.3-agents`
- `warpdotdev/dev-web:latest-agents`
- `warpdotdev/dev-full:latest-agents`
Also ask if they want to use an existing environment instead. To list their environments:
```sh
{{warp_cli_binary_name}} environment list --output-format text
```
If they choose a public image without an existing environment, create one with `{{warp_cli_binary_name}} environment create ...`
2. **Prompt Construction**: Construct a simple prompt that delegates CLI invocation to the cloud agent:
```sh
{{warp_cli_binary_name}} agent run-cloud \
--environment <ENV_ID> \
--prompt 'Read the oz-platform skill for instructions on using [CLI name] to solve: <task description>'
```
**Do not** include the CLI command syntax in the prompt. The cloud agent will read the oz-platform skill and follow those instructions.
**Example**:
```sh
$ {{warp_cli_binary_name}} agent run-cloud \
--environment <ENV_ID> \
--prompt 'Read the oz-platform skill for instructions on using Claude Code to solve: Summarize the architecture of this project'
```
### For Cloud Agents: Invoking Third-Party CLIs
When you are a cloud agent instructed to use a third-party CLI:
1. **Environment**: You are already running in an environment with the CLI preinstalled (if it's in an `-agents` image).
2. **Authentication**: API keys are available as environment variables (e.g. `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, `GEMINI_API_KEY`). These were configured as Oz secrets by the user.
3. **Task Delegation (IMPORTANT)**: The user's task should be completed **entirely by the third-party CLI**. Do NOT use Warp's built-in tools to complete the task yourself:
- Do NOT use `edit_files`, `read_files`, `grep`, `codebase_semantic_search`, or other Warp coding tools to perform the user's task
- The third-party CLI should do all the coding, file editing, searching, and analysis work
- Your role is to:
- Set up the CLI (e.g., authenticate if needed)
- Construct the prompt for the CLI with the user's task
- Run the CLI and monitor its execution
- Debug any issues with the CLI itself
- Report artifacts back to Warp (see below)
4. **CLI Invocation**: Read [references/third-party-clis.md](./references/third-party-clis.md) for detailed instructions on:
- Non-interactive mode flags for each CLI (e.g. `claude -p`, `codex exec`, `gemini -p`)
- Authentication setup steps if needed (e.g. Codex requires `printenv OPENAI_API_KEY | codex login --with-api-key`)
- Useful flags and options
- Example commands
5. **Artifact Reporting**: When the third-party CLI creates a PR, parse its output for the PR URL and branch name, then call `report_pr` to register the artifact in the Warp UI.
**Example workflow**:
```sh
# 1. Read this skill and references/third-party-clis.md to understand CLI usage
# 2. Set up authentication if needed (e.g., for Codex)
# For Claude Code, ANTHROPIC_API_KEY is already available
# 3. Run the CLI with the user's task - let it do ALL the work
$ claude -p "Summarize the architecture of this project"
# 4. If a PR was created, parse the CLI output and report the artifact
# Example: report_pr(pr_url="https://github.com/...", branch="feature-branch")
```
**What NOT to do**:
```sh
# ❌ Don't read files yourself to help the CLI
$ read_files ...
# ❌ Don't search the codebase yourself
$ grep ...
# ❌ Don't edit files yourself
$ edit_files ...
# ✅ Instead, let the third-party CLI handle everything
$ claude -p "Complete the entire task: <user's task>"
```
@@ -1,217 +0,0 @@
# Third-Party Coding Agent CLIs
**Context**: This reference is for cloud agents who need to invoke third-party coding CLIs. If you are an interactive agent launching a cloud agent, see the "For Interactive Agents" section in the main oz-platform skill instead.
This reference documents third-party coding agent CLIs that Oz cloud agents can install and run. Each CLI has its own authentication, non-interactive mode, and nuances.
The `-agents` tagged variants of prebuilt Oz Docker images (e.g. `warpdotdev/dev-base:latest-agents`, `warpdotdev/dev-rust:1.85-agents`) include Claude Code, Codex, and Gemini CLI preinstalled. Base tags (without `-agents`) do not include coding agent CLIs.
> **Note**: Commands below that reference the Warp CLI should use the CLI binary name from the parent skill (the `{{warp_cli_binary_name}}` value).
## Reporting Artifacts
When a third-party CLI creates a PR or branch, Oz does not automatically detect it. You must explicitly register these artifacts so they appear in the Warp UI.
**Pull Requests**: After a third-party CLI creates a PR, call the `report_pr` tool with the `pr_url` and `branch` parameters. Parse the CLI's output to extract the PR URL and branch name.
**How to prompt for this**: When writing prompts that instruct an Oz agent to delegate work to a third-party CLI, always include instructions to:
1. Tell the third-party CLI to print the PR URL and branch name in its output.
2. After the CLI finishes, parse the output and call `report_pr` to register the artifact.
**Plans**: Plan artifacts are registered automatically by the Oz agent when it creates plans using its built-in plan tools. No special handling is needed.
---
## Claude Code
- **Package**: `npm install -g @anthropic-ai/claude-code`
- **Auth**: `ANTHROPIC_API_KEY` environment variable (automatic).
- **Non-interactive mode**: `claude -p "<prompt>"`
- **Useful flags**: `--output-format json`, `--allowedTools "Read,Write,Bash(...)"`, `--append-system-prompt`
### Oz secret
```sh
{{warp_cli_binary_name}} secret create ANTHROPIC_API_KEY --team --value-file key.txt --description "Anthropic API key for Claude Code"
```
### Example prompt
```
Run: claude -p "Analyze the codebase and list potential security issues" --output-format json
```
### Artifact reporting prompt
```
Run Claude Code to implement the feature:
claude -p "Create a branch, implement the login fix, commit, push, and create a PR using gh CLI. Print the full PR URL and branch name at the end."
After Claude Code finishes, find the PR URL and branch name from its output.
Then call the report_pr tool with those values so the PR appears as an artifact.
```
---
## Codex CLI
- **Package**: `npm install -g @openai/codex`
- **Auth**: Requires an explicit login step before use:
```
printenv OPENAI_API_KEY | codex login --with-api-key
```
Alternatively, `CODEX_API_KEY` can be set directly.
- **Recommended**: Add `printenv OPENAI_API_KEY | codex login --with-api-key` as an environment setup command so authentication happens automatically before the agent starts.
- **Non-interactive mode**: `codex exec "<prompt>"`
- **Regional endpoint**: Set `OPENAI_BASE_URL` if needed (e.g. `https://us.api.openai.com/v1`).
- **Useful flags**: `--full-auto`, `--sandbox workspace-write`, `--json`, `--skip-git-repo-check`
### Oz secret
```sh
{{warp_cli_binary_name}} secret create OPENAI_API_KEY --team --value-file key.txt --description "OpenAI API key for Codex CLI"
```
### Example prompt
```
First authenticate Codex: printenv OPENAI_API_KEY | codex login --with-api-key
Then run: codex exec "Refactor the utils module to reduce duplication"
```
### Artifact reporting prompt
```
Authenticate Codex: printenv OPENAI_API_KEY | codex login --with-api-key
Then run: codex exec --full-auto "Create a branch, fix the bug, commit, push, and create a PR. Print the PR URL and branch name."
After Codex finishes, parse the PR URL and branch name from its output and call report_pr.
```
---
## Gemini CLI
- **Package**: `npm install -g @google/gemini-cli`
- **Auth**: `GEMINI_API_KEY` environment variable (automatic). Obtain from [Google AI Studio](https://aistudio.google.com/apikey).
- **Non-interactive mode**: `gemini -p "<prompt>"` (headless mode)
- **Useful flags**: `--output-format json`, `--yolo` (auto-approve tool actions)
### Oz secret
```sh
{{warp_cli_binary_name}} secret create GEMINI_API_KEY --team --value-file key.txt --description "Gemini API key for Gemini CLI"
```
### Example prompt
```
Run: gemini -p "Review the test suite and suggest missing edge cases" --output-format json
```
### Artifact reporting prompt
```
Run Gemini CLI:
gemini -p "Create a branch, implement the change, commit, push, and create a PR using gh CLI. Print the full PR URL and branch name at the end." --yolo
After it finishes, parse the PR URL and branch from the output and call report_pr.
```
---
## Amp
- **Package**: `npm install -g @sourcegraph/amp`
- **Auth**: `AMP_API_KEY` environment variable. Obtain from [ampcode.com/settings](https://ampcode.com/settings). In isolated mode, uses `ANTHROPIC_API_KEY` instead.
- **Non-interactive mode**: `amp -x "<prompt>"` (execute mode)
- **Useful flags**: `--dangerously-allow-all` (skip tool approval prompts)
### Oz secret
```sh
{{warp_cli_binary_name}} secret create AMP_API_KEY --team --value-file key.txt --description "Amp API key"
```
### Example prompt
```
Run: amp -x "List all TODO comments in the codebase and group them by priority"
```
### Artifact reporting prompt
```
Run Amp:
amp --dangerously-allow-all -x "Create a branch, implement the fix, commit, push, and create a PR using gh CLI. Print the full PR URL and branch name."
After Amp finishes, parse the PR URL and branch from the output and call report_pr.
```
---
## Copilot CLI
- **Binary**: `copilot` (standalone, from [github/copilot-cli](https://github.com/github/copilot-cli))
- **Auth**: `GH_TOKEN` or `GITHUB_TOKEN` environment variable with a fine-grained PAT that has the **Copilot Requests** permission. Also supports `COPILOT_GITHUB_TOKEN`.
- **Non-interactive mode**: `copilot -p "<prompt>"`
- **Useful flags**: `--allow-all-tools`
- **Note**: The `gh copilot` extension (distinct from standalone `copilot`) requires OAuth and does **not** work with PATs.
- **Not preinstalled** in Oz images. Install via setup commands or GitHub releases.
### Oz secret
```sh
{{warp_cli_binary_name}} secret create GH_TOKEN --team --value-file token.txt --description "GitHub PAT with Copilot Requests permission"
```
### Example prompt
```
Run: copilot -p "Review the latest changes and suggest improvements" --allow-all-tools
```
### Artifact reporting prompt
```
Run Copilot CLI:
copilot -p "Create a branch, implement the fix, commit, push, and create a PR using gh CLI. Print the full PR URL and branch name at the end." --allow-all-tools
After Copilot finishes, parse the PR URL and branch from the output and call report_pr.
```
---
## OpenCode
- **Install**: `curl -fsSL https://opencode.ai/install | bash` (or via binary release)
- **Auth**: Uses provider-specific API keys via environment variables (e.g. `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`). Also reads from `.env` files. Run `opencode auth login` to configure interactively.
- **Non-interactive mode**: `opencode run "<prompt>"` or `opencode -p "<prompt>"`
- **Useful flags**: `-f json` (JSON output), `-q` (quiet/no spinner)
- **Not preinstalled** in Oz images. Install via setup commands.
### Example prompt
```
Run: opencode run "Explain the architecture of this project" -q
```
---
## Droid (Factory)
- **Install**: `curl -fsSL https://app.factory.ai/cli | sh`
- **Auth**: Requires a Factory account. Use `/login` in the CLI or generate an API key from Factory Settings. **Headless env-var auth is not yet confirmed** — this CLI may require interactive login.
- **Non-interactive mode**: `droid exec "<prompt>"`
- **Useful flags**: `--auto low|medium|high` (permission tier), `--skip-permissions-unsafe`
- **Status**: **Not currently supported** for headless Oz environments due to unclear non-interactive auth. Excluded from prebuilt images.
---
## Quick Reference
| CLI | Command | Auth Env Var | Non-Interactive Flag | Preinstalled |
|-----|---------|-------------|---------------------|-------------|
| Claude Code | `claude` | `ANTHROPIC_API_KEY` | `-p` | Yes |
| Codex | `codex` | `OPENAI_API_KEY` | `exec` | Yes |
| Gemini CLI | `gemini` | `GEMINI_API_KEY` | `-p` | Yes |
| Amp | `amp` | `AMP_API_KEY` | `-x` | No |
| Copilot CLI | `copilot` | `GH_TOKEN` / `GITHUB_TOKEN` | `-p` | No |
| OpenCode | `opencode` | Provider-specific | `run` / `-p` | No |
| Droid | `droid` | N/A (interactive login) | `exec` | No |