Skip to content

snowdreamtech/UniRTM

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3,274 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

UniRTM

GitHub GitHub Workflow Status

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 introduces native SBOM generation and security scanning via Trivy & Syft directly into your dev tools installation flow!

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.
  • Zero Shims: UniRTM strictly avoids bash shims. It directly prepends the absolute paths of installed tools to your $PATH, ensuring 100% execution speed and transparency for IDEs.
  • Native Security: Built-in integration with Trivy and Syft to generate SBOMs and scan for vulnerabilities whenever you install a tool.
  • Absolute Locking: Generates a unirtm.lock file that pins the exact checksums and versions of your downloaded tools for reproducible environments.

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 tools specified in .unirtm.toml with automatic SBOM generation
unirtm run deploy # automatically runs validation and audit dependencies first

Full Documentation

See unirtm.snowdream.tech

GitHub Issues & Discussions

For feature requests, bug reports, and community support:

Special Thanks

Inspired by the architecture and developer experience pioneered by mise.

License

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

About

Uni Runtime and Tools Manager

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Go 97.7%
  • Shell 1.2%
  • Other 1.1%