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.25.8-py3-none-win_arm64.whl (28.9 MB view details)

Uploaded Python 3Windows ARM64

snowdreamtech_unirtm-0.25.8-py3-none-win_amd64.whl (30.5 MB view details)

Uploaded Python 3Windows x86-64

snowdreamtech_unirtm-0.25.8-py3-none-win32.whl (29.9 MB view details)

Uploaded Python 3Windows x86

snowdreamtech_unirtm-0.25.8-py3-none-macosx_11_0_arm64.whl (14.4 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

snowdreamtech_unirtm-0.25.8-py3-none-macosx_10_9_x86_64.whl (15.5 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.8-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 829243d2431035ade597ab1a557f17b6ee30cf4351357b6593e7f8be78d142cf
MD5 6811a8641a1d204b3aac72c6a37f34ce
BLAKE2b-256 31c3f688f1a5b0a71bd19d5e18c54d6a5e0e875ac495ce8784cc199ff5f91648

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.8-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 1b708d9861124f7edf9448e99f6129158333b1502ea9f069a405faa3b373dbb7
MD5 ae2ed4277f9d89482c2ac8e31d255f47
BLAKE2b-256 52be7a37c84dbf93d4a0b3b244b25dd361ba337bee51a684fc0cb697c8e6706d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.8-py3-none-win32.whl
Algorithm Hash digest
SHA256 bb4ab3504c8774273d494a6e6679327a0bce31cf185d53086789b3d894394820
MD5 6061d843420520769c8a53f6b7b64d30
BLAKE2b-256 9fb08334958bde52431d1aac90254a7fb0e062b41ca6f0862a82e8d9f222ce54

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.8-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 045eb10251c7d27ddf3ae8b782a306c396b52130f5160800c318f2cbb4965150
MD5 c323ebd131e4c6f6a8b2a24cabe0558e
BLAKE2b-256 570cfc8a6185fdfc2afc0ca5409bf6f8d43349d9bf19ed4291bd7b93d9446f06

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.8-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 5bec7198a0aba0d9bff06fde16d33b7e84fc378783c08f4288d8a338ce6d30a8
MD5 9421dced0f14c9763c9dc590cd769613
BLAKE2b-256 ba9c231b0dd4e61e7a53e1bdf84634295668a55c979c1fdb85310ce93728e45e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.8-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 bf129f49f5e70d91c23a8c47f2df8e00ab812707ea7de190883605455cf95210
MD5 17bd5d43986db9e080ae10bea2e155a8
BLAKE2b-256 6414d4997e9d5cfabf571c6b52b313a91b35e8dc1b80778c3718c99b9a3dfc15

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.8-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a8e4c237fc0433d9fe72dbc84e32772caefdf996233a322cf0d71d8b5c899eed
MD5 eaf258ed4c5505acde5735a4725b11e8
BLAKE2b-256 1a174d02b773da671d944735d5f38c46dd26eb13b05a0795a7d0e8cc1d08702d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.8-py3-none-manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 9b33524a943dda72b75c3a92397cd15bbca780f28a27039d08f75d3b7aacf36d
MD5 0c4936fac2f139d74b992f0d1077bb02
BLAKE2b-256 8075be7c4a5e327ebb8bbd50f3a557af1e8844bca83fec4397c2bee998fdcd9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.8-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 acb6305caf51ecf06b0ce66e6cc1a5e7c96d811e30294a4e6684cf53ed51728d
MD5 defe239128ff5aff5dbb61562bec21a5
BLAKE2b-256 5c4d05d4d217f514409e5b168037332b10cb56b681dcd6de7a6f698dff69696e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.8-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 47ebd46cc9efe9d180ed4a0c240c552ecf47967866ffbfa6fd1a7f6aea82deb9
MD5 58b7573fe812a47e7be798f8158c4e54
BLAKE2b-256 cb410751fc744b8bab2af3d13c85a45389a1e78d8a8cf4cc027ebc03d6306a4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.8-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f59ab0966591825d6478363630d25b289d19076abe6fc943d564a02726140e60
MD5 ac9d5d320041ae2e0f76e9723bb46402
BLAKE2b-256 3ee20445011a8b90b7447a14371e6fcaf1059fb597746e16ff41e84244d92ff9

See more details on using hashes here.

Release history Release notifications | RSS feed

0.30.1

11 files

0.30.0

11 files

0.29.1

11 files

0.29.0

11 files

This release

0.25.8 This release

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