Upload builds from an AI chat
Pro and Team
Claude and ChatGPT in the browser connect to the hosted AppForShare MCP server with one sign in, and can list builds and read their status. But a file you attach in a chat never reaches AppForShare, so they could not upload.
Now the assistant can make a one time upload link. You open it in any browser, on your computer or phone, drop the .ipa, .apk or .aab, and the build goes into the workspace you connected. The assistant then reads the install link and store readiness.
Example
Upload link
- WorksOnce, until 14:32 (30 minutes)
- WorkspaceAcme Apps, Beta channel
- StatusReady, install link and readiness: ready
Made for
- People who use Claude or ChatGPT in the browser to run their releases
- Teams whose CI publishes builds as GitHub release assets
- Anyone who wants an install link without opening the dashboard
What it ends
- Switching to the dashboard to upload, then back to the chat
- Downloading a CI artifact just to upload it again
- Assistants that can read builds but not add one
How it works
Step 1
Ask for an upload link
The assistant calls create_upload_link and gives you a link that works once, for 30 minutes.
Step 2
Drop the build
Open the link in any browser, without signing in, and drop the .ipa, .apk or .aab. Your plan's limits, notes and channel apply.
Step 3
Get the install link
The assistant calls check_upload: waiting, uploading, processing, then ready with the install link and store readiness, or failed with the reason.
How the link is kept safe
The link works once and for 30 minutes. Its key sits after # in the address, so it never reaches a server log, and only a hash of it is stored. The build goes into the workspace, and under the person, that connected the assistant, and check_upload answers only to that same workspace and person.
Upload from a URL
If the build is already online at a public https address, such as a GitHub release asset or a signed CI artifact link, the assistant can use upload_from_url, and the CLI has appforshare upload --url. The size is read first. Plain http, user names or passwords in the URL, and private, local and reserved addresses are refused, also when a redirect or the DNS answer points there. Only the host of the URL is kept. Both kinds of upload are listed in the workspace activity feed.
Good to know
- Public https links only: AppForShare cannot fetch from private or signed in sources.
- The assistant cannot send a build to TestFlight or Google Play; a person does that from the build page or the CLI.
- Coding assistants on your computer can still upload a local file with upload_build in the npm appforshare-mcp package.
Questions
- Which assistants does it work with?
- Clients of the hosted MCP server, such as Claude and ChatGPT in developer mode. Claude Code, Cursor and Codex can also upload local files through the npm package.
- Does the person opening the link need to sign in?
- No. The link itself is the permission, once, for 30 minutes.
- Which plan limits apply?
- The workspace's plan: file size, storage and channels as for any upload.
Read next
Try it on your own app
Free account in a minute. Pro starts with a 7 day free trial.
More features
- Builds on GitHub Actions
- Flutter builds on GitHub Actions
- Flutter facts and checks
- Security scan on every build
- Connect Expo (EAS builds)
- Connect Codemagic
- Send store builds to TestFlight and Google Play
- TestFlight groups and beta review on send
- TestFlight feedback in your inbox
- iOS device registration
- Hands free device setup
- Store listing editor
- App Store submission
- Google Play releases
- TestFlight tester sync
- Tester app with notifications
- Tester groups and status
- Join links for testers
- Beta and Live channels
- Build history page
- Tasks and activity feed
- Feedback to Linear and Jira
- Release checklist, approvals and blockers
- Release page per version
- Install link controls
- Several links per build
- Retire a test build
- TestFlight and APK in one link
- Install page in 13 languages
- In-app update check
- .aab uploads
- MCP server for AI tools
- Tester feedback with screenshots
- In-app feedback link
- AI test plan for each build
- Diawi compatible upload API
- Remember my iPhone
- Install help and why it failed
- Email the install link
- Custom channel address
- Verified publisher
- Daily install email
- Zipped .app upload
- Manage link for guest uploads
- Test accounts on the install page
- Telegram notifications
- Permissions in plain words
- Reply to testers and star ratings
- Follow a channel by email
- Download button for a README
- Store pages
- Check a build before upload
- Token scopes and CLI tools
- Passkeys and email code sign in
- Free build tools
- How reports work
- Malware check on every upload