Many developers transitioning from rbenv (and even AI-generated commands)
often try to run:
asdf local ruby 3.x.x
However, asdf uses:
asdf set ruby 3.x.x
This leads to confusion and a poor onboarding experience.
Describe the proposed solution
-
Improve CLI error message when local is used:
Suggest asdf set as the correct alternative
-
(Optional) Consider a compatibility alias or soft redirect
This would improve developer experience and reduce friction,
especially for users switching from rbenv or relying on AI tools.
Happy to contribute a PR for this.
Describe similar asdf features and why they are not sufficient
asdf previously supported commands like asdf local and asdf global,
but newer versions have standardized on asdf set.
While asdf set is functionally correct and more consistent, it differs
from tools like rbenv that many developers are already familiar with.
As a result, users transitioning from rbenv (and even AI-generated commands)
often attempt to use asdf local, which leads to confusion or errors.
Currently, when this happens, the CLI does not provide a helpful suggestion
or guidance toward the correct asdf set command.
Therefore, while the functionality exists (asdf set), the lack of
user guidance in this scenario makes the experience less intuitive
for new users.
Describe other workarounds you've considered
Other Workarounds Considered:
-
Documentation Updates
- Adding clearer instructions in the README about the difference between
asdf local and asdf set.
- While this helps users who read the docs, many users (especially those coming from rbenv or using AI-generated instructions) may still encounter confusion in real-time CLI usage.
-
User Aliases
- Users can manually create shell aliases such as:
alias asdf-local='asdf set'
- This works locally but requires individual setup for each user and is not discoverable for new users or automated scripts.
-
Shell Completion Scripts
- Some users may rely on shell completion to guide them.
- However, it doesn’t provide an error message or correction when a mistaken
local command is typed.
-
Training or AI Prompts
- Some users attempt to rely on AI assistants for command guidance.
- Currently, AI tools often suggest the outdated
local command, which fails without guidance from the CLI.
Conclusion:
- Existing workarounds either require manual setup or do not help users in the moment.
- A CLI-level UX improvement (e.g., suggesting
asdf set when local is used incorrectly) would solve the problem globally without burdening users.
Many developers transitioning from rbenv (and even AI-generated commands)
often try to run:
asdf local ruby 3.x.x
However, asdf uses:
asdf set ruby 3.x.x
This leads to confusion and a poor onboarding experience.
Describe the proposed solution
Improve CLI error message when
localis used:Suggest
asdf setas the correct alternative(Optional) Consider a compatibility alias or soft redirect
This would improve developer experience and reduce friction,
especially for users switching from rbenv or relying on AI tools.
Happy to contribute a PR for this.
Describe similar
asdffeatures and why they are not sufficientasdf previously supported commands like
asdf localandasdf global,but newer versions have standardized on
asdf set.While
asdf setis functionally correct and more consistent, it differsfrom tools like rbenv that many developers are already familiar with.
As a result, users transitioning from rbenv (and even AI-generated commands)
often attempt to use
asdf local, which leads to confusion or errors.Currently, when this happens, the CLI does not provide a helpful suggestion
or guidance toward the correct
asdf setcommand.Therefore, while the functionality exists (
asdf set), the lack ofuser guidance in this scenario makes the experience less intuitive
for new users.
Describe other workarounds you've considered
Other Workarounds Considered:
Documentation Updates
asdf localandasdf set.User Aliases
Shell Completion Scripts
localcommand is typed.Training or AI Prompts
localcommand, which fails without guidance from the CLI.Conclusion:
asdf setwhenlocalis used incorrectly) would solve the problem globally without burdening users.