Skip to main content
UniRTM Logo

UniRTM

GitHub GitHub Workflow Status Continuous Integration Continuous Delivery

Dev tools, env vars, and tasks in one CLI with built-in security.
Inspired by and paying tribute to mise.

Getting StartedDocumentationDev ToolsEnvironmentsTasks


[!TIP] UniRTM's powerful task runner empowers you to orchestrate deep security scans (like Trivy & Syft) perfectly alongside your environments.

What is it?

UniRTM (Universal Runtime Manager) prepares your development environment before each command runs. It keeps project tools, environment variables, and tasks in one .unirtm.toml file so new shells, checkouts, and CI jobs all start from the exact same setup.

  • Install and switch between dev tools like node, python, go, and more.
  • Load environment variables per project directory, including values from .env files and secure secret managers like SOPS.
  • Define and run tasks for building, testing, linting, and deploying projects.

While taking heavy inspiration from the brilliant tool mise (dev tools, env vars, and tasks in one CLI), UniRTM introduces several distinct architectural choices:

  • Pure Go Engine: Extreme parallel downloading capabilities leveraging goroutines.
  • Lightweight Native Shims: Replaces sluggish bash shims with a unified, high-performance Go router. This prevents $PATH explosion while maintaining near-native execution speeds.
  • Unifying Security via Tasks: While keeping the core engine minimal, UniRTM allows you to perfectly integrate external security scanners like Trivy or Syft into your reproducible task workflows.
  • Absolute Locking: Generates a unirtm.lock file that pins the exact checksums and versions of your downloaded tools for reproducible environments.

Supported Platforms

Fully supported on macOS (Apple Silicon / Intel), Linux (glibc & musl/Alpine), and Windows.

Demo

The following demo shows how to use UniRTM to install a specific version of go globally. Notice the speed and the built-in vulnerability scanning!

demo

Quickstart

Install UniRTM

See Getting started for more options.

Via Script (Linux/macOS):

$ curl -sL https://raw.githubusercontent.com/snowdreamtech/UniRTM/main/install.sh | bash
$ ~/.local/bin/unirtm --version
UniRTM v0.1.0 macos-arm64 (2026-05-28)

Via NPM:

npm install -g @snowdreamtech/unirtm

Via PyPI:

pip install snowdreamtech-unirtm

Hook UniRTM into your shell (pick the right one for your shell):

# note this assumes unirtm is located at ~/.local/bin/unirtm
echo 'eval "$(~/.local/bin/unirtm env)"' >> ~/.bashrc
echo 'eval "$(~/.local/bin/unirtm env)"' >> ~/.zshrc
echo '~/.local/bin/unirtm env | source' >> ~/.config/fish/config.fish

Execute commands with specific tools

$ unirtm exec node@20 -- node -v
unirtm node@20.x.x ✓ installed
v20.x.x

Install tools

$ unirtm use --global node@22 go@1.22
$ node -v
v22.x.x
$ go version
go version go1.22.x macos/arm64

See dev tools for more examples.

Manage environment variables

# .unirtm.toml
[env]
SOME_VAR = "foo"
$ unirtm set SOME_VAR=bar
$ echo $SOME_VAR
bar

Note that UniRTM can also load .env files.

Run tasks

# .unirtm.toml
[tasks.build]
description = "build the project"
run = "echo building..."
$ unirtm run build
building...

See tasks for more information.

Example UniRTM project

Here is a combined example to give you an idea of how you can use UniRTM to manage your a project's tools, environment, and tasks with security baked in.

# .unirtm.toml
[tools]
terraform = "1"
aws-cli = "2"
node = "20"

[env]
TF_WORKSPACE = "development"
AWS_REGION = "us-west-2"
NODE_ENV = "production"

[tasks.plan]
description = "Run terraform plan with configured workspace"
run = """
terraform init
terraform workspace select $TF_WORKSPACE
terraform plan
"""

[tasks.validate]
description = "Validate AWS credentials and terraform config"
run = """
aws sts get-caller-identity
terraform validate
"""

[tasks.audit]
description = "Run deep security scans using Trivy and Gitleaks"
run = """
trivy fs --format cyclonedx --output sbom.json .
gitleaks detect --source . --no-banner
"""

[tasks.deploy]
description = "Deploy infrastructure after validation and audit"
depends = ["validate", "audit", "plan"]
run = "terraform apply -auto-approve"

Run it with:

unirtm install # install all required tools specified in .unirtm.toml
unirtm run deploy # automatically runs validation and audit dependencies first

Full Documentation

See snowdreamtech.github.io/UniRTM

Architecture & Environments Comparison

We believe in making deliberate architectural choices to support modern enterprise environments. Here is how UniRTM compares to ecosystem pioneers like mise and asdf across multiple dimensions:

1. Core Architecture & Execution

Dimension asdf (Bash) mise (Rust) UniRTM (Go) Why it matters
Execution Path Bash Shims Rust Shims / PATH Lightweight Go Shims Uses a single compiled Go binary as a router to perfectly solve the performance issues of Bash shims and ensure cross-platform compatibility.
Concurrency Model None OS Threads Goroutines Go's ultra-lightweight goroutines provide extreme parallel throughput during massive toolchain downloads.
Config Hierarchy .tool-versions mise.toml .unirtm.toml Standardized, unified TOML configs across your entire project.

2. Environment & Context

Feature asdf mise UniRTM Details
Scope Management Tools only Tools + Env + Tasks Tools + Env + Tasks Seamlessly manage environments contextually per directory.
.env Parsing Native Native Reads traditional .env files automatically without external loaders.
Secrets Engine Plugins / Integrations Native SOPS Treats secure secret management as a first-class citizen using native SOPS integration.

3. Cross-Platform & Resilience

Feature asdf mise UniRTM Details
Windows Support WSL/MSYS Dependent Supported Native (Ground-up) Engineered natively for a flawless Windows and Cygdrive experience.
Alpine/Musl Partial Supported Hardcore Supported Runs flawlessly in minimal musl/Alpine containers without glibc overhead.
Reproducibility Versions mise.lock (Supported) unirtm.lock (Default) Strictly pins exact checksums to ensure reproducible team environments.

4. Ecosystem Affinity & Minimalism

Feature asdf mise UniRTM Details
Hybrid Path Resolution Partial Deeply Supported Dedicated optimizations for translating paths seamlessly across Windows Git Bash / Cygdrive environments.
External Dependencies Bash Ecosystem Minimal Absolute Zero Core plugins are compiled directly into the binary. Drop it into any minimal OS and it runs out of the box.
Shim Overhead Standard (Bash script) Optimized (Rust binary) Lightning Fast (Go) All tools symlink back to the unirtm engine for instant routing, perfectly preventing $PATH explosion.
DevOps Integration Custom Scripts Good Native Synergy Go-based architecture naturally aligns with cloud-native infrastructure, making custom integrations frictionless.

Special Thanks

Inspired by the architecture and developer experience pioneered by mise.

License

MIT License. Copyright (c) 2026-present SnowdreamTech Inc.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

snowdreamtech_unirtm-0.30.1-py3-none-win_arm64.whl (29.3 MB view details)

Uploaded Python 3Windows ARM64

snowdreamtech_unirtm-0.30.1-py3-none-win_amd64.whl (30.9 MB view details)

Uploaded Python 3Windows x86-64

snowdreamtech_unirtm-0.30.1-py3-none-win32.whl (30.4 MB view details)

Uploaded Python 3Windows x86

snowdreamtech_unirtm-0.30.1-py3-none-macosx_11_0_arm64.whl (14.6 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

snowdreamtech_unirtm-0.30.1-py3-none-macosx_10_9_x86_64.whl (15.7 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

Details for the file snowdreamtech_unirtm-0.30.1-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.30.1-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 18dccab0fd9151bf7eb10ce0360893cc1a7010320177e89ab06b48c81b667ddb
MD5 3695b28896d51967dee59aa4673273d3
BLAKE2b-256 fd09ad52eccc2fad26788b775e013232d420592efeb8fb95d46409acf380b083

See more details on using hashes here.

File details

Details for the file snowdreamtech_unirtm-0.30.1-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.30.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 9384d69f0ad738c9ff72cbb2d5f421423701bc6fb20bbb92e9c65f99fe313515
MD5 10d40d43cb5b394e2d9fb6b80b596e9d
BLAKE2b-256 02f89cf3f69d56ae11bf36c831f8012884baba5f8d672487252ef62112e55141

See more details on using hashes here.

File details

Details for the file snowdreamtech_unirtm-0.30.1-py3-none-win32.whl.

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.30.1-py3-none-win32.whl
Algorithm Hash digest
SHA256 d8903cfb0cc0c7f90bfaa53796fe347501a7f2cd023289f63d4aa2c9e2b79ed8
MD5 30dd72089d87314d44bdba06781f6691
BLAKE2b-256 a6bc8e603a326abad7cc26bd16b28bc9d394e7967d47b82cbb1d16d76407a487

See more details on using hashes here.

File details

Details for the file snowdreamtech_unirtm-0.30.1-py3-none-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.30.1-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0b5bb4a6c67b4bb18573e3a8ad3f7087a7665d2a66364b7c13ed1959c48a5430
MD5 0d78f089b9657e31a0dc6223fed564ea
BLAKE2b-256 746b94f3bdb39b7f81b15b4d06338a58cbffdf5e8dfdad13eab617e49bd2b6d4

See more details on using hashes here.

File details

Details for the file snowdreamtech_unirtm-0.30.1-py3-none-manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.30.1-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 f3a613f9d4ebf9423ec4503f12d3ea9a178945c23770c1b18b0b58005efa7bc4
MD5 bc7555d7c22d1be0d441451178751337
BLAKE2b-256 83ef15da7d0d497092aa68b252957890d1c349f56ec50aef2a58040aba58db43

See more details on using hashes here.

File details

Details for the file snowdreamtech_unirtm-0.30.1-py3-none-manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.30.1-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 c789f2994fa16cccc189a91fe38b78e2a2c0080c8e88bfce7fd9fffefd453ce1
MD5 7add37b7ffb11fb9e09d6edfdb3e7c86
BLAKE2b-256 25363c1529e2234a98f3ba2572be9caa809682100f2f2f0e85e55320e58224e8

See more details on using hashes here.

File details

Details for the file snowdreamtech_unirtm-0.30.1-py3-none-manylinux2014_i686.whl.

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.30.1-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 63488a8bf35e9f7a2c94571b8e540f1f0a97ece6dc0b2cb9031bc4fbddeaec7b
MD5 da7b1304b4ad997edc167b414cf82e0f
BLAKE2b-256 e4fea04b49cc9aaadea64428d5a61ca6f217cc123ffc6c5f9c214aff926ef923

See more details on using hashes here.

File details

Details for the file snowdreamtech_unirtm-0.30.1-py3-none-manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.30.1-py3-none-manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 465030e9d83a98818761bae7ab5964294011b3997ecc39311fe6df5c5903bcb8
MD5 b8d0ae76f4748f79a558d8ff104e9de3
BLAKE2b-256 b2fd9fc3279755274dfae198f4cd768adde8102adb9c50ed22e9270082a6b919

See more details on using hashes here.

File details

Details for the file snowdreamtech_unirtm-0.30.1-py3-none-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.30.1-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f55924e13be291fe56cd21fea8f9494f7d3a81a4125a104bcdba07453887ba18
MD5 159bd3b38a9b7373783ff1af48f9fb29
BLAKE2b-256 7104e1f689853601eeeb8b6707f2b66931171c6f308f146b7e77d8c027e0fa2c

See more details on using hashes here.

File details

Details for the file snowdreamtech_unirtm-0.30.1-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.30.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 496b13d6b85b8cc47617c52fa793f97a14310490c2a8a4898f5eab5d6ee29cbd
MD5 6eacbf9721db85c897ce954b89cbdcb6
BLAKE2b-256 ab7ce82d7d736688142206ef9e8472a23bbc5d548542c6f9e67104714c4a3453

See more details on using hashes here.

File details

Details for the file snowdreamtech_unirtm-0.30.1-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.30.1-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 86e6661adee9b3c90c89ca31cf9f16a38a8f2e0b0a8ed181ec530af0ce0da69e
MD5 20d70d2e4d91fce8bac94ded7f0bc942
BLAKE2b-256 dcb9514338898161305edb7bcb6a33d55da803c61ef0ceb8d2db04bbd2ab01ec

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.30.1 This release

11 files

0.30.0

11 files

0.29.1

11 files

0.29.0

11 files

0.25.8

11 files

0.25.7

11 files

0.25.6

8 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page