{"id":19880687,"url":"https://github.com/myst-lang/mtenv","last_synced_at":"2025-08-13T19:38:55.930Z","repository":{"id":114760391,"uuid":"127561725","full_name":"myst-lang/mtenv","owner":"myst-lang","description":"Version manager for Myst language, inspired by rbenv and others.","archived":false,"fork":false,"pushed_at":"2019-01-31T19:40:42.000Z","size":26,"stargazers_count":2,"open_issues_count":1,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-01T02:45:31.802Z","etag":null,"topics":["crystal","environment-manager","myst-lang","version-control","version-manager"],"latest_commit_sha":null,"homepage":null,"language":"Crystal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/myst-lang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-31T18:54:32.000Z","updated_at":"2022-01-31T15:22:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"9f75cd8c-db11-4138-a913-e14155ec83ea","html_url":"https://github.com/myst-lang/mtenv","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/myst-lang/mtenv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myst-lang%2Fmtenv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myst-lang%2Fmtenv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myst-lang%2Fmtenv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myst-lang%2Fmtenv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/myst-lang","download_url":"https://codeload.github.com/myst-lang/mtenv/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myst-lang%2Fmtenv/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270302644,"owners_count":24561909,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["crystal","environment-manager","myst-lang","version-control","version-manager"],"created_at":"2024-11-12T17:12:15.208Z","updated_at":"2025-08-13T19:38:55.869Z","avatar_url":"https://github.com/myst-lang.png","language":"Crystal","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mtenv\n\n`mtenv` is a version manager for the Myst programming language, inspired by rbenv and other similar version managers.\n\n\n\n# Installation\n\nFor platforms with a pre-built binary (see the [releases page](https://github.com/myst-lang/mtenv/releases) to find these), simply download the binary, place it on your `PATH` and you're good to go!\n\n```shell\n# macOS example:\ncurl -Lo mtenv https://github.com/myst-lang/mtenv/releases/download/v0.0.3/mtenv-v0.0.3-macos-10.13.2\nchmod +x mtenv\ncp ./mtenv /usr/local/bin/mtenv\n```\n\nFor other platforms, you'll need to compile from source. To do so, you can clone this repository and run `shards build`, then move the compiled binary onto your $PATH.\n\n```shell\ngit clone https://github.com/myst-lang/mtenv.git\ncd mtenv\nshards build\ncp ./bin/mtenv /usr/local/bin/mtenv\n```\n\nIf you create a new pre-built binary, I'd appreciate you sending in the binary for others to download themselves. The [Myst language discord](https://discord.myst-lang.org) is a great place to discuss this.\n\nOnce `mtenv` is on your `PATH`, the installation is complete.\n\n\n\n# Usage\n\n`mtenv` uses sub-commands to perform its various tasks. To see these commands listed out, just run `mtenv` to see the usage instructions. Further explanations are given here.\n\n\n### Initial setup\n\nWhen first installing `mtenv`, run `mtenv setup` to initialize the `~/.mtenv` (or `MTENV_HOME` if set) directory and install the shims.\n\n```shell\nmtenv setup\n```\n\n`mtenv setup` will:\n\n  - Ensure that `~/.mtenv/` (or `MTENV_HOME` if set) exists and add some basic configuration.\n  - Prompt for where to put the the executable that `mtenv` manages to control `myst` versions, i.e. a directory in your PATH.\n\nNow you are fully set up to use `mtenv` and install new versions of Myst.\n\n_Note_: If you have existing versions of Myst installed via Homebrew or any other method, be sure to remove them from your PATH before using `mtenv`! Otherwise `mtenv` may not take precedence and may cause unexpected behavior._\n\n\n### Installing new versions of Myst\n\nTo install a new version of Myst, use `mtenv install \u003cversion\u003e`. `version` can be a tagged release number (e.g., `v0.5.0`, `v0.6.0`), or a commit SHA from the official myst-lang repository. `install` also accepts an optional second argument for a different name to use for the installation.\n\n```shell\n$ mtenv install v0.5.0\nVersion v0.5.0 of Myst is now installed\n$ mtenv versions\nv0.5.0\n$ mtenv install v0.5.0 beta-5\nVersion beta-5 of Myst is now installed\n$ mtenv versions\nbeta-5\nv0.5.0\n```\n\nTo _uninstall_ a specific version of Myst, use `mtenv uninstall \u003cversion\u003e`. This will remove the installation\n\n```shell\n$ mtenv versions\nv0.4.0\nv0.5.0\n$ mtenv uninstall v0.4.0\nVersion v0.4.0 of Myst has been uninstalled.\n$ mtenv versions\nv0.5.0\n```\n\n\n### Switching versions\n\nTo see which version of Myst is currently active, use `mtenv version`.\n\nTo see which versions of Myst are currently installed, use `mtenv versions`.\n\nTo switch between active versions of Myst (i.e., what the `myst` command will use), use `mtenv use \u003cversion\u003e`.\n\n```shell\n$ mtenv version\nv0.3.0\n$ myst -v\nv0.3.0\n$ mtenv versions\nv0.3.0\nv0.4.0\nv0.5.0\nv0.6.0\n$ mtenv use v0.4.0\nActive Myst version is now v0.4.0\n$ mtenv version\nv0.4.0\n$ myst -v\nv0.4.0\n```\n\n\n### Uninstalling `mtenv`\n\nTo unlink `mtenv` from your PATH and remove all installations, use `mtenv implode`. This command removes _everything_ relating to `mtenv`, except for the `mtenv` binary itself.\n\n```\n$ ./bin/mtenv implode\nAre you sure you want to completely uninstall mtenv? This cannot be undone.\nThe `mtenv` command will remain installed, but all installations will be lost.\nType 'implode' to confirm your intent.\n\u003e implode\n...\n$\n```\n\n\n\n# Development\n\nJust a normal Crystal project. This project uses [Admiral](https://github.com/jwaldrip/admiral.cr) for setting up the CLI, and each command lives in the `src/commands` folder.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmyst-lang%2Fmtenv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmyst-lang%2Fmtenv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmyst-lang%2Fmtenv/lists"}