spicetify/cli · error

invalid option available options: all, userdata

Error message

invalid option
available options: all, userdata

What it means

When `spicetify path` is called without focus flags, its only valid positional arguments are `all` and `userdata`. Any other positional word is rejected with this error by the fallback branch in spicetify.go.

Source

Thrown at spicetify.go:229

				if len(commands) == 0 {
					return cmd.AppAllPath()
				}
				return cmd.AppPath(commands[0])
			} else {
				for _, v := range flags {
					if v != "-e" && v != "-c" && v != "-a" && v != "-s" {
						return "", errors.New("invalid option\navailable options: -e, -c, -a, -s")
					}
				}

				if len(commands) == 0 && len(flags) == 0 {
					return utils.GetExecutableDir(), nil
				} else if commands[0] == "all" {
					return cmd.AllPaths()
				} else if commands[0] == "userdata" {
					return utils.GetSpicetifyFolder(), nil
				}
				return "", errors.New("invalid option\navailable options: all, userdata")
			}
		})()

		if err != nil {
			utils.Fatal(err)
		}

		log.Println(path)
		return

	case "watch":
		cmd.InitPaths()

		var name []string
		if len(commands) > 1 {
			name = commands[1:]
		}

View on GitHub (pinned to 1f13f73616)

Solutions

  1. Use `spicetify path all` for every relevant path or `spicetify path userdata` for the spicetify config folder
  2. Use a focus flag instead: `-e` for extensions, `-c` for theme, `-a` for custom apps
  3. Run `spicetify -h` to list valid path arguments

Example fix

// before
spicetify path theme
// after
spicetify path -c folder
Defensive patterns

Strategy: validation

Validate before calling

switch cmdWord {
case "", "all", "userdata":
    // ok
default:
    return fmt.Errorf("invalid option %q; available options: all, userdata", cmdWord)
}

Type guard

func isValidPathParam(s string) bool { return s == "all" || s == "userdata" }

Prevention

When it happens

Trigger: Running e.g. `spicetify path themes`, `spicetify path extensions`, or `spicetify path myapp` — the first command word is checked against exactly "all" and "userdata" and hits the default error return otherwise.

Common situations: Users guess subcommand names instead of using -e/-c/-a focus flags; users type `spicetify path theme` expecting the theme folder (correct: `spicetify path -c`); users abbreviate `userdata` incorrectly.

Related errors


AI-assisted analysis of spicetify/cli@1f13f73616 (2026-08-31). Data as JSON: /api/errors/ba7ee99e28dba818. Report an issue: GitHub.