Self-hosted service
megumiss/NIKKEAutoScript avatar
megumiss/NIKKEAutoScript

NIKKEAutoScript drives NIKKE daily tasks over ADB and a screen-reading UI layer

胜利女神:NIKKE 自动日常脚本,支持PC客户端和模拟器。Goddess of Victory: NIKKE auto-daily script, supports PC and Emulator client.

781 stars31 forksPythonGPL-3.0

At a glance

What is it?
NKAS is a Python automation script for Goddess of Victory: NIKKE that collects rewards, runs dailies and raids, and redeems gift codes on the PC client, real Android devices and ARM emulators. It ships a WebUI and a Docker image, and the README is explicit that using it may get your account banned.
Who is it for?
NKAS fits a player who wants the repetitive half of a gacha game's daily routine handled, who can accept a WebUI and a scheduler running on their own machine, and who is willing to read the ban risk the README states plainly. It does not fit anyone whose account matters more than their time, because automating a live service is exactly the case the project's own disclaimer covers, and it does not fit the Chinese server, which the project does not support.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The bot works through the device, not through the game's protocol

NKAS is a Python automation script for Goddess of Victory: NIKKE, a fork of the project by takagisanmie. The way it operates is visible in its dependency list rather than in its documentation: adbutils and uiautomator2 are pinned in the requirements, along with desktopmagic, which is a Windows automation helper, and comtypes for Windows COM access.

That is a device level automation stack. The script talks to an emulator or a real phone over adb, reads the screen through the accessibility layer with uiautomator2, finds a button, and taps it. On the PC client it drives a window instead. There is no sign of a packet parser, a private API client, or any modification of the game binary, which is the difference between a script and a cheat in the technical sense.

It also inherits its architecture. The acknowledgement section credits the script framework of Alas, AzurLaneAutoScript, which is a mature framework for automating a different Azur Lane game, and the PC side support code comes from March7thAssistant. So the task implementations, the scheduler and the configuration system are not written from scratch; NIKKEAutoScript supplies the NIKKE specific tasks on top of a general purpose automation framework.

The practical consequence is that the script is brittle in the ordinary way of UI automation. If the game changes a button position, a layout, or the font of a label, the selector that used to match no longer matches.

The task list covers rewards, dailies, raids, events and gift codes

The feature list in the README is organised by game area, and it is long enough to show what the project actually automates.

The reward group covers collecting daily rewards, extermination and mail. The daily group covers the daily pull, daily missions, the pass, consultation, the shop, the scrap shop and the character story appreciation event. The outpost group covers dispatch, liberation, the synchroniser, the loop chamber and base story missions. The ark group covers simulation rooms, simulation room overclocking, the corporate tower, anomaly interception, the rookie arena, the special arena, special arena monitoring and the champion arena.

Event content is listed separately: co-op operations, solo assault, alliance raid, story events, automatic progress through story stages, automatic sweep, mini game dailies and event shop purchases. Ground operations have their own daily entry, and the community features cover the developer community dailies, automatic CDK redemption, one click login that fetches the Cookie automatically, and automatic renewal of that Cookie.

The tool section lists tower climbing, semi automatic clicking for the main story, story appreciation, CDK redemption, screen rotation, Hosts file modification and event countdowns. The data section adds item statistics and anomaly interception statistics.

Two entries deserve a second look because they sit outside the game client. The Hosts modification entry is a network configuration change on the host machine, and the automatic Cookie acquisition and renewal entries handle session credentials for the developer community site. Both are the kind of feature that carries more risk than a button press, and both are worth understanding before you enable them.

PC, real phones and ARM emulators, but not the Chinese server

The supported platforms are listed as the PC client, real Android devices and ARM emulators, with multi screen support and a VDD virtual display on the PC side, and control of the game window from the background. The description states the exception explicitly: the Chinese server is not supported.

That exclusion is not a technicality about the interface, it is a scope decision about which client build the automation was written against. A different server usually means a different client, different assets and different timing, and the selectors in the script would not simply carry over.

The Windows and Linux platform badge is worth noting because the PC side depends on Windows specific facilities, including the desktopmagic and comtypes packages. The Python version is a badge only, and the pyproject.toml configures ruff with a line length of 120, the E, F and I rule sets and single quote formatting, so the project treats itself as a maintained Python codebase rather than a loose collection of scripts.

The Docker image is published as megumiss/nkas:latest, and the compose file in the repository builds it from a Dockerfile in the deploy/docker directory.

Scheduling, parallel instances and a WebUI that can be opened to the network

The scheduling and control group is what separates this from a set of macros. Schedule settings are managed centrally, with the execution period, the execution time and the enable state of each task configured in one place. Tasks can start automatically, hotkeys can be customised, and multiple instances can be run in sequence.

There is also a Web interface. The quick start notes that remote access can be enabled manually under the deployment, WebUI, SecurityEntryEnabled path, and that the protection is off by default, with the browser, executable and mobile usage described in doc/security-entry.md.

That default matters. A WebUI for a script that holds game session cookies and that can trigger purchases in the event shop is a control panel for an account, and the project ships it with the guard closed and a separate document explaining how to open it. Turning that on without a protection mechanism is the kind of decision that belongs to a deliberate operator, not to a first run.

The notifications and auto update features round out the operational picture, along with support for timed updates. Auto update in particular changes the upgrade model: rather than pulling a new version yourself, the running instance pulls it, which is convenient and is also a supply chain decision that a cautious operator may want to control.

Docker deployment runs with host networking and a bind-mounted project directory

A compose file is included for container deployment. The service is defined with host networking, the project directory bind mounted read write into the container, and the local timezone mounted read only so the scheduler sees the right clock.

yaml
services:
    NKAS:
        network_mode: host
        volumes:
            - '.:/app/NIKKEAutoScript:rw'
            - '/etc/localtime:/etc/localtime:ro'
        container_name: 'nkas'
        image: 'megumiss/nkas:latest'

Host networking is the notable choice. A container that drives an emulator or a local adb connection has to see the host's network and its devices, and the network mode is what makes that possible without a fiddly port map. The cost is that the WebUI port is published on the host directly, with no container network boundary in front of it, which is exactly why the SecurityEntryEnabled switch exists.

The bind mount of the project directory means the container edits your configuration and logs in place, so state survives a container rebuild, and the same host directory is where you edit the scheduler settings.

The image is tagged latest, so a pull does not pin a version. For a tool that automates a live account, that is a detail worth thinking about, since the script inside the container can change without you choosing to update it.

Other projects automate the same game with different stacks

The README lists related projects, and the differences are structural rather than cosmetic. DoroHelper runs on the PC side and uses AutoHotkey, which means it works through the keyboard and mouse layer of a Windows machine rather than through adb and the accessibility tree. autoxjs-scripts targets Android and uses autojs, a JavaScript based automation runtime that runs on the device itself instead of on a host controlling it over adb.

MNA, built on MaaFramework, is the closest in spirit to NKAS in the sense that it is a task driven framework with named resources and a device abstraction, and MaaFramework is the same lineage of style that AzurLaneAutoScript belongs to. The difference is that MNA is a multi-game framework and NIKKEAutoScript is a single game implementation of a framework that came from another game.

For CDK work specifically, Nikke-CDK-Tool is listed as a separate tool for collecting and redeeming codes, which is a narrower job than the whole script.

What the list makes clear is that automation for this game is an ecosystem rather than a solved problem, and each entry makes a different bet about where the automation should live: on the host over adb, on the device with a scripting runtime, or through a general framework designed for several games at once.

GPL 3.0, three releases in September 2026, and a ban risk stated up front

The licence is GPL-3.0, and the project is explicitly a non profit open source effort that states it has no affiliation with SHIFT UP, Tencent or Level Infinite, with game assets belonging to their respective owners.

Maintenance is brisk. The last push was on 2026-10-19 and the repository is not archived, with three tagged releases in September 2026 alone: v1.1.1 on the 14th, v1.1.2 later the same day, and v1.1.3 on the 20th. The official site is at nkas.megumiss.top, and the README is available in Simplified Chinese, English and Japanese, although the language section marks English as no longer maintained.

The disclaimer section is the part every reader should not skip. It says that using automation scripts may violate the user agreement of the game, that there is a risk of accounts being restricted or banned, that the reader should assess and bear the consequences, that the project is provided for learning and technical exchange with no warranty of any kind, and that downloading and using it counts as agreeing to those terms. A non profit disclaimer also covers losses to accounts, devices or data.

That is an unusually direct statement, and it changes how the rest of the project should be read. The scheduling, the multi instance support and the automatic update are conveniences for a personal account. The tool is competent, but the terms of the service it automates are what decide whether it is a good idea for you.

Editorial conclusion

NKAS fits a player who wants the repetitive half of a gacha game's daily routine handled, who can accept a WebUI and a scheduler running on their own machine, and who is willing to read the ban risk the README states plainly. It does not fit anyone whose account matters more than their time, because automating a live service is exactly the case the project's own disclaimer covers, and it does not fit the Chinese server, which the project does not support. Before you install it, read the Installation Guide in the wiki, confirm the client you run is a supported one, and check the SecurityEntryEnabled setting in the deployment section, since remote access to the WebUI is off by default and turning it on without protection exposes a control panel for your account to the network.

Frequently asked questions

What platforms does NIKKEAutoScript support?

The PC client, real Android devices and ARM emulators, with multi screen support and a VDD virtual display on the PC side. The Chinese server is explicitly not supported, and the Docker image is published as megumiss/nkas.

Can I run NIKKEAutoScript in Docker?

Yes. The repository ships a compose file that builds the image from deploy/docker, uses host networking so the script can reach the device or emulator, and bind mounts the project directory and the local timezone into the container.

How do I enable remote access to the NIKKEAutoScript WebUI?

Remote access is controlled by the SecurityEntryEnabled setting under the deployment and WebUI section, and the protection is off by default. The browser, executable and mobile usage of that entry is described in doc/security-entry.md.

Is using NIKKEAutoScript against the game's terms of service?

The project states that using automation scripts may violate the NIKKE user agreement and that there is a risk of accounts being restricted or banned, and that the user bears all consequences. The project is offered for learning and technical exchange and provides no warranty.

What licence is NIKKEAutoScript released under?

GPL-3.0. Recent tagged releases are v1.1.1 and v1.1.2 on 2026-09-14 and v1.1.3 on 2026-09-20, with the last push on 2026-10-19.

Official sources

  1. License: GPL-3.0
  2. megumiss/NIKKEAutoScript on GitHub
  3. Project website
  4. README
  5. Releases
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.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/megumiss-nikkeautoscript.svg)](https://hysenlabs.com/projects/megumiss-nikkeautoscript)

Was this useful?