User Experience
oclif's philosophy is that developers should be free to design any user experience they want for their users. In other words, we try really hard to not make any UX decisions for you.
So many times we utilize hooks whenever a user experience is required (e.g. the provided command isn't found). That way, you can design the exact experience you want your users to have. In the case of error handling, you're able to override oclif's default behavior.
But to make it easy for you, @oclif/core
exports a ux
module that offers a small number of tools to implement your desired user experience.
If you need more complex user experiences, we suggest the following libraries:
- For prompts: inquirer
- For spinners: ora
- For progress bars: cli-progress
- For tables: tty-table, cliui
- For trees: object-treeify
- For colored JSON: color-json
- For notifications: node-notifier
- For links: terminal-link
- For rendering react components: ink