Open-source project
OhMyGuus/BetterCrewLink avatar
OhMyGuus/BetterCrewLink

BetterCrewLink keeps Among Us proximity voice chat working after its upstream was discontinued

Free, open, Among Us Proximity Chat

1,108 stars186 forksTypeScriptGPL-3.0

At a glance

What is it?
BetterCrewLink is a GPL-3.0 licensed Electron and TypeScript fork of CrewLink, the open source proximity voice chat overlay for Among Us, and it exists because the original project was discontinued. The application reads game memory, draws an overlay and hooks the keyboard, and the project ships its own voice server, with a README that warns at the top that its own documentation is out of date.
Who is it for?
BetterCrewLink fits an Among Us player on a platform the original CrewLink no longer supports, who wants proximity voice chat and is willing to point the client at a third-party voice server. It does not fit someone who needs documentation they can trust, because the README itself says the documentation and the wiki are outdated pending a rework.
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 last received commits 43 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

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

Editorial analysis

The upstream project was discontinued, so the fork is the working path

BetterCrewLink is described as a CrewLink fork with extra features and better support, and the reason it exists is stated plainly in the notes. The original, normal CrewLink is now discontinued, which means it will never be updated and will never work again, so BetterCrewLink is the only way to make your CrewLink work.

That is the entire strategic context of the project, and it explains a lot of the decisions. CrewLink was an open source proximity voice chat overlay for Among Us, and when it was discontinued the community needed a maintained version, so someone forked it and kept shipping.

The fork relationship also comes with strict boundaries, and the README is careful about them. This is an unofficial fork of CrewLink, and for any problem, question, issue or suggestion with BetterCrewLink you are directed to this project's Discord, GitHub or the developer, with an explicit instruction not to report problems to the official Discord or GitHub of normal and official CrewLink, as they will not help you. The project states it is not affiliated with CrewLink and is just a modified, better version of the original, and that help with CrewLink itself will not be offered here, only help if you are using BetterCrewLink.

For a user, that boundary is practical rather than legalistic. There is one support channel, it is this project's, and the fork carries its own identity, its own releases and its own community.

Memory reading, an overlay window and a keyboard hook

The mechanism is visible in the dependency list, and it is why the fork can keep working where the original cannot.

Three dependencies stand out because they are the project's own forks pinned to specific tags. electron-overlay-window points at a fork in the maintainer's own repository at v2.0.5, memoryjs points at another at v0.0.10, and node-keyboard-watcher points at a third at v1.0.6. The overlay library draws the proximity map, the memory library reads the game state to know where the other crewmates are, and the keyboard watcher provides the push-to-talk input.

Around those sit the standard Electron pieces. electron-updater handles the update channel, electron-store persists settings, electron-window-state remembers window positions, and electron-builder produces the installers. The graphics side uses Jimp for the image handling and the color package for the colour work, and cross-spawn and minimist handle process launching and argument parsing.

The consequence of this design is worth stating for anyone evaluating it. A proximity voice chat overlay has to know where the players are, and the way to know that in Among Us is to read the game's memory, which means the tool is version-sensitive by nature. That is why the README's table of contents includes a section on Supported Versions of Among Us, and it is why the fork, not the extension of an extension, is the thing that has to be re-cut each time the game changes.

The voice server does the routing, and the project runs it

The architecture has a server side, and this is the part that decides whether the client is useful.

The README says to get the most of BetterCrewLink you should use the Voice Server, and gives the address as a short link. The badges at the top of the file point at a status page hosted on Netlify, with a badge for the voice server status showing offline or online, and another for the uptime of the endpoint, pulling its data from a status repository.

That uptime badge is a small but meaningful signal about the project's operating model. A proximity voice chat tool has to move audio between players, and the straightforward way to do that in a game with no mod API is to route it through a server the tool controls. So the client is one half and the server is the other, and the server's availability is a dependency for every user of the client.

The funding section reflects that. The README says all donations will be used for the Apple Developer License and Extra Servers, and the badges link PayPal and Ko-fi for that purpose, alongside a separate PayPal link to donate to Ottomated for the official CrewLink. The iOS and macOS support has an Apple Developer License in it, which is a concrete, non-obvious cost of supporting that platform.

For an adopter, the practical point is that the client is free and open, but the voice server is a hosted service with a status page. If you want self-hosting, the README does not document it, and that is a question for the project's Discord rather than something you can assume.

The build is electron-vite, and the dist scripts are per target

The developer section of the README is organised around prerequisites, setup, build and then a set of development scripts, and the package.json shows the pipeline.

json
"dev": "electron-vite dev",
"build": "electron-vite build",
"dist": "electron-vite build && electron-builder --win --x64 --ia32",
"dist:linux": "electron-vite build && electron-builder --linux --x64",
"typecheck": "tsc --noEmit",
"lint": "eslint src",
"format": "prettier --write src"

The build is electron-vite for the application and electron-builder for the packaging, and the electron-builder.yml at the repository root is the configuration for the installers. The dist scripts are split by target, with separate ones for 32-bit and 64-bit Windows, for Linux, and publish variants that push straight to the platform's store.

The remaining scripts are the quality gates. There is a typecheck with tsc --noEmit, a lint over the src directory, a format script and a format check, both using prettier over src, and a rebuild:native script that calls electron-builder install-app-deps for the native modules. There is also a verify:esm script that runs node scripts/verify-esm.mjs, which is a check that the bundled output really is ESM, which is the kind of thing that goes wrong silently after an Electron upgrade.

The other top-level files describe the project beyond the code. There is a CHANGELOG.md, a CONTRIBUTING.md, a CREDITS.md, a SECURITY.md, an electron.vite.config.ts, an eslint.config.mjs, a .prettierrc.yaml, a .npmrc, a scripts/ directory, a static/ directory for the web assets and a resources/ directory.

The README warns you that the README is out of date

The first thing in the file is a warning, and it is unusually direct. The README is outdated meaning some information contained here is not updated, the same thing goes for the wiki, and this is happening because they are planning to make some huge rework on the README, so be careful with some information when reading, maybe it is outdated.

That is an unusual thing for a project to put at the top of its own documentation, and it is worth taking at face value rather than working around. A reader who follows the installation instructions from this file may find a step that no longer matches the current build, and a reader who treats the wiki as authoritative may find the same.

The table of contents shows how the document is organised and which parts are likely to be in flux. There is a section on the project itself, a section on BetterCrewLink extra features and bug fixes, a section on app availability, a section on supported versions of Among Us, then the installation section broken out by platform, with entries for Windows, Linux, Android, Chrome OS, BlueStacks, iOS and macOS, and Console, and finally the development section with prerequisites, setup and build.

The platform list is the useful part of that structure, because the availability of the app is the fact a prospective user actually needs, and it is enumerated explicitly rather than implied. The supported versions section is the other one, for the reason described above.

So the honest way to use this repository is to treat the platform list and the version list as the current information, and the prose as a draft that will change.

One community, one release train, and a nightly branch

The support and community structure is simple and worth mapping out, because a fork of a discontinued project has an unusual shape.

The Discord server is the primary channel, and the README is emphatic that it is the right place for problems with this fork and the wrong place to take problems about CrewLink itself. The issue tracker on GitHub carries both a Report Bug and a Request Feature link, and the repository has a SECURITY.md for disclosure and a CONTRIBUTING.md for patches. Translations are managed on Crowdin, with a badge showing 41 translators and a second badge for the localised state, which is a substantial translation effort for a project of this size.

The release cadence is quick. The recent releases are v3.2.2 on 2026-09-08, v3.2.1 on 2026-09-07 and v3.2.0 on 2026-09-06, three releases in three days, and the package version in package.json matches at 3.2.2.

The default branch is nightly, which is the answer to a question a user might otherwise have to guess at. The project ships continuous builds from that branch and tagged releases alongside them, which is a sensible arrangement for something that has to react to a game update: the tagged release is what you install, and the nightly branch is where the work lands between tags.

The licence is GPL-3.0-or-later, which the package.json records and the README badge matches, with the LICENSE file in the tree. That is a licensing fact rather than legal advice, and for a fork, it is the arrangement that lets the community keep the code alive.

Editorial conclusion

BetterCrewLink fits an Among Us player on a platform the original CrewLink no longer supports, who wants proximity voice chat and is willing to point the client at a third-party voice server. It does not fit someone who needs documentation they can trust, because the README itself says the documentation and the wiki are outdated pending a rework. Before installing, read the Supported Versions of Among Us section rather than the general instructions, and check the voice server status page, since the routing depends on a service the project operates.

Frequently asked questions

What is BetterCrewLink and why does it exist?

It is a fork of CrewLink, the open source proximity voice chat tool for Among Us, with extra features and better support. The original CrewLink was discontinued and will never be updated or work again, so the README states that BetterCrewLink is the only way to make CrewLink work.

How does BetterCrewLink work?

The dependency list shows the mechanism. It uses a fork of memoryjs to read the game's state, a fork of electron-overlay-window to draw the proximity map, and a fork of node-keyboard-watcher for push-to-talk, with the rest built on standard Electron components such as electron-updater, electron-store and electron-builder.

Do I need a server to use BetterCrewLink?

The README says to use the Voice Server to get the most of BetterCrewLink, and links a status page showing the voice server's up and down state. The client is free, but the routing depends on a service the project operates, and the README does not document a self-hosted option.

Can I trust the BetterCrewLink README?

The README opens with a warning that it and the wiki are outdated, because a large rework of the documentation is planned. Treat the platform availability list and the supported versions of Among Us section as the current information, and check the Discord for anything the documentation has not caught up with.

How do I build BetterCrewLink from source?

The project uses electron-vite for the application and electron-builder for packaging, with electron-builder.yml at the repository root. The package scripts include dev, build, dist for 32-bit and 64-bit Windows, a Linux dist target, typecheck with tsc --noEmit, lint with eslint over src, and a verify:esm script that runs node scripts/verify-esm.mjs.

Official sources

  1. Issues
  2. License: GPL-3.0
  3. OhMyGuus/BetterCrewLink on GitHub
  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/ohmyguus-bettercrewlink.svg)](https://hysenlabs.com/projects/ohmyguus-bettercrewlink)

Was this useful?