{"id":28069801,"url":"https://github.com/chingc/tutorial-mise","last_synced_at":"2026-02-01T20:35:00.866Z","repository":{"id":291467716,"uuid":"977709072","full_name":"chingc/tutorial-mise","owner":"chingc","description":"A quickstart and reference for mise to help you get up and running fast.","archived":false,"fork":false,"pushed_at":"2025-06-08T21:36:43.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-01T12:03:39.446Z","etag":null,"topics":["documentation","mise","quickstart","readme","reference","tutorial"],"latest_commit_sha":null,"homepage":"https://mise.jdx.dev","language":null,"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/chingc.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,"zenodo":null}},"created_at":"2025-05-04T19:56:18.000Z","updated_at":"2025-06-08T21:36:46.000Z","dependencies_parsed_at":"2025-06-08T22:22:26.413Z","dependency_job_id":"996695f2-eacc-4587-98f8-084c756122f6","html_url":"https://github.com/chingc/tutorial-mise","commit_stats":null,"previous_names":["chingc/tutorial-mise"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chingc/tutorial-mise","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chingc%2Ftutorial-mise","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chingc%2Ftutorial-mise/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chingc%2Ftutorial-mise/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chingc%2Ftutorial-mise/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chingc","download_url":"https://codeload.github.com/chingc/tutorial-mise/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chingc%2Ftutorial-mise/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28989205,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T18:17:03.387Z","status":"ssl_error","status_checked_at":"2026-02-01T18:16:57.287Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["documentation","mise","quickstart","readme","reference","tutorial"],"created_at":"2025-05-12T19:15:01.183Z","updated_at":"2026-02-01T20:35:00.849Z","avatar_url":"https://github.com/chingc.png","language":null,"readme":"# mise\n\nMise is a polyglot tool and project manager.\n\nLike `asdf` (or `nvm` or `pyenv` but for any language), it manages dev tools like Node, Python, Cmake, Terraform, and hundreds more.\n\nLike `direnv` it manages environment variables for different project directories.\n\nLike `make` it manages tasks used to build and test projects.\n\nCompared to asdf, mise is a newer tool written in Rust. It's inspired by asdf but designed to address its limitations. It offers faster performance, better supply chain security, and a more intuitive CLI. It even has Windows support.\n\n## Install\n\nWith homebrew:\n\n```bash\n$ brew install mise\n```\n\nClick [here](https://mise.jdx.dev/installing-mise.html) for other installation methods.\n\nTo verify the installation, run `mise` and you should see a help menu listing available commands.\n\n\u003e [!NOTE]\n\u003e Use homebrew to upgrade or uninstall mise.\n\n## Dev Tools\n\nThe most essential feature mise provides is the ability to run tools with specific versions. This is done with the command `mise exec`. For example, to start a Python 3 interactive shell:\n\n```bash\n$ mise exec python@3 -- python\nPython 3.13.3 (main, Apr  9 2025, 03:47:57) [Clang 20.1.0 ] on darwin\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\nType \"exit()\" to quit.\n\u003e\u003e\u003e\n```\n\n\u003e [!NOTE]\n\u003e The `--` is shell syntax that separates the main command (`mise`) from the subcommand (`python`).\n\nOr, run node 22:\n\n```bash\n$ mise exec node@22 -- node --version\nv22.15.0\n```\n\nAs you can see, mise will automatically install tools as needed.\n\nUse `install` to get tools without running them:\n\n```bash\n$ mise install go@1.24\n```\n\nTo see a list of installed tools:\n\n```bash\n$ mise ls\nTool    Version  Source  Requested\ngo      1.24.2\nnode    22.15.0\npython  3.13.3\n```\n\nUninstalling tools:\n\n```bash\n$ mise uninstall go@1.24.2\nmise go@1.24.2 ✓ uninstalled\n\n$ mise uninstall python@3.13.3\nmise python@3.13.3 ✓ uninstalled\n\n$ mise uninstall node@22.15.0\nmise node@22.15.0 ✓ uninstalled\n\n$ mise ls\nTool  Version  Source  Requested\n```\n\nClean. Easy!\n\nFor a list of tools available:\n\n```bash\n# Hundreds of tools to choose from\n$ mise registry\n\n# Tools from a specific backend\n$ mise registry --backend core\n```\n\nTo see what versions of a specific tool are available:\n\n```bash\n$ mise ls-remote zig\n0.11.0\n0.12.0\n0.12.1\n0.13.0\n0.14.0\n```\n\n### Activate (optional)\n\n#### Interactive Shells\n\nFor interactive shells, you might prefer to activate mise to automatically load the mise context (tools and environment variables) in your shell session. This lets you access your tools directly without `mise exec`, and it lets mise automatically switch between different versions of tools based on the directory you're in.\n\nIf you are running zsh you can add `eval \"$(mise activate zsh)\"` to `~/.zshrc`, then quit and restart your shell. More details and other supported shells can be found [here](https://mise.jdx.dev/cli/activate.html).\n\nYou can run `mise doctor` to verify that mise is correctly installed and activated.\n\nWith mise activated:\n\n```bash\n# Add a tool to the global mise config\n$ mise use --global python@3.13\nmise ~/.config/mise/config.toml tools: python@3.13.3\n\n# Without activation, `mise exec` is required\n$ python3.13 --version\nzsh: command not found: python3.13\n\n# With activation\n$ python3.13 --version\nPython 3.13.3\n```\n\nOmit `--global` to update the mise config in the current working directory. Having a local mise config lets you easily switch between different tools and versions depending on your project.\n\n\u003e [!TIP]\n\u003e Use `mise config ls` to see the config files currently used by mise.\n\n#### Non-interactive Shells\n\nYou should call `mise exec` directly for non-interactive sessions like CI/CD, IDEs, and scripts. Shims are an option, but there are [quirks](https://mise.jdx.dev/dev-tools/shims.html#shims-vs-path). It's better to avoid quirks.\n\n## Managing Projects\n\nWe've already seen a lot of what mise can do. Let's put these ideas together to manage a project.\n\nThe main command for working with projects is `mise use`, which does two main things:\n\n- Install tools (if not already installed)\n- Add tools to the `mise.toml` config file\n\nFor example:\n\n```bash\n$ mkdir example-project\n\n$ cd example-project\n\n$ mise use node@22\n\n# Requires activated mise\n$ node --version\nv22.0.0\n\n$ cat mise.toml\n[tools]\nnode = \"22\"\n```\n\nUse `mise.toml` to share your tool configurations with others. This file contains the common toolset needed for your project and should be committed to version control.\n\nThe tools specified in `mise.toml` will be installed whenever someone runs `mise install`.\n\n### Environment Variables\n\nmise can set environment variables for your project:\n\n```bash\n$ mise set MY_VAR=123\n\n$ cat mise.toml\n[tools]\nnode = \"22\"\n\n[env]\nMY_VAR = \"123\"\n```\n\nEnvironment variables are available when using `mise exec` or with `mise run`:\n\n```bash\n$ mise exec -- echo $MY_VAR\n123\n```\n\nIf mise is activated, it will automatically set environment variables in the current shell session when you `cd` into a directory.\n\n```bash\n$ echo $MY_VAR\n123\n```\n\nYou can also append to `PATH` by directly editing `mise.toml` and using `_.path`:\n\n```bash\n[tools]\nnode = \"22\"\n\n[env]\nMY_VAR = \"123\"\n_.path = [\n    \"./node_modules/.bin\",\n    \"~/.local/bin\",\n]\n```\n\nThe \".\" here refers to the directory where `mise.toml` is in so it will still work if you enter a subdirectory.\n\nUse `unset` to remove an environment variable:\n\n```bash\n$ mise unset MY_VAR\n\n$ cat mise.toml\n[tools]\nnode = \"22\"\n\n[env]\n_.path = [\n    \"./node_modules/.bin\",\n    \"~/.local/bin\",\n]\n```\n\nmise supports [templates](https://mise.jdx.dev/templates.html) for advanced configuration of environment and project settings.\n\n### Tasks\n\nTasks can be defined in `mise.toml` to execute commands:\n\n```bash\n[tools]\nnode = \"22\"\n\n[tasks]\nbuild = \"npm run build\"\ntest = \"npm test\"\n```\n\nTasks are executed with `mise run`:\n\n```bash\n$ mise run build\n$ mise run test\n```\n\nTasks launched with mise will include the mise environment (your tools and environment variables defined in `mise.toml`).\n\nYou can build some pretty complex tasks. Learn more [here](https://mise.jdx.dev/tasks/).\n\n## GitHub Actions\n\nThere is an official [mise-action](https://github.com/jdx/mise-action) that wraps the installation of mise and the tools. All you need to do is to add the action to your workflow.\n\n```\n- uses: jdx/mise-action@v2\n  with:\n    cache: true\n```\n\nCheck out this sample workflow: [mise.yml](https://github.com/chingc/tutorial-github-actions/blob/main/.github/workflows/mise.yml)\n\n## References\n\n- [mise](https://mise.jdx.dev/about.html)\n- [mise: Dev Tools](https://mise.jdx.dev/dev-tools/)\n- [mise: Environments](https://mise.jdx.dev/environments/)\n- [mise: Tasks](https://mise.jdx.dev/tasks/)\n- [mise: Configuration](https://mise.jdx.dev/configuration.html)\n- [mise: Settings](https://mise.jdx.dev/configuration/settings.html)\n- [mise: Templates](https://mise.jdx.dev/templates.html)\n- [mise: Activate](https://mise.jdx.dev/cli/activate.html)\n- [mise: Shims vs PATH](https://mise.jdx.dev/dev-tools/shims.html#shims-vs-path)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchingc%2Ftutorial-mise","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchingc%2Ftutorial-mise","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchingc%2Ftutorial-mise/lists"}