MAA: An Image Recognition Automation Tool for Arknights Daily Grind
| A one-click tool for the daily tasks of Arknights, supporting all clients.
At a glance
- What is it?
- MAA (MaaAssistantArknights) is a C++ based, AGPL-3.0 tool that automates Arknights daily tasks via image recognition. It supports multiple clients and offers a range of APIs, but its complexity and licensing may not suit every user.
- Who is it for?
- MAA is for Arknights players who want to automate repetitive daily tasks like base management, recruitment, and material farming, and who are comfortable with a tool that requires setup and occasional updates. It is not for those who prefer a fully supported official solution or who need a tool for all overseas servers without caveats.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 14, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What MAA Solves and Who It Is For
MAA, which stands for MAA Assistant Arknights, is a one-click tool for handling the daily tasks in the mobile game Arknights. The core problem is that many daily activities, such as spending sanity on stages, managing the base (infrastructure), doing public recruitment, and collecting rewards, are repetitive and time-consuming. MAA uses image recognition to automate these tasks, freeing the player from manual clicking. It is aimed at players who play regularly and want to reduce the grind, as well as developers who want to integrate automation into their own scripts or tools. The README states it supports 'all clients,' but the details show that overseas support is partial: the international, Japanese, Korean, and Traditional Chinese servers have most features working, but they are not fully tested due to fewer users and limited project manpower. So the primary audience is likely CN server players, with overseas players as a secondary, less guaranteed group.
How Image Recognition Drives the Automation
The tool relies on computer vision to interpret the game screen. The README lists OpenCV for image recognition and PaddleOCR for text recognition, with FastDeploy and ONNX Runtime for deep learning inference. This means MAA captures the screen, detects elements like buttons, text, and map tiles, and then simulates touch events via Android input tools like Minitouch and MaaTouch. The architecture is modular: the core is written in C++, and there are multiple interfaces for other languages. The task flow is defined by a task schema, and the copilot (auto-battle) feature uses a separate schema for combat. The recognition is not hardcoded for every scenario; it uses templates and models that can be updated. For instance, the public recruitment feature can recognize the recruit interface and even identify operators you already own, showing potential recruitment results. This is not a simple macro; it is a vision-driven system that can adapt to different screen states, which is why it can handle complex tasks like auto-battle in Integrated Strategies (Roguelike) mode, where it identifies operators and their levels to make decisions.
Getting MAA Running: Downloads, CLI, and Configuration
Installation starts with downloading from the official website or the GitHub Releases page. The README points to a newbie guide in the documentation for detailed steps. The tool is primarily GUI-based, with a Windows client using WPF, but it also supports a command-line interface (CLI) for Linux, macOS, and Windows. The CLI is useful for automation scripts or headless servers. The configuration is done through JSON files for tasks and schedules. For example, the base scheduling schema allows custom shift schedules via a JSON definition. The tool also supports multiple programming interfaces: C, Python, Golang, Java, Rust, and TypeScript, among others. Each has sample code in the repository. For instance, the C interface is in include/AsstCaller.h, and the Python interface is in src/Python/asst.py. To get started, you would typically run the GUI, select your client, and start the tasks. For CLI, you would invoke the executable with arguments, as described in the CLI guide. The exact commands are not in the README, so you need to consult the docs for specifics.
Feature Highlights: Beyond Basic Dailies
MAA is not just about clicking through daily missions. The README lists several advanced features. It can automatically manage the base (infrastructure) by calculating operator efficiency and supporting cross-facility combinations. It can auto-recruit, using expedited permits if available, and upload data to Penguin Statistics and Yituliu. It can recognize the operator list to show which operators you have and their potential levels. It can identify upgrade materials and export them to planning tools. It can visit friends, collect credits, and shop. It also includes a copilot feature that can execute battle plans from JSON files, effectively auto-playing stages. For the Integrated Strategies mode, it can farm ingots and level up, with automatic 'burning water' (a slang for using sanity potions) and '凹直升' (rerolling for direct promotion). These features make it a comprehensive automation suite, but they also increase complexity. Each feature may require specific settings or data, and the documentation is essential for using them properly.
Limitations and Failure Modes
The most obvious limitation is the reliance on image recognition, which can break when the game updates its UI or graphics. The README does not mention how often the tool needs updates, but given the active release schedule (v6.17.0-beta.x within a week), it is clear that frequent updates are needed to keep up with game changes. Another limitation is the overseas server support: the README explicitly says that many features are not fully tested for EN, JP, KR, and TW servers, so users may encounter bugs. The tool is also not a simple installer; it requires reading documentation and possibly tweaking JSON configs. For non-technical users, this could be a barrier. Additionally, the tool uses a GUI that is Windows-centric, though the CLI helps. There is also a risk of account bans, though the README does not address this directly. The tool is open source and free, but it is not an official product, so using it may violate the game's terms of service, although the README does not mention that. The developer's disclaimer says that if a merchant uses the software for paid boosting, the consequences are not the software's responsibility, implying that such use is not endorsed.
Alternatives: Manual Play and Other Automation Tools
The primary alternative is to play manually, which is always safe but time-consuming. For players who want automation, there are other tools, but the README does not name any. However, the project itself is based on MaaFramework, a separate framework that can be used for other games. That is not a direct alternative, but a related project. Another approach is to use Android emulators with built-in macro features, like BlueStacks or LDPlayer, which allow simple recording and playback. Those are easier to set up but lack the intelligent recognition of MAA. They cannot adapt to changing screen states, so they are less reliable for complex tasks. Another alternative is to use a cloud gaming service that has built-in automation, but that is not common. The key difference is that MAA uses computer vision to understand the game state, whereas macros are blind. So for tasks that require decision-making, like choosing operators in the base, MAA is superior, but for simple repetitive clicks, a macro might suffice. The choice depends on the user's comfort with configuration and the need for robustness.
Maintenance, Upgrades, and Licensing
The project is under active development, with beta releases every few days. That means users need to update frequently to get fixes and new features. The default branch is dev-v2, which suggests that the development version is the main line, and stable releases may be less frequent. The license is AGPL-3.0, which has implications for those who want to use the code in their own projects. If you modify the code and provide it over a network, you must release the source code. The README also mentions an additional user agreement, which is separate from the license. The logo is not under AGPL, and all rights are reserved by the artists. This means you cannot use the logo without permission. For integration, you can use the provided APIs, but you must comply with the license. The cost of maintenance is on the user: updating the tool, checking for new releases, and adapting to game changes. The project does not offer paid support, so users rely on community issues and discussions. This is a trade-off for a free tool.
Editorial conclusion
MAA is for Arknights players who want to automate repetitive daily tasks like base management, recruitment, and material farming, and who are comfortable with a tool that requires setup and occasional updates. It is not for those who prefer a fully supported official solution or who need a tool for all overseas servers without caveats. Before adopting, verify that your client (CN, EN, JP, KR, TW) is fully supported, check the latest release notes for any breaking changes, and review the AGPL-3.0 license and additional terms of service if you plan to integrate or redistribute. The project is actively maintained, but the reliance on image recognition means it can break with game updates, so budget time for monitoring and updating.
Community notes