id = "expo" name = "Expo CLI" homepage = "https://docs.expo.dev/more/expo-cli/" description = "An open-source framework for making universal native apps with React." icon = "SimpleIcons:expo" executables = ["expo", "expo-cli"] [dotfiles] # packages/@expo/cli/src/api/user/UserSettings.ts: getExpoHomeDirectory() is # /.expo ("the same directory EAS CLI uses"), and getSettingsFilePath() # joins state.json onto it. The file is written with mode 0600 because it holds # the auth session secret. paths = ["~/.expo/state.json"] exclude = [] # state.json is not a whole-file secret: the same file records the CLI settings # below, and the session data around the secret (username, connection type) is # not itself a credential. secret = [] # `auth.sessionSecret` is what getSession()/setSessionAsync() store after # `expo login`; it is the bearer credential for the Expo account. [[dotfiles.secret_paths]] file = "~/.expo/state.json" match = { key_path = ["auth.sessionSecret"] } # From the UserSettingsData type in the same file: `uuid` is the anonymous # per-install identifier, `developmentCodeSigningId` is "the last development # code signing ID used for `npx expo run:ios`" — an identity in this Mac's # keychain — and `PATH` is this machine's PATH. [[dotfiles.machine_lines]] file = "~/.expo/state.json" match = { key_path = ["uuid", "developmentCodeSigningId", "PATH"] } [commands] format = 1 label = "Expo" description = "Start the dev server, prebuild native projects, export and install packages. Boolean-valued flags are given as true/false." quality = "ai-draft" base = "fig:expo" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/expo.ts" license = "MIT" [[commands.subcommand]] path = ["start"] label = "Start dev server" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/expo.ts" license = "MIT" [[commands.subcommand.field]] id = "path" label = "Project" type = "path" position = 0 path = { kind = "directory", role = "input" } sources = ["fig"] [[commands.subcommand.field]] id = "port" label = "Port" type = "integer" option = ["--port", "-p"] sources = ["fig"] [[commands.subcommand.field]] id = "host" label = "Host mode" type = "string" option = ["--host", "-m"] suggestions = [{ value = "lan", label = "lan" }, { value = "tunnel", label = "tunnel" }, { value = "localhost", label = "localhost" }] sources = ["fig"] [[commands.subcommand.field]] id = "clear" label = "Clear Metro cache" type = "string" option = ["--clear", "-c"] suggestions = [{ value = "true", label = "true" }, { value = "false", label = "false" }] sources = ["fig"] [[commands.subcommand.field]] id = "dev_client" label = "Dev client" type = "string" option = ["--dev-client"] suggestions = [{ value = "true", label = "true" }, { value = "false", label = "false" }] sources = ["fig"] [[commands.subcommand.field]] id = "scheme" label = "URI scheme" type = "string" option = ["--scheme"] sources = ["fig"] [[commands.subcommand.field]] id = "offline" label = "Offline" type = "string" option = ["--offline"] suggestions = [{ value = "true", label = "true" }, { value = "false", label = "false" }] sources = ["fig"] [[commands.subcommand.task]] id = "start" label = "Start" fields = ["path", "port", "host"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["path", "port", "host", "clear"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["scheme", "offline", "dev_client"] [[commands.subcommand]] path = ["prebuild"] label = "Generate native projects" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/expo.ts" license = "MIT" [[commands.subcommand.field]] id = "path" label = "Project" type = "path" position = 0 path = { kind = "directory", role = "input" } sources = ["fig"] [[commands.subcommand.field]] id = "platform" label = "Platform" type = "string" option = ["--platform", "-p"] suggestions = [{ value = "all", label = "all" }, { value = "android", label = "android" }, { value = "ios", label = "ios" }] sources = ["fig"] [[commands.subcommand.field]] id = "clean" label = "Regenerate from scratch" type = "string" option = ["--clean"] effect = "delete" suggestions = [{ value = "true", label = "true" }, { value = "false", label = "false" }] sources = ["fig"] [[commands.subcommand.field]] id = "no_install" label = "Skip install" type = "string" option = ["--no-install"] suggestions = [{ value = "true", label = "true" }, { value = "false", label = "false" }] sources = ["fig"] [[commands.subcommand.field]] id = "template" label = "Template" type = "string" option = ["--template"] sources = ["fig"] [[commands.subcommand.task]] id = "prebuild" label = "Prebuild" fields = ["path", "platform"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["path", "platform", "clean"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["template", "no_install"] [[commands.subcommand]] path = ["export"] label = "Export static files" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/expo.ts" license = "MIT" [[commands.subcommand.field]] id = "path" label = "Project" type = "path" position = 0 path = { kind = "directory", role = "input" } sources = ["fig"] [[commands.subcommand.field]] id = "public_url" label = "Public URL" type = "string" option = ["--public-url", "-p"] sources = ["fig"] [[commands.subcommand.field]] id = "platform" label = "Platform" type = "string" option = ["--platform"] suggestions = [{ value = "all", label = "all" }, { value = "android", label = "android" }, { value = "ios", label = "ios" }] sources = ["fig"] [[commands.subcommand.field]] id = "output_dir" label = "Output directory" type = "path" option = ["--output-dir"] path = { kind = "directory", role = "output" } sources = ["fig"] [[commands.subcommand.field]] id = "target" label = "Target" type = "string" option = ["--target", "-t"] suggestions = [{ value = "managed", label = "managed" }, { value = "bare", label = "bare" }] sources = ["fig"] [[commands.subcommand.field]] id = "clear" label = "Clear Metro cache" type = "string" option = ["--clear", "-c"] suggestions = [{ value = "true", label = "true" }, { value = "false", label = "false" }] sources = ["fig"] [[commands.subcommand.task]] id = "export" label = "Export" fields = ["path", "public_url", "platform", "output_dir"] required = ["public_url"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["path", "public_url", "platform", "output_dir"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["target", "clear"] [[commands.subcommand]] path = ["install"] label = "Install packages" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/expo.ts" license = "MIT" [[commands.subcommand.field]] id = "packages" label = "Packages" type = "string" position = 0 multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "npm" label = "Use npm" type = "string" option = ["--npm"] suggestions = [{ value = "true", label = "true" }, { value = "false", label = "false" }] sources = ["fig"] [[commands.subcommand.field]] id = "yarn" label = "Use Yarn" type = "string" option = ["--yarn"] suggestions = [{ value = "true", label = "true" }, { value = "false", label = "false" }] sources = ["fig"] [[commands.subcommand.task]] id = "install" label = "Install" fields = ["packages"] required = ["packages"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["packages", "npm", "yarn"]