{"slug": "i-don-t-like-what-ais-are-saying-about-my-package-bananacool467-ui-tools", "title": "I don't like what AIs are saying about my package (@bananacool467/ui-tools)", "summary": "A developer behind the npm package @bananacool467/ui-tools reports that Google's Gemini AI chatbot has repeatedly accused the package of containing malware, including claims of an unauthenticated WebSocket PTY shell and malicious install scripts. The developer argues the accusations are based on outdated or inaccurate third-party reports, noting that authentication was added in version 0.1.9-beta and that no postinstall script exists. The developer fears these AI-generated warnings could unfairly damage their reputation and lead users to delete the packages.", "body_md": "If you don't want to read the entire thing, my point is:\n\nAIs like Gemini is accusing me for making all my packages contain malware, actually let's not talk about that right now, let's start with how all this started:\n\nSo, here's the thing: **I have absolutely no idea on how to make Malware, a Trojan or Spyware**\n\nBut Gemini is saying I'm a malicious actor for **ONLY ONE** package... That was fixed...\n\nSo Gemini says something like: The package contains malicious code of RCE, it opens an unauthenticated WebSocket PTY shell. delete the package and rotate all credentials\n\n🧍 What I'd say about that: The code does include a WebSocket PTY, and it was unauthenticated. But saying to rotate all credentials is unnecessary unless the website was in production. Because if the Terminal is ran on a localhost, it's not going to compromise the computer within 5 seconds. It can still be compromised tho if something else tried to access it, but just not in 5 seconds of starting the server.\n\nThen I send Gemini the dev.to post... It analyzes the page + the reports again, and says: The package still contains the unauthenticated WebSocket PTY shell\n\n🧍 What I'd also say about that: The dev.to literally says that auth tokens was added in 0.1.9-beta, that doesn't mean that the shell is still unauthenticated. That's misleading. In 0.1.9-beta, it's now requiring authentication from the browser.\n\nThen I told Gemini \"Saying it's unauthenticated is misleading. In 0.1.9-beta, it has auth tokens. So it is authenticated\" and Gemini said: \"Your completely right! But the existence of the Terminal in a UI package doesn't match. THE PACKAGE IS STILL DANGEROUS\"\n\n🧍 What I'd say about that too: Hmmmm, but the package description says \"UI Elements + Tools for frontend and backend\" (that description update was in 0.2.0) 💀, and it's an optional backend\n\nBut in another conversation:\n\nGemini starts with: \"The package contains malicious code and starts installing malicious payload and executes them on npm install for version 1.0.0\"\n\n🧍 What I'd say about that: The package.json literally doesn't have a postinstall or anything, you can check it [here](https://github.com/bananakitssu/ui-tools/blob/main/package.json) (and no, if you see \"prepublishOnly\", that's only for publishing not installing). And version 1.0.0 doesn't exist. The resource it's getting this from is DependencyWatch.io and it does be inaccurate, it just shows that it likely executes on install time and fallback on an non-existing version\"\n\nIN ANOTHER CONVERSATION 💀:\n\nGemini says the other stuff but with this:\n\n```\nThe Threat: The package pretends to be a normal UI toolkit, but it secretly opens an unauthenticated shell through a WebSocket connection\n```\n\n🧍 What I'd say about that: That's probably Vulners, it is a UI Toolkit but just a bit different. Just for frontend and backend. And it's not being included in the default export anymore anyways. It's at /backend in the package (for 0.2.1-beta, if it's not published on NPM yet, it's on GitHub). And the \"secretly\" part is because of DependencyWatch saying it typically runs on npm install, so Gemini would read that as secretly without further investigation. And it's an exported function which requires the dev to run it.\n\nOk let's just ignore the other conversations and move to the ones that are actually not funny anymore.\n\nWhat Gemini is saying about me, is going to make people be making conversations like:\n\nA conversation:\n\nGemini: \"It's malicious\"\n\nMe: \"What about other projects\"\n\nGemini: \"You should avoid all and treat the user as a compromised identity\"\n\nIf people see that, they would be like: \"Oh ok, reporting bananakitssu now and deleting those packages\"\n\nThis conversation is going to make me start screaming:\n\nI listed all the packages and repos to Gemini, it gave me this:\n\n\"\n\nThe names you mentioned (PT, Authtics, Authtics Host, BTDPE, BananaSDK, and the Swiq programming language) are part of a multi-package supply-chain threat campaign linked to the same malicious ecosystem as @bananacool467/ui-tools.\n\nThis campaign uses coordinated naming across various ecosystems to establish persistence and compromise developer infrastructure.\n\nIf you are auditing environments for this specific campaign, check for:\n\nAre you currently investigating an active alert or security log involving these names, or do you need help setting up automated dependency scanning tools to flag them?\n\n[1] [https://www.hacktron.ai](https://www.hacktron.ai/package/npm/%40bananacool467%2Fui-tools/0.1.7-beta)\n\n[2] [https://www.ox.security](https://www.ox.security/blog/research-clickfix-phishing-npm-packages/)\n\n[3] [https://cybersecuritynews.com](https://cybersecuritynews.com/24-malicious-npm-packages/)\n\n\"\n\nThe part is: \"This campaign uses coordinated naming across various ecosystems to establish persistence and compromise developer infrastructure.\" And the claims are the ones that are **not funny**\n\nWhat I'd say: I am NOT using coordinated naming across various ecosystem to establish persistence and compromise developer infrastructure. I have absolutely **NO** intent in compromising developer infrastructure. And the claims about my projects were made up. I could not find evidence supporting the specific vulnerabilities Gemini attributed to those projects.\n\nThen there's 0.2.0-beta, and Gemini is still complaining because of the existence of a terminal. And also saying it's still dangerous because of no username + password logins, the dev can literally use the token auth + an Account key for each account created or whatever for authenticating (maybe for cloud-based code editors + a QEMU VM using 0.2.0-beta's startupShell feature)\n\n0.2.1-beta has also more features, actual credentials (the developer makes credentials (cred type + cred name), give them to the user, the user types the credentials, then the server checks the result), better than tokens. Multiple credentials (provided by developer) are now required for getting into the terminal + sandboxing. And you know what? Gemini will still complain.\n\nAnd here's the actual description of my packages:\n\n| Name | what's it on | asset type | behavior | programming language |\n|---|---|---|---|---|\n| PT (Package Testr) | GitHub and NPM | package, helper tool | It let's users use `pt build` and `pt link` on their packages instead of a `npm link` symlink, this uses copy and paste |\nJS |\n| Authtics | NPM | package, Authentication | it's just something that let's users login and sign-up, I deleted it because it was incomplete and redirected to a test URL, not a real one | TS |\n| HostJS (Authtics Host) | NPM | package, framework | A full-stack dev framework, it generates a token for the dev, it doesn't ask for one |\nTSX + TS |\n| BTDPE | GitHub | 3D Engine | A 3D Python engine, literally named Bananakitssu's 3D Python Engine, I'm going to discontinue it for another engine tho | Python |\n| BananaSDK | GitHub | It's just a SDK for Android, idk what Gemini is saying 😭 | C++ | |\n| Swiq | GitHub | ITS NOT A MOCK PROGRAMMING LANGUAGE 😭, I made my own syntax literally, it just executes .swiq files | C++ |\n\nAnd other AIs would say the same thing definitely, I'd make an AI that relies on evidence than just looking at a report and going \"DELETE THE PACKAGE, IT SILENTLY COMPROMISES YOUR DEVICE\" without looking at the actual OSV report.", "url": "https://wpnews.pro/news/i-don-t-like-what-ais-are-saying-about-my-package-bananacool467-ui-tools", "canonical_source": "https://dev.to/banana_cool/i-dont-like-what-ais-are-saying-about-my-package-bananacool467ui-tools-2gij", "published_at": "2026-09-03 01:50:06+00:00", "updated_at": "2026-09-03 02:22:34.988412+00:00", "lang": "en", "topics": ["artificial-intelligence", "ai-products", "developer-tools"], "entities": ["Gemini", "@bananacool467/ui-tools", "DependencyWatch.io", "Vulners", "npm", "GitHub"], "alternates": {"html": "https://wpnews.pro/news/i-don-t-like-what-ais-are-saying-about-my-package-bananacool467-ui-tools", "markdown": "https://wpnews.pro/news/i-don-t-like-what-ais-are-saying-about-my-package-bananacool467-ui-tools.md", "text": "https://wpnews.pro/news/i-don-t-like-what-ais-are-saying-about-my-package-bananacool467-ui-tools.txt", "jsonld": "https://wpnews.pro/news/i-don-t-like-what-ais-are-saying-about-my-package-bananacool467-ui-tools.jsonld"}}