# Android Bot Marketplace: Install and Publish Bots

> Browse the Android bot Marketplace in MAS: install and update ready-made bots, run them on your emulator, and publish your own Python macro for free.

Source: https://automationmacro.com/docs/marketplace (Studio, updated 2026-09-04)

The Marketplace is the library of ready-made Android bots inside Macro Automation Studio (MAS). You install a bot in one click, run it on any device you own, and publish your own Python macro so other people can run it. Every listing is free: there are no paid listings and no ratings, and listings are ranked by download count. This page covers browsing, installing, updating and removing bots, then publishing your own.

## Featured bots

Three bots have their own pages on this site:

- [Whiteout Survival Bot](/whiteout-survival-bot)
- [Kingshot Bot](/kingshot-bot)
- [Last Asylum Plague Bot](/last-asylum-plague-bot)

## Browse the Android bot Marketplace

1. Click **Marketplace** in the sidebar.
2. Type in the search box to find a bot by name.
3. Narrow the list with **Category**. The categories are AI Generated, Productivity, Gaming, Social Media, Entertainment, Utilities, Development, Finance, Communication, Health & Fitness and Business.
4. Change **Sort by**. The default is **Most downloads**; the others are **Newest**, **Oldest**, **A to Z** and **Z to A**.
5. Switch between the card grid and a compact table with the view toggle on the right.

The **All** and **Mine** toggle limits the list to listings you published. Active filters appear as chips under the bar, with a **Clear all** link. **Refresh** reloads the page of nine listings.

Each card shows the cover image, the category, the name, a short description, up to three tags and the version number. A card can carry three badges: **Yours** for your own listing, **Downloaded** for a bot you installed, and **Update** when a newer version exists. Click a card to open the listing page. It shows the version, when the listing was created and updated, its tags, the full description, and a **Version history** tab that marks the latest version, the version you installed, and any deprecated version with its reason.

## Install a bot

1. Click **Download** on a card or on the listing page.
2. MAS records the install on the server and adds the bot to **Macros** with a **Market** badge.

That is all. Nothing is written to disk. The script, its argument form and its images are fetched from MAS each time a run starts, and the version you installed stays pinned until you update. A marketplace bot is read-only, so its card opens no editor; you run it from a device card exactly like your own macros. [How to run a macro from the Marketplace](/docs/run-macro-from-marketplace) walks through the device-group steps with screenshots.

If the publisher built an argument form, **Macro settings** on the device card shows it, and [settings profiles](/docs/settings-profiles) work as usual. If the bot ships a runtime dashboard, the card's **Dashboard** view shows it while the bot runs.

> [!NOTE]
> The Marketplace lives in the app only. Its routes need a signed-in session, so there are no API-key endpoints for browsing or installing bots.

## Update a bot

When the publisher releases a new version, the card shows the **Update** badge and an **Update** button, and the listing page button reads **Update (vN)**. Click it to move your install to the newest version. Your devices keep the settings you saved for the bot. Until you click, every run keeps using the version you installed, so an update never surprises a running fleet.

## Remove a bot

1. Click **Macros** in the sidebar.
2. Open the menu on the bot's card and click **Delete**.
3. Confirm in the dialog.

This removes the bot from your library. The listing itself stays in the Marketplace.

## Publish your own Python macro

Publishing is free and happens inside the app. You need a Python macro that you have opened in the Code Editor, so its project folder exists on this machine.

### Before you start

- The macro is a Python macro, opened at least once in the **Code Editor** on this computer.
- The entry file runs on its own: a main function or top-level code that starts the work.
- Every template image the script uses is in your image library, so MAS can bundle it.
- The project is under 50 MB zipped and holds fewer than 500 files.

### Publish the first version

1. Open the macro in the **Code Editor**.
2. Click **Publish** in the toolbar. The **Publish to Marketplace** page opens.
3. Add a **Cover Image**.
4. Enter a **Name** of at least 3 characters, using letters, numbers, spaces, hyphens and underscores.
5. Choose the **Entry Module**, the Python file MAS runs. The page preselects the likely file from your project.
6. Optional: under **Additional images**, click **Pick from library**. MAS bundles the images it detects in your code; pick the ones you reference through a variable.
7. Write the **Description** (at least 10 characters). It is rich text and can include images.
8. Write the **Initial Release Notes** (at least 5 characters).
9. Add **Tags**.
10. Click **Preview** to see the listing as others will, then **Edit** to go back.
11. Click **Publish**. The page reports "Packaging project..." and "Uploading to marketplace...".

A new listing is reviewed before other users can see or download it. Until then it appears under **Mine** with the **Yours** badge.

### What MAS packages

The app zips your project folder and skips hidden files and folders, `__pycache__` and `.pyc` files. The zip must be under 50 MB and hold at most 500 files. The server then checks the package:

- the entry module exists in the zip;
- no blocked file types are present (`.exe`, `.dll`, `.so`, `.dylib`, `.pyc`, `.pyo`, and source files in `.c`, `.cpp`, `.h`, `.java`, `.go`, `.rs`, `.rb`, `.php`, `.swift`, `.kt`, `.scala`, `.js`, `.ts`, `.html`, `.css`);
- every `.py` file parses without a syntax error;
- imports between your modules resolve;
- every image the script references is in your library.

Python files are bundled in a compact form. Text and config files travel unchanged: `.md`, `.txt`, `.xml`, `.json`, `.yaml`, `.yml`, `.toml`, `.ini`, `.cfg`, `.conf` and `.csv`. If the checks pass with remarks, the page lists them under "Published with warnings".

### Publish a new version

1. Open the same macro in the **Code Editor** and click **Publish**. The page now reads **Update Marketplace Listing**.
2. The name, description, tags and cover image are prefilled. Change what you like.
3. Write the **Change Log**. It is required.
4. Click **Update**.

The version number increases by one, and everyone who installed the bot sees **Update** on their card.

### What a good listing needs

- A name people search for: the game or app plus what the bot does.
- A description that states the emulator resolution and DPI the bot expects, the language the app must run in, what each argument means, and what the bot does not do.
- A cover image taken from the game screen or the bot's dashboard.
- An argument form built with the [UI Builder](/docs/ui-builder), with help text on each field, so users configure the bot without touching code.
- Tags for the game name, the genre and the task, such as `farming` or `daily`.
- Release notes that say what changed and whether users should reset a setting.

### Publish errors

| Message | What to do |
|---|---|
| This macro is already published. Use 'Update' to publish a new version. | Open the same macro and click **Publish** again; the page switches to update mode. |
| Name can only contain letters, numbers, spaces, hyphens, and underscores | Remove other characters from the name. |
| Entry module not found in project. | Choose a `.py` file that exists in the project. |
| Project is too large. Maximum size is 50MB. | Remove large assets from the project folder; keep images in your library instead. |
| Your script contains syntax errors. | Run the script once in the Code Editor and fix the reported line. |
| Your script has import errors. | Add the missing module to the project or remove the import. |
| No entry point found. | Add a main function or top-level code to the entry module. |
| Your project contains blocked file types that cannot be published. | Delete the files listed above from the project. |
| One or more images in your script are not in your library. | Recreate the template in Asset Lab so it is stored under your account. |
| One or more referenced images could not be found. | Check the image IDs in your code against your library. |
