DeployGate agent integration for Claude Code and Codex: upload mobile apps, manage distribution pages, set up CI/CD, and onboard your team. Supports iOS (IPA) and Android (APK/AAB).
This repository includes plugin metadata for both Claude Code and Codex:
- Claude Code:
plugin/.claude-plugin/plugin.jsonand.claude-plugin/marketplace.json - Codex:
plugin/.codex-plugin/plugin.jsonand.agents/plugins/marketplace.json
Add the marketplace and install the plugin from within Claude Code:
/plugin marketplace add DeployGate/deploygate-agent-plugin
/plugin install deploygate@deploygate-marketplace
Add the marketplace from your shell:
codex plugin marketplace add DeployGate/deploygate-agent-pluginThen enable or install the deploygate plugin from the configured DeployGate marketplace in Codex.
After installation, start the guided onboarding flow:
- Claude Code: run
/deploygate:setup - Codex: mention
$deploygate:setup
- Account creation — sign in via browser-based device authorization (
login_start→ approve in browser →login_wait) - App upload — build and upload your IPA/APK/AAB
- Distribution page — create a distribution page with an install link
- Notifications — connect Slack/Teams/Chatwork
- iOS device setup — UDID registration for Ad Hoc builds (if applicable)
The plugin signs you in to DeployGate via a browser-based device authorization code:
- Ask your agent to set up DeployGate. Under the hood it calls the
login_starttool, which returns a URL and a short code. - Open the URL in a browser where you are signed in to DeployGate and click approve.
- The agent calls
login_wait, which returns your workspace information once you approve.
The issued token is stored at ~/.config/deploygate/token (on Windows, %APPDATA%\deploygate\token) with 0600 permissions and reused across sessions. Run the logout tool to revoke it server-side and delete the local file.
Claude Code invokes plugin skills as slash commands. Codex invokes plugin skills by mentioning the skill name with $.
| Skill | Claude Code | Codex | Description |
|---|---|---|---|
setup |
/deploygate:setup |
$deploygate:setup |
Full onboarding flow with step-by-step progress display |
deploy |
/deploygate:deploy |
$deploygate:deploy |
Build and upload the current project to DeployGate |
ci-setup |
/deploygate:ci-setup |
$deploygate:ci-setup |
CI/CD integration — GitHub Actions, Bitrise, CircleCI (see external CI guide) |
sdk-setup |
/deploygate:sdk-setup |
$deploygate:sdk-setup |
Android SDK integration (crash reporting, screen capture). iOS SDK is currently not recommended. |
| Tool | Description |
|---|---|
login_start |
Begin a browser-based device authorization login. Returns a URL for the user to open and approve. |
login_wait |
Poll until the user approves login_start. On success, persists the token to ~/.config/deploygate/token (0600). |
logout |
Revoke the stored token on the server and delete the local token file. |
get_user_info |
Get current user information (workspace names, projects). Auto-clears the local token on a 401 response. |
| Tool | Description |
|---|---|
upload_app |
Upload an app binary (IPA/APK/AAB) to DeployGate. |
Parameters:
owner_name(required): Owner name (user or project)file_path(required): Absolute path to the app binarymessage: Build description (max 32,766 bytes; auto-truncated if exceeded)distribution_key: Distribution page key to update. Takes priority overdistribution_name.distribution_name: Distribution page name. Creates a new page if not found. Ignored ifdistribution_keyis also specified.release_note: Release note for the distribution pagedisable_notify: Disable push notification to testers (iOS only)ios_simulator_zip: Path to iOS simulator build zip for Instant Device (browser-based preview). Must be uploaded together with an IPA.
| Tool | Description |
|---|---|
create_distribution |
Create a new distribution page. Returns access_key for the URL https://deploygate.com/distributions/{access_key} |
list_distributions |
List all distribution pages for an app |
get_distribution |
Get details of a specific distribution page |
update_distribution |
Update a distribution page. active and release_scope are always required — use get_distribution first to retrieve current values. |
delete_distribution |
Delete a distribution page. Uploaded builds (binaries) are preserved. |
Release scope options (release_scope):
public— publicly accessible, indexable by search enginesunlisted— accessible to anyone with the link (default)passcode— requires a passcode (passcodeparameter required)authorized_only— only accessible to logged-in team members
| Tool | Description |
|---|---|
get_udids |
Get iOS device UDIDs for an app. Use unprovisioned_only=true to find devices not yet in the provisioning profile. |
| Tool | Description |
|---|---|
get_notification_settings_url |
Generate the URL for configuring Slack/Teams/Chatwork notifications. Supports distribution-level and app-level settings. |
| Tool | Description |
|---|---|
add_member |
Add a member with a specified role (owner/developer/tester). Orchestrates 3-4 API calls in one command. Free plan limit: 2 members. |
list_members |
List members of a specific team |
remove_member |
Remove a member from a team |
| Tool | Description |
|---|---|
create_shared_team |
Create a workspace-level shared team for cross-project use |
add_shared_team_member |
Add a member to a shared team (email or username, not both) |
assign_shared_team_to_app |
Assign a shared team to an app (tester-level access) |
Pre-built workflow templates in plugin/templates/:
| Template | Description |
|---|---|
deploygate-upload.yml |
Upload to DeployGate on push to main |
deploygate-pr.yml |
PR-based distribution — auto-create distribution page with QR code, cleanup on close |
npm install # Install dependencies
npm run build # Compile TypeScript + bundle with esbuild
npm test # Run testsThis plugin is open-source software provided as-is on a best-effort basis. See SUPPORT.md for where to get help and what to expect, and CONTRIBUTING.md for how to contribute. All participation in this repository is governed by our Code of Conduct.
MIT — DeployGate Inc.