
Appwrite Cli
Manage Appwrite Cloud or self-hosted projects from the terminal—init, deploy functions/sites/storage, and run CI/CD without click-ops.
Overview
appwrite-cli is an agent skill most often used in Build (also Ship and Operate) that manages Appwrite projects, deploys resources, and supports CI/CD from the terminal.
Install
npx skills add https://github.com/appwrite/agent-skills --skill appwrite-cliWhat is this skill?
- Install via npm, Homebrew, install script, or Windows Scoop with version verify
- Login for Cloud or self-hosted endpoints; init project and appwrite.config.json
- Deploy functions, sites, tables, buckets, teams, webhooks, and topics from config
- Flag-based list queries and non-interactive mode for CI/CD pipelines
- Generate type-safe SDKs; regional endpoint rules for Cloud vs account login URL
- 4 installation channels documented (npm, Homebrew, script, Scoop)
Adoption & trust: 840 installs on skills.sh; 20 GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You chose Appwrite as your backend but lack a consistent CLI workflow for login, config, deploys, and automation.
Who is it for?
Solo builders on Appwrite Cloud or self-hosted instances who deploy functions, sites, or data services from the repo.
Skip if: Teams on Firebase-only, custom VPS without Appwrite, or products with zero Appwrite footprint.
When should I use this skill?
Managing Appwrite from the command line: install, login, init, deploy functions/sites/tables/buckets, CI/CD, or SDK generation.
What do I get? / Deliverables
You can initialize and drive an Appwrite project non-interactively, deploy app resources, and generate SDKs ready for your app codebase.
- appwrite.config.json project setup
- Deployed Appwrite resources
- Generated type-safe client SDK
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
First Appwrite project wiring and resource deployment sit in Build; repeat deploy and config pushes extend into Ship and Operate. Appwrite is a BaaS backend integration; the CLI is the primary agent-facing surface for tables, auth, functions, and buckets.
Where it fits
Run appwrite init project and wire tables and auth after choosing Appwrite as your API layer.
Use non-interactive CLI flags in GitHub Actions to deploy functions before a release tag.
Rotate webhooks or redeploy a site bucket without opening the Cloud console.
How it compares
Backend BaaS CLI skill—not a generic Docker deploy recipe or unrelated database migration tool.
Common Questions / FAQ
Who is appwrite-cli for?
Indie developers and small teams using Appwrite who want agents to run init, deploy, and list operations safely from the terminal or CI.
When should I use appwrite-cli?
During Build for project init and backend integration; during Ship for automated deploys; during Operate when updating functions, webhooks, or buckets.
Is appwrite-cli safe to install?
The skill implies shell access to Appwrite credentials and your project—review Security Audits on this page and scope CI secrets carefully.
SKILL.md
READMESKILL.md - Appwrite Cli
# Appwrite CLI ## Installation ```bash # npm npm install -g appwrite-cli # macOS (Homebrew native binary) brew tap appwrite/appwrite brew install appwrite/appwrite/appwrite # macOS / Linux (script) curl -sL https://appwrite.io/cli/install.sh | bash # Windows (Scoop) scoop install https://raw.githubusercontent.com/appwrite/sdk-for-cli/master/scoop/appwrite.config.json ``` Verify installation: ```bash appwrite -v ``` ## Login & Initialization ```bash # Login to your account appwrite login # Login to a self-hosted instance appwrite login --endpoint "https://your-instance.com/v1" # Switch to a different saved account appwrite login --switch # Initialize a project (creates appwrite.config.json) appwrite init project # Verify by fetching project info appwrite projects get --project-id "<PROJECT_ID>" ``` `appwrite whoami` can show `https://cloud.appwrite.io/v1` as the account login endpoint. That is expected for Appwrite Cloud login. Do not rewrite it to a regional endpoint. Only project configuration and project-scoped API calls use the region endpoint, such as `https://<REGION>.cloud.appwrite.io/v1`. ## Configuration ```bash # Switch endpoint/project for scripted use appwrite client --endpoint "https://<REGION>.cloud.appwrite.io/v1" appwrite client --project-id "<PROJECT_ID>" ``` > For the full list of CLI commands, see [CLI Commands](https://appwrite.io/docs/tooling/command-line/commands). > For headless / CI/CD usage, see [Non-Interactive Mode](https://appwrite.io/docs/tooling/command-line/non-interactive). ## appwrite.config.json Resources can be configured inline in `appwrite.config.json` or split into separate JSON array files using `includes`. ```json { "projectId": "<PROJECT_ID>", "projectName": "Production", "endpoint": "https://<REGION>.cloud.appwrite.io/v1", "includes": { "functions": "appwrite/functions.json", "sites": "appwrite/sites.json", "webhooks": "appwrite/webhooks.json" }, "settings": { "services": { "account": true, "databases": true, "functions": true, "sites": true, "messaging": true }, "protocols": { "rest": true, "graphql": true, "websocket": true }, "auth": { "methods": { "email-password": true, "magic-url": true }, "security": { "sessionsLimit": 10, "passwordDictionary": true } } }, "tablesDB": [], "tables": [], "buckets": [], "teams": [], "topics": [] } ``` Each `includes` value must be a relative `.json` path inside the project directory and must point to a JSON array. A resource cannot be defined both inline and in `includes`. When functions or sites are included, their `path` values are resolved relative to the include file directory. Example `appwrite/functions.json`: ```json [ { "$id": "<FUNCTION_ID>", "name": "userAuth", "enabled": true, "logging": true, "runtime": "node-22", "buildSpecification": "s-1vcpu-512mb", "runtimeSpecification": "s-1vcpu-512mb", "deploymentRetention": 7, "events": [], "schedule": "", "timeout": 15, "entrypoint": "src/main.js", "commands": "npm install", "ignore": "node_modules\n.tmp", "path": "../functions/userAuth" } ] ``` ### Pull and push project configuration ```bash # Pull or push everything appwrite pull all --all appwrite push all --all # Pull or