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

unuko

v0.1.10

Published

5G Core network virtualization and simulation control CLI

Readme

Unuko 5G Core & RSP Simulation Suite 🚀

Unuko is a comprehensive simulation suite for 5G Core (Open5GS) and Remote SIM Provisioning (RSP) that allows emulation of real 5G networks and eSIM profile provisioning processes in a 100% automated and interactive way.

The project orchestrates a virtual machine using Lima VM that hosts the 5G Core and the UERANSIM simulator, also offering an interactive web Dashboard and simulated SM-DP+ servers supporting both Consumer (SGP.22) and IoT (SGP.32) architectures.


🛠️ Prerequisites

Before you begin, ensure you have the following installed on your Mac:

  1. Node.js (v20 or higher recommended)
  2. Lima VM (for Linux virtualization and running the 5G Core):
    brew install lima

🚀 Quick Start Guide (Global Usage)

1. Installing the CLI

Install the Unuko CLI globally from NPM:

npm install -g unuko

(For local development/testing, you can install it by linking the repository's CLI package: npm install -g ./apps/sim-cli)

2. Provision and Start the 5G Network (Lima VM)

To create, download the Ubuntu image, install dependencies, and automatically start the 5G network services inside the VM:

unuko create core5g

(Note: The first boot will take a few minutes as it automatically downloads and builds UERANSIM and Open5GS).

For subsequent starts:

unuko start core5g

3. Start the Simulation Dashboard

To launch Unuko's interactive services (Frontend, API Backend, and SM-DP+ Mock):

unuko dashboard start

Local addresses and access endpoints:

4. Stop the Environment

When you're done working and want to free up RAM on your Mac:

# Stops the interactive dashboard
unuko dashboard stop

# Stops the Lima core5g virtual machine
unuko stop core5g

💻 CLI Commands (unuko)

The unuko tool exposes simple commands to orchestrate the simulation network:

unuko <command> <network> [options]
unuko dashboard start|stop
unuko list [options]

General Commands:

  • unuko list: Lists all virtualized networks (Lima VM instances) on your Mac.
  • unuko dashboard start: Starts the simulation backend, SM-DP+ mock, and statically serves the web frontend.
  • unuko dashboard stop: Cleanly shuts down all dashboard processes, freeing up ports.

Environment Commands (network such as core5g):

  • unuko create core5g: Cleanly creates, configures, and installs a new virtualized instance.
  • unuko start core5g: Turns on the VM and starts the 5GS Core services and database.
  • unuko stop core5g: Shuts down the VM to free up Mac resources.
  • unuko restart core5g: Restarts all 5G Core services inside the VM without powering off the virtual machine.
  • unuko status core5g: Shows an interactive health panel displaying VM status and internal services (mongod, open5gs, etc.).
  • unuko devices core5g: Lists the gNodeB and UEs simulated by UERANSIM.
  • unuko logs core5g <device-id>: Follows real-time logs of a specific simulated device (e.g., gnb-0x000000010 or imsi-999700000000001).
  • unuko destroy core5g: Stops and permanently removes the virtual machine and its disks from your Mac.

Note: Append --format=json to any command above to get structured, programmable output.


🏗️ Architecture and Project Structure

The repository is organized as a monorepo managed by Turborepo and pnpm:

├── apps/
│   ├── sim-backend/     # Fastify server orchestrating the simulation, exposing APIs, and persistence.
│   ├── sim-frontend/    # Interactive React / Vite dashboard displaying the Core and eSIMs.
│   ├── sim-cli/         # Unuko CLI entry point and asset bundling scripts.
│   ├── smdp-mockv2/     # SM-DP+ mock server compatible with GSMA SGP.22 (Consumer) and SGP.32 (IoT).
│   └── smdp-mock/       # Legacy SM-DP+ mock server (basic SGP.22).
├── packages/
│   ├── core/            # Business rules for the digital twin, workflow engines, and transitions.
│   ├── cli/             # Shared logic to manage the Lima VM using limactl commands.
│   ├── ueransim-lib/    # Control library and configuration file generator for UERANSIM.
│   └── adapter-*/       # Communication adapters (HTTP, MongoDB, PKCS11, SoftHSM, etc.).
└── lima.yaml            # IaC configuration for automated provisioning of the core5g VM.

🔧 Development Guide (Repository Contributors)

If you want to modify code, add adapters, or extend simulation workflows:

1. Install Dependencies

Use pnpm to install dependencies in the workspace:

pnpm install

2. Run in Development Mode

To spin up all microservices live with Hot Module Reload (HMR):

pnpm dev

This starts the frontend on port 5173, the backend on 3000, and the SM-DP+ Mock server on 8080 in watch mode.

3. Run Tests

The suite has a comprehensive automated test suite for the backend, core, and frontend:

pnpm test

4. Build and Package

To prepare the CLI with static bundles before publishing to NPM or testing locally:

# Compile all packages and apps into distribution JS
pnpm build

# Copy backend, frontend, and config bundles to sim-cli/assets
pnpm --filter unuko run copy-assets

# Install the CLI globally from your local directory
npm install -g ./apps/sim-cli

🛡️ State and Log Storage

To avoid cluttering your development workspace and ensure the global execution is portable and free of permissions errors:

  • In Development (pnpm dev), dynamic session data and logs are stored locally in the project's scratch/ directory.
  • In Production (global execution via unuko dashboard start), all configuration files, persistent database state (e.g., current environment), and log files are created and managed under the user's home directory: ~/.unuko/ and ~/.unuko/data/