{"id":38,"date":"2025-10-16T10:10:52","date_gmt":"2025-10-16T15:10:52","guid":{"rendered":"https:\/\/jcshort.net\/?p=38"},"modified":"2025-10-16T10:10:53","modified_gmt":"2025-10-16T15:10:53","slug":"mise-en-place-a-better-asdf-vm","status":"publish","type":"post","link":"https:\/\/jcshort.net\/?p=38","title":{"rendered":"Mise-en-place: a better asdf-vm"},"content":{"rendered":"\n<p>In a <a href=\"\/?p=19\">previous post<\/a>, I recommended <a href=\"https:\/\/asdf-vm.com\">asdf-vm <\/a>as a general tool manager.  Since then, asdf has undergone a <a href=\"https:\/\/asdf-vm.com\/guide\/upgrading-to-v0-16.html\" data-type=\"link\" data-id=\"https:\/\/asdf-vm.com\/guide\/upgrading-to-v0-16.html\">rewrite from bash to go,<\/a> and broken its plugin ecosystem as a consequence.<\/p>\n\n\n\n<p>Enter <a href=\"https:\/\/mise.jdx.dev\">mise-en-place<\/a>, a competing tool manager that mostly just works for most tools without plugins, and has gone the extra step of providing binary builds for historical versions of tools like Terraform that were not originally published for alternative architectures like ARM.<\/p>\n\n\n\n<p>Here&#8217;s an example direnv integration:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">$ echo 'use mise' > .direnv\n$ echo 'layout python' >> .direnv\n$ mise use python@3.13\n$ direnv allow<\/code><\/pre>\n\n\n\n<p>Mise&#8217;s default config file is <code>mise.toml<\/code>, but it can read .tool-versions if desired.  This can be disabled by setting <code>MISE_OVERRIDE_TOOL_VERSIONS_FILENAMES=none<\/code> in your environment.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In a previous post, I recommended asdf-vm as a general tool manager. Since then, asdf has undergone a rewrite from bash to go, and broken its plugin ecosystem as a consequence. Enter mise-en-place, a competing tool manager that mostly just works for most tools without plugins, and has gone the extra step of providing binary [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-38","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-tech","7":"entry"},"featured_image_src":null,"featured_image_src_square":null,"author_info":{"display_name":"jshort","author_link":"https:\/\/jcshort.net\/?author=2"},"_links":{"self":[{"href":"https:\/\/jcshort.net\/index.php?rest_route=\/wp\/v2\/posts\/38","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jcshort.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jcshort.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jcshort.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jcshort.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=38"}],"version-history":[{"count":0,"href":"https:\/\/jcshort.net\/index.php?rest_route=\/wp\/v2\/posts\/38\/revisions"}],"wp:attachment":[{"href":"https:\/\/jcshort.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=38"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jcshort.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=38"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jcshort.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=38"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}