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]
paths = ["~/.appwrite/prefs.json"]
exclude = []
secret = []
side_effect = false
[[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 <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"]