id = "appwrite" name = "Appwrite CLI" homepage = "https://appwrite.io/docs/tooling/command-line" description = "The Appwrite CLI is a Node based command line tool to help you interact with the Appwrite API." icon = "SimpleIcons:appwrite" executables = ["appwrite"] [dotfiles] # appwrite/sdk-for-cli lib/config.js: `class Global extends Config` has # CONFIG_FILE_PATH = ".appwrite/prefs.json" and joins it to os.homedir(). # The project-level file (appwrite.config.json) lives in the repository and is # not a dotfile. paths = ["~/.appwrite/prefs.json"] exclude = [] # The file is not wholly a credential: endpoint, project, locale and mode are # ordinary preferences. Only the login session and API key are lifted out. secret = [] side_effect = false # Same file, the PREFERENCE_KEY ("key") and PREFERENCE_COOKIE ("cookie") # entries: an Appwrite API key and the console session cookie. [[dotfiles.secret_paths]] file = "~/.appwrite/prefs.json" match = { key_path = ["key", "cookie"] } [commands] format = 1 label = "Appwrite CLI" description = "Sign in to an Appwrite endpoint and create or deploy Functions. Passwords, MFA codes, sites, tables and the other service commands are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false } [[commands.subcommand]] path = ["login"] label = "Sign in" [[commands.subcommand.source]] id = "readme" kind = "manual" url = "https://github.com/appwrite/sdk-for-cli/blob/master/README.md" revision = "2026-10" evidence = """ appwrite login --endpoint https://appwrite.example.com/v1 The CLI prompts for `Enter your email` and `Enter your password`, or takes them from `--email` and `--password`. appwrite login --new appwrite login --switch """ [[commands.subcommand.field]] id = "endpoint" label = "Endpoint" description = "API endpoint of a self-hosted instance, e.g. https://appwrite.example.com/v1." type = "url" option = ["--endpoint"] sources = ["readme"] [[commands.subcommand.field]] id = "email" label = "Email" type = "string" option = ["--email"] sources = ["readme"] [[commands.subcommand.field]] id = "new" label = "Add a new account" type = "boolean" option = ["--new"] sources = ["readme"] [[commands.subcommand.field]] id = "switch" label = "Switch account" type = "boolean" option = ["--switch"] sources = ["readme"] [[commands.subcommand.task]] id = "self_hosted" label = "Sign in to a self-hosted instance" fields = ["endpoint", "email"] required = ["endpoint"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["endpoint", "email", "new", "switch"] [[commands.subcommand]] path = ["init", "function"] label = "Create a Function" [[commands.subcommand.source]] id = "readme" kind = "manual" url = "https://github.com/appwrite/sdk-for-cli/blob/master/README.md" revision = "2026-10" evidence = """ appwrite init function Pass `--name`, `--function-id` and `--runtime` to skip the prompts, `--source github` to connect a GitHub repository instead of deploying local code, and `--deploy` to create and deploy the function straight away. """ [[commands.subcommand.field]] id = "name" label = "Name" type = "string" option = ["--name"] sources = ["readme"] [[commands.subcommand.field]] id = "function_id" label = "Function ID" type = "string" option = ["--function-id"] sources = ["readme"] [[commands.subcommand.field]] id = "runtime" label = "Runtime" type = "string" option = ["--runtime"] sources = ["readme"] [[commands.subcommand.field]] id = "deploy" label = "Deploy immediately" type = "boolean" option = ["--deploy"] sources = ["readme"] [[commands.subcommand.task]] id = "create" label = "Create without prompts" fields = ["name", "function_id", "runtime"] required = ["name", "function_id", "runtime"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["name", "function_id", "runtime", "deploy"] [[commands.subcommand]] path = ["push", "function"] label = "Deploy Functions" [[commands.subcommand.source]] id = "readme" kind = "manual" url = "https://github.com/appwrite/sdk-for-cli/blob/master/README.md" revision = "2026-10" evidence = """ appwrite push function Pass `--function-id ` for one function or `--all` for every function, `--with-variables` to replace the function's variables with those in its `.env` file, `--no-logs` to skip the build logs, and `--async` to return without waiting for the deployment. """ [[commands.subcommand.field]] id = "function_id" label = "Function ID" type = "string" option = ["--function-id"] sources = ["readme"] [[commands.subcommand.field]] id = "all" label = "All functions" type = "boolean" option = ["--all"] sources = ["readme"] [[commands.subcommand.field]] id = "with_variables" label = "Replace variables from .env" type = "boolean" option = ["--with-variables"] effect = "overwrite" sources = ["readme"] [[commands.subcommand.field]] id = "no_logs" label = "Skip build logs" type = "boolean" option = ["--no-logs"] sources = ["readme"] [[commands.subcommand.field]] id = "async" label = "Do not wait for deployment" type = "boolean" option = ["--async"] sources = ["readme"] [[commands.subcommand.task]] id = "one" label = "Deploy one function" fields = ["function_id"] required = ["function_id"] [[commands.subcommand.task]] id = "everything" label = "Deploy all functions" fields = ["all"] required = ["all"] set = { all = [true] } [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["function_id", "all"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["with_variables", "no_logs", "async"]