{
  "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,
    "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
    },
    "subcommand": [
      {
        "path": [
          "login"
        ],
        "label": "Sign in",
        "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\nThe CLI prompts for `Enter your email` and `Enter your password`, or takes them from `--email` and `--password`.\nappwrite login --new\nappwrite login --switch\n"
          }
        ],
        "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"
            ]
          },
          {
            "id": "email",
            "label": "Email",
            "type": "string",
            "option": [
              "--email"
            ],
            "sources": [
              "readme"
            ]
          },
          {
            "id": "new",
            "label": "Add a new account",
            "type": "boolean",
            "option": [
              "--new"
            ],
            "sources": [
              "readme"
            ]
          },
          {
            "id": "switch",
            "label": "Switch account",
            "type": "boolean",
            "option": [
              "--switch"
            ],
            "sources": [
              "readme"
            ]
          }
        ],
        "task": [
          {
            "id": "self_hosted",
            "label": "Sign in to a self-hosted instance",
            "fields": [
              "endpoint",
              "email"
            ],
            "required": [
              "endpoint"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "endpoint",
              "email",
              "new",
              "switch"
            ]
          }
        ]
      },
      {
        "path": [
          "init",
          "function"
        ],
        "label": "Create a Function",
        "source": [
          {
            "id": "readme",
            "kind": "manual",
            "url": "https://github.com/appwrite/sdk-for-cli/blob/master/README.md",
            "revision": "2026-10",
            "evidence": "appwrite init function\nPass `--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.\n"
          }
        ],
        "field": [
          {
            "id": "name",
            "label": "Name",
            "type": "string",
            "option": [
              "--name"
            ],
            "sources": [
              "readme"
            ]
          },
          {
            "id": "function_id",
            "label": "Function ID",
            "type": "string",
            "option": [
              "--function-id"
            ],
            "sources": [
              "readme"
            ]
          },
          {
            "id": "runtime",
            "label": "Runtime",
            "type": "string",
            "option": [
              "--runtime"
            ],
            "sources": [
              "readme"
            ]
          },
          {
            "id": "deploy",
            "label": "Deploy immediately",
            "type": "boolean",
            "option": [
              "--deploy"
            ],
            "sources": [
              "readme"
            ]
          }
        ],
        "task": [
          {
            "id": "create",
            "label": "Create without prompts",
            "fields": [
              "name",
              "function_id",
              "runtime"
            ],
            "required": [
              "name",
              "function_id",
              "runtime"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "name",
              "function_id",
              "runtime",
              "deploy"
            ]
          }
        ]
      },
      {
        "path": [
          "push",
          "function"
        ],
        "label": "Deploy Functions",
        "source": [
          {
            "id": "readme",
            "kind": "manual",
            "url": "https://github.com/appwrite/sdk-for-cli/blob/master/README.md",
            "revision": "2026-10",
            "evidence": "appwrite push function\nPass `--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.\n"
          }
        ],
        "field": [
          {
            "id": "function_id",
            "label": "Function ID",
            "type": "string",
            "option": [
              "--function-id"
            ],
            "sources": [
              "readme"
            ]
          },
          {
            "id": "all",
            "label": "All functions",
            "type": "boolean",
            "option": [
              "--all"
            ],
            "sources": [
              "readme"
            ]
          },
          {
            "id": "with_variables",
            "label": "Replace variables from .env",
            "type": "boolean",
            "option": [
              "--with-variables"
            ],
            "effect": "overwrite",
            "sources": [
              "readme"
            ]
          },
          {
            "id": "no_logs",
            "label": "Skip build logs",
            "type": "boolean",
            "option": [
              "--no-logs"
            ],
            "sources": [
              "readme"
            ]
          },
          {
            "id": "async",
            "label": "Do not wait for deployment",
            "type": "boolean",
            "option": [
              "--async"
            ],
            "sources": [
              "readme"
            ]
          }
        ],
        "task": [
          {
            "id": "one",
            "label": "Deploy one function",
            "fields": [
              "function_id"
            ],
            "required": [
              "function_id"
            ]
          },
          {
            "id": "everything",
            "label": "Deploy all functions",
            "fields": [
              "all"
            ],
            "required": [
              "all"
            ],
            "set": {
              "all": [
                true
              ]
            }
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "function_id",
              "all"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "with_variables",
              "no_logs",
              "async"
            ]
          }
        ]
      }
    ]
  }
}
