Appwrite recently released v0.7, its biggest release yet, and with it comes the much-awaited Appwrite CLI. With the Appwrite CLI you can quickly interact with your Appwrite backend right from your terminal or CI server. The CLI is also cross-platform and offers the same experience on macOS, Windows, and Linux.
The Appwrite CLI is a Node based command line tool to help you interact with the Appwrite API. The CLI is distributed both as an
npm package as well as pre built binaries for specific operating systems and architectures.
If you have
npm installed, it's as easy as running
$ npm install -g appwrite-cli
If you do not have
npm installed, you can always install the prebuilt binaries for your architecture and OS using our convenient installation scripts.
- Linux / MacOS
$ wget -q https://appwrite.io/cli/install.sh -O - | /bin/bash
$ iwr -useb https://appwrite.io/cli/install.ps1 | iex
Once the installation is complete, you can verify the install using
$ appwrite -v
Before you can use the CLI, you need to login to your Appwrite account.
$ appwrite login ? Enter your email firstname.lastname@example.org ? Enter your password ******** ✓ Success
This will also prompt you to enter your appwrite endpoint ( default: http://localhost/v1 )
Once logged in, the CLI needs to be initialised before you can use it with your Appwrite project. You can do this with the
appwrite init project command.
$ appwrite init project
The following prompt will guide you through the setup process. The
init command also creates an
appwrite.json file representing your Appwrite project.
appwrite.json file does a lot of things.
- Provides context to the CLI
- Keeps track of all your cloud functions
- Keeps track of all your project's collections
- Helps you deploy your Appwrite project to production and more..
You can also fetch all the collections in your current project using
appwrite init collection
The CLI also comes with a convenient
--all flag to perform both these steps at once using
appwrite init --all
The CLI makes it extremely easy to create and deploy Appwrite's cloud functions. Initialise your new function using
$ appwrite init function ? What would you like to name your function? My Awesome Function ? What runtime would you like to use? Node.js (node-15.5) ✓ Success
This will create a new function
My Awesome Function in your current Appwrite project and also create a template function for you to get started.
$ tree My\ Awesome\ Function My Awesome Function ├── README.md ├── index.js ├── package-lock.json └── package.json 0 directories, 4 files
You can now deploy this function using
$ appwrite deploy function ? Which functions would you like to deploy? My Awesome Function (61d1a4c81dfcd95bc834) ℹ Info Deploying function My Awesome Function ( 61d1a4c81dfcd95bc834 ) ? Enter the entrypoint command node index.js ✓ Success Deployed My Awesome Function ( 61d1a4c81dfcd95bc834 )
Your function is now ready to be executed on your Appwrite server!
Similarly, you can deploy all your collections to your Appwrite server using
appwrite deploy collections
deploy command also comes with a convenient
--all flag to deploy all your functions and collections at once.
appwrite deploy --all
By default, requests to domains with self signed SSL certificates (or no certificates) are disabled. If you trust the domain, you can bypass the certificate validation using
$ appwrite client --selfSigned true
The Appwrite CLI follows the below general syntax.
$ appwrite [COMMAND] --[OPTIONS]
Let's consider some example usages of the CLI.
Let's say you want to create a new user in your project. Prior to the CLI, you would have to get the Server/ Client SDK, setup you environment for the language you have chosen etc. With the CLI, you just do
$ appwrite users create --userId "unique()" --name "Hugh Jackman" --email email@example.com --password helloworld
And you can view your created users using
$ appwrite users list
At any point, if you would like to change your server endpoint, key or selfSigned preferences, you can make use of the
$ appwrite client --endpoint http://192.168.1.6/v1 $ appwrite client --key 23f24gwrhSDgefaY $ appwrite client -selfSigned true
If you get stuck anywhere, you can always use the
help command to get the usage examples.
To get information about the different services available, you can use
$ appwrite help
To get information about a particular service and the commands available in a service you can use
$ appwrite users help $ appwrite accounts help
To get information about a particular command and the parameters it accepts, you can use
$ appwrite users list --help $ appwrite account get --help
If you have unanswered questions feel free to hop onto our Discord server. We have a super active community always waiting for your questions and feedback!