npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

deskify-cli

v1.0.5

Published

An interactive, zero-dependency CLI tool to turn web pages into Linux desktop applications using Nativefier.

Readme

Deskify

An ambitious, interactive, and zero-dependency CLI tool designed to effortlessly convert any web page into a native-feeling Linux desktop application using Electron (via Nativefier) in a single command.

      _           _   _  __       
   __| | ___  ___| |_( )/ _|_   _ 
  / _` |/ _ \/ __| |/ /| |_| | | |
 | (_| |  __/\__ \    <|  _| |_| |
  \__,_|\___||___/_|\_\\_|  \__, |
                            |___/ 
   Web to Linux Desktop App Packager

The Problem

Running websites as desktop applications in Linux is fantastic for productivity, but doing it manually via Electron or Nativefier involves a tedious and repetitive sequence:

  1. Compiling: Running complex CLI arguments for resolution, persisting sessions, and restricting domains.
  2. Permissions Fix: Electron applications on modern Linux distros fail to start unless the chrome-sandbox file is owned by root and given 4755 setuid permissions (due to kernel user-namespace changes).
  3. Shortcut Integration: Manually writing .desktop launch files inside ~/.local/share/applications/ and resolving icons.
  4. The Dash Icon Bug (StartupWMClass): Nativefier appends a dynamic 6-character hash (e.g. nextcloud-nativefier-a8e93f) to the Electron window class (WM_CLASS) on compile. If your .desktop launcher has an outdated hash, your launcher icon breaks in the Dash/Dock (showing a generic gear icon or a duplicate unpinned icon).

Deskify solves all of these pains automatically in one prompt-driven wizard.


Features

  • Interactive Wizard: No command arguments to memorize. Simply type deskify and follow the beautiful, colorized prompts.
  • Smart Defaults: Enter any URL (e.g., https://panggon.danyakmallun.dev) and Deskify will automatically extract the app name, domain, and set up domain boundary regexes (.*panggon\.danyakmallun\.dev.*) so links inside the app stay inside, and outside links open in your default browser.
  • Favicon Auto-Downloader: Automatically downloads and configures the highest quality favicon from Google APIs to use as the app launcher icon.
  • Auto-Sandbox Permission Fix: Automatically runs sudo chown root:root and sudo chmod 4755 on chrome-sandbox inside the interactive terminal, ensuring the app boots successfully.
  • Dynamic StartupWMClass Tracking: Automatically parses the generated package.json inside the Electron source code, extracts the unique Nativefier build hash, and writes the correct StartupWMClass to ensure application launcher matching in your system app menu and dock.
  • App Directory Organization: Moves the generated packages out of your home directory and places them inside a clean ~/Apps folder (or custom directory).
  • Zero-Dependency: Written purely in native Node.js API. No node_modules required to download or run.

Quick Start

1. Requirements

Ensure you have Node.js and NPM installed on your Linux system. Deskify checks for these on boot. On Ubuntu/Debian/Mint:

sudo apt update && sudo apt install -y nodejs npm

2. Global Installation (Official Release)

Install it globally directly from npmjs.com:

npm install -g deskify-cli

Once installed, simply run it in any directory:

deskify

Note: If your system throws a "command not found: deskify" error, you can also run it instantly via npx:

npx deskify-cli

3. Local Installation / Development

If you want to run or build the project locally from the cloned repository:

# Clone the repository
git clone https://github.com/<your-username>/deskify.git
cd deskify

# Run locally
node deskify.js

# Or link/install your local build globally
npm install -g .

How It Works

Deskify automates the following sequence:

  1. Pre-flight Checks: Verifies Node.js, NPM, and system dependencies are available.
  2. Icon Extraction: Automatically crawls or queries high-resolution favicons for your application.
  3. Compilation: Packages the web app into an Electron wrapper via Nativefier.
  4. App Organization: Places the package folders inside a clean ~/Apps installation directory.
  5. StartupWMClass Mapping: Parses the package details to map window instances correctly to the taskbar icon.
  6. Sandbox Configuration: Sets the appropriate root permissions on the Chrome sandbox binary.
  7. Shortcut Registration: Creates the launcher database entry (.desktop) and updates GNOME shortcuts.

License

This project is licensed under the MIT License - see the LICENSE file for details.