I created a function that will let you change the param prefix $ to any other character. This is helpful if you use a shell that treats $ as a variable prefix and you need to constantly escape it in your terminal.
Just add this to remix.config. I've imported the default convention, so it will continue to work in the future. This simply replaces your desired prefix with :, which is what Remix expects. Remember, this is the final route definition. The default convention converts $ to :.
You can use any prefix character (I chose ^). It supports catch-all as well as multi-param routes.
// remix.config.js
const {
defineConventionalRoutes,
} = require("@remix-run/dev/dist/config/routesConvention");