Skip to main content

UniRTM: Universal Runtime Manager

Project description

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.

$ 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)

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.

Project details


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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3Windows x86

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

Uploaded Python 3macOS 11.0+ ARM64

snowdreamtech_unirtm-0.25.7-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.7-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.7-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 4aac783c0f32911926a861085ea32bb682e7bc49d18eb059659f825ff90bfe15
MD5 b2940e81cf13af00a2cb6fa780193239
BLAKE2b-256 2b685f7bbc23368dfb3f16c1e15ff1faf24519372ec92d4f33fbe370018f802b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.7-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 6d618ad9784e15885ae17dee30c8bae5d19ffeaa341e0ee1d78a6af65fd5d58b
MD5 038818016a3761a04fef9264e3a95d62
BLAKE2b-256 daf7b5c6f7d80416c4bc36461baa140b948c4e730e5b108ac483f092a4f7681f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.7-py3-none-win32.whl
Algorithm Hash digest
SHA256 7b8e0887c852c2f898e6843edd6ae2422a21a975d718c3ae6aabdc608483d112
MD5 1b7887904f3452ec01fbc4253a60e619
BLAKE2b-256 bb4ef27d76b309bfe2b7bcd4e7432f09e4786547063a4bb0752b443972301b9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.7-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 627c4893aeaa470c7df9d017e64f5e3649b56062ed48560808c8f05edaf270ce
MD5 2992cbfb1db67c03d5fd84b00a83cd3a
BLAKE2b-256 4cbc47d27174266294e496fe4dbbf0989fbfa68921b5265df1674a076045e9c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.7-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 fa686fe8191870b5c2c934533d15c8973663c37b6b02c63aa3fd3a7d7316369f
MD5 b03e0258de89b16ddfc98dd1ad37b2f7
BLAKE2b-256 3093a044d7000f1d18dc6d85409291e9991716eee1cdb6e4cabd7db1ae80fc56

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.7-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 0aa8f0deaadac619ab20a729d5da57c3ee2bb0607076851ecd79ef59b0cfe1e3
MD5 74501e4064ad8e3e709d182f9257f5e5
BLAKE2b-256 816a5f2d705971c37153de13ac3dd6a4033afe2c8777ab75fb3c2f86d152d8d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.7-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 42c00ac0835254238cfb158b51cb490b758baaedb68e89bceee9d6908c0af16f
MD5 5eba81d20d5156f11e828c0e495460c5
BLAKE2b-256 a1facd60d6c8b049d4514864cdca35d78cd6144c37e8233336edf2e1a8084ec4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.7-py3-none-manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 1f365bd46541488df1701ecafa77c52533e2a7331fbb8a98610d414d865f4b34
MD5 374d9e864f0d557cc1aad74eccc71406
BLAKE2b-256 3c1a19a6c773b13d6a93ecd152dd5ac580ac862ddf77f75d93c1e16e1e8e4ad9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.7-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 07b410b835c6bbcadb6a8a03602c5a79d050d353c0b184060e02cb49641ea5c3
MD5 f4d5c5b6efa063e5565958e9ee6df7e2
BLAKE2b-256 b4f15a880da820c2e809ccb730a5b49c8aab6cee5b636097a439a8e0b0ffe082

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.7-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c9273f0193d9fd8aa0037e205a31b205c78106a8cabb923341bbb5be3b09fa68
MD5 8abfa13cc214dfb385ca9d42ccca0daa
BLAKE2b-256 a551f5305ac3ff217d518dcd635655c7f8500750bdc02280f7a5e7c5fdcf8ff0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.7-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 14a34638e9e70b90feb9c477142ed9a4fec8c34e2816d5c61c6412fa1e8c4207
MD5 c9fb545e2622f7fe23888102fa15065a
BLAKE2b-256 5e1a639455634a57a23d1dd31f562922cf2d1646134cb452914c6ffd44710f5e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page