# Altus wraps WhatsApp Web in an Electron shell with themes

> Altus is an Electron desktop client for WhatsApp Web that adds dark mode, a theme customizer, native notifications, a tray icon and support for several accounts at once, shipped as a Windows installer, a macOS disk image and a Linux AppImage. It suits a user who wants a proper desktop window for WhatsApp, and it depends on WhatsApp Web continuing to work inside a wrapped browser.

**amanharwara/altus** — Desktop client for WhatsApp Web with themes, notifications and multiple account support

- Repository: https://github.com/amanharwara/altus
- Stars: 715 · Forks: 91
- Language: TypeScript
- License: GPL-3.0
- Published: 2026-10-21 · Updated: 2026-10-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/amanharwara-altus

## It is a wrapper, and the wrapper is the product

Altus is an Electron-based WhatsApp client with themes and multiple account support, available for Windows, Mac and Linux. The README is direct about the mechanism. It uses the GitHub-produced Electron framework to wrap around WhatsApp Web and add extra features to it. That single sentence sets expectations, and it is the right thing to know before adopting it. The application does not talk to the WhatsApp service through a private API, it loads the same web client a browser would load, and everything it adds sits on top of that page. The consequence is that Altus inherits WhatsApp Web's behaviour and its breakage points, so when the web client changes, the desktop client needs an update. The benefit of the same design is that Altus can do things a browser tab cannot, including native notifications that open the specific chat you clicked, a system tray icon so the app can run with no window, and an online indicator in the corner of the chats list.

## The features are the ones a browser tab cannot offer

The feature list is short and each item is a desktop capability rather than a chat feature. Multiple account support has been available since v2.0, so you can use several WhatsApp accounts at the same time. Native notification support is there for all of the platforms, and clicking a notification opens that specific chat rather than the app in general. The online indicator shows a marker at the bottom-left corner of chats that are online. Dark mode is included, and on top of that there is custom theme support, where you can write your own CSS theme for WhatsApp or use the in-built Theme Customizer to create one by picking colours. The tray icon lets you minimize the app completely and still receive notifications, which is the feature that makes it feel like a native application rather than a pinned tab. The README also notes availability for most desktop platforms, listing Windows 7 or above, Linux and macOS.

## Three platforms, three different install shapes

The installation instructions differ per platform in ways that matter. On Windows you download the .exe file from the latest release and run it through the setup wizard. If you see a Windows protected your PC error it is because Altus is not signed, and the README's advice is to click More info and then Run anyway, with the reassurance that you can verify the file is safe using something like VirusTotal. On macOS you download one of the .dmg files, the regular one for an Intel Mac and the -arm64 one for an M-series Mac, then drag the Altus icon onto Applications. On Apple silicon you also need to clear the quarantine attribute, otherwise you get an Altus is damaged and cannot be opened error, and the command is:

```console
sudo xattr -d com.apple.quarantine /Applications/Altus.app
```

On Linux you take the .AppImage, make it executable with chmod +x ./Altus-*.AppImage in the same directory, and run it by double-clicking or from a terminal. The README also points at separate tools like AppImageLauncher that make it easier to run the file and integrate it into your desktop environment.

## Electron Forge and Vite, with four build configurations

The build setup in the package manifest is worth a look because it shows how the app is put together. The main entry is .vite/build/main.js, and the build field says publish: never, which is consistent with a project that distributes through GitHub releases rather than a registry. The scripts are the standard Electron Forge set, with start, package, make and publish, and lint runs tsc --noEmit together with eslint over TypeScript and TSX files. The interesting part is the number of Vite configurations at the repository root. There is vite.main.config.ts, vite.preload.config.ts, vite.renderer.config.ts and a separate vite.whatsapp.preload.config.ts, and the presence of a dedicated configuration for the WhatsApp preload is the clearest hint at how the app is architected, since the WhatsApp web content runs in its own process and needs its own bridge. The toolchain also has forge.config.ts, tailwind.config.ts, postcss.config.js, makers/ for the platform-specific packaging, and a version.sh for the version bump.

## Solid, Kobalte and the theme machinery

The renderer side is built with Solid rather than React, which is unusual for an Electron app and explains the vite-plugin-solid dependency in the dev dependencies. The component library is Kobalte, with @kobalte/core for the primitives, @kobalte/tailwindcss and @kobalte/utils, and tailwindcss and tailwind-merge for the styling. That combination explains the theme customizer. Because the renderer is a normal web application, the CSS that WhatsApp Web ships is reachable, so a theme is a stylesheet applied on top of it, and the Theme Customizer is essentially a tool for producing that stylesheet from colour choices. The dependency list also has a few things that tell you about the features. electron-store stores information of settings, tabs and themes, electron-context-menu adds a native context menu, electron-dl handles downloads, and auto-launch registers the app to start with the system, which pairs with the tray icon. color2k and nanoid are small utilities, and zod validates data, which for a settings store that reads external theme files is a sensible choice.

## The dark theme has a named ancestor, and the fonts are chosen

The acknowledgements section names the projects that shaped the look. Dark-Whatsapp by vednoc is used as the base for the dark theme, and the README recommends that project in turn. Inter by rsms is the font used in Altus, which is a deliberate choice to make the chat client look like a native desktop application rather than a web page. electron-store by sindresorhus is used to store the settings, tabs and themes. The contributor list then shows the shape of the project, with named pull requests for specific fixes and features. Dylan McDougall added a confirmation dialog on close, Marcelo Zapatta fixed the Linux tray icon support for an earlier issue, and three contributors added Italian, Spanish and Portuguese translations. The screenshots in the README show a first start screen, the default theme and a theme called Dark Plus, which gives a sense of how far the customisation goes. The project is GPL-3.0 licensed, the version is 5.8.1, the release before that is 5.8.0 in May 2026, and the last push was on 2026-07-18.

## Conclusion

Adopt Altus if you want WhatsApp in a real desktop window with native notifications, a tray icon, dark mode and your own CSS theme, and you are willing to install an unsigned build. Do not adopt it for a shared or managed workstation where an unsigned binary is a policy problem, and do not expect it to outlive a WhatsApp Web change without an update. Verify first that the download you take matches the checks for your platform, that the unquarantine step on Apple silicon is acceptable in your environment, and that the version you install is one you trust, since the project itself recommends verifying the file with an antivirus tool.

## FAQ

### What does Altus add to WhatsApp Web?

It uses Electron to wrap around WhatsApp Web and add features, including multiple account support since v2.0, native notifications on all platforms that open the specific chat, an online indicator in the chats list, dark mode, custom CSS theme support with a built in Theme Customizer, and a system tray icon so the app can run with no window.

### How do I install Altus on macOS with an Apple silicon chip?

Download the -arm64.dmg file from the latest release, open it and drag the Altus icon onto Applications. On an M-series Mac you then need to run sudo xattr -d com.apple.quarantine /Applications/Altus.app, otherwise you get an Altus is damaged and cannot be opened error.

### Why does Windows warn me about Altus?

The README says the warning appears because Altus is not signed, and to continue you click More info and then Run anyway. It also suggests verifying the file is safe with something like VirusTotal or another antivirus tool, and the Linux install similarly asks you to make the AppImage executable with chmod +x before running it.

### What framework and UI library does Altus use?

The renderer is built with Solid, with the vite-plugin-solid dev dependency, and uses Kobalte components with Tailwind CSS and tailwind-merge for styling. The build uses Electron Forge with the Vite plugin and four separate Vite configurations, including a dedicated one for the WhatsApp preload process.

## Sources

- [amanharwara/altus on GitHub](https://github.com/amanharwara/altus)
- [Issues](https://github.com/amanharwara/altus/issues)
- [License: GPL-3.0](https://github.com/amanharwara/altus/blob/master/LICENSE)
- [README](https://github.com/amanharwara/altus/blob/master/README.md)
- [Releases](https://github.com/amanharwara/altus/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/amanharwara-altus
