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 November 13, 2026, and from our analysis. They are not legal advice.
Star history
- MaaAssistantArknights/MaaAssistantArknights24,546 ★ · +2,386
| Repository | 2026-07-29 | 2026-11-13 |
|---|---|---|
| MaaAssistantArknights/MaaAssistantArknights | 22.2k | 24.5k |
2,386 Stars in the last 107 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial 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 repository description says 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. 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. Several have integration examples in the repository. For instance, the C interface is in include/AsstCaller.h, and the Python interface is in src/Python/asst/asst.py. 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 '烧水' and '凹直升'. 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.21.0-beta.3, v6.21.0 and v6.21.1 within three days), 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. 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. The README lists MaaFramework, described as a new framework, among its related projects. 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. 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 the two artists and all developers reserve all rights. 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 README directs bug reports and requests to Issues and Discussions.
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.
Frequently asked questions
How do you install MAA?
The README sends you to the documentation first, then to the official site maa.plus or the Releases page on GitHub to download, and finally to the getting started guide for the installation steps. It gives no package manager line or install command of its own.
Does MAA run on Linux and macOS?
MAA supports a command line interface on Linux, macOS and Windows, which the README says suits automation scripts and servers with no graphical interface. Hardware acceleration is documented for Windows, where it depends on Microsoft's DirectML component.
Can I embed MAA in my own program?
Yes. The project ships interfaces for C, Python, Golang, Dart, Java, Rust, TypeScript and Woolang, several with an integration example, plus HTTP interfaces for Java and Rust and published protocols for callback messages, task flow and auto battle. The TypeScript interface lives in the separate MaaX repository rather than here.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/maaassistantarknights-maaassistantarknights)Star history chart for your README
[](https://hysenlabs.com/projects/maaassistantarknights-maaassistantarknights)Was this useful?