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.6-py3-none-macosx_11_0_arm64.whl (14.4 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

snowdreamtech_unirtm-0.25.6-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.6-py3-none-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.6-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 38849f1e786afa90c5eb9577952e9f023f1dfe5ce0fbf3472217f2a11ceb44da
MD5 a2c9d837715d78710513c0e08b973df6
BLAKE2b-256 14d2c50919ac2e8e584bc74e25fdf820040b006143738325ede302ed222b69aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.6-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 4e8684f7b7098b126dae8b391fff39cee19b560840542f29cd4bb081acb6fc79
MD5 c4fb4ebbf6e0d72f1caa6f330ca39bd5
BLAKE2b-256 26ce2f1aea48c7f32c2ca1555a0ce39b43104ca44d754f63c5eeca16654e3456

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.6-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 c3fc31a4a081f9b65d1cbd61b2c90aab005039800f050c1cf578c1e59f57c630
MD5 faa96ee5696a7f10fa20d80e78f2a7a4
BLAKE2b-256 21583ff156101991313184a7ff69d34488e053ca43782f2ead431506fbee153b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.6-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 cf2f727ac21b02be8f841aa1a047a666ddab1d2455faee8fb75b59e63dbd64ac
MD5 07e13ba97866ff519822a0ca7d04c275
BLAKE2b-256 d9bd61098110c8246e9d94ddb8fd7f9f77728eac81dd37dffc5bf4cc3637f8ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.6-py3-none-manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 c0f7ffa4bafb9f3462a31baa11a0dcc298e888c2825573f8db0963777cb1b6a5
MD5 0c1fdd9c445300ffd3df3b75ad2a4de6
BLAKE2b-256 e2f1bdae2d4df116785a37c0b76a91f0062087343627598c5d90c9efa99b2780

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.6-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 94127362b38d5712bc3c756c4720db1984c1585a47178657a6e7dc4feb1f8bc5
MD5 949cdd0566809517e12cf7638558eb65
BLAKE2b-256 5359cc95dc016f036821fe68a641728e533df0ce675a7a1b413c1a69bc2fc41b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.6-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 27149564b9803565d60a9c53b81b68980072c4c3b3f79882bcc35509a2a4759e
MD5 b04012f935c6e994d3582b3241cc1375
BLAKE2b-256 8fb27a56e7cfd49eaac7e95b443e8b597029e891cf777bfe752b5e4bff4a98c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unirtm-0.25.6-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 558ce35f02e68f63bc08cf4ab810582612b26da566cc757904667a77c04d0eeb
MD5 ec98c23421b1aa7640a6b75dd0d0c0a0
BLAKE2b-256 57d7e0fb7b659a5e234e9c458cad4c9854d63325dcd50c4ea306a0de9fd7e943

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