DEV Community

Cover image for Announcing the Appwrite CLI 🚀
Christy Jacob for Appwrite

Posted on • Updated on

Announcing the Appwrite CLI 🚀

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.

🎛 Installation

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.

Install using NPM

If you have npm installed, it's as easy as running

$ npm install -g appwrite-cli
Enter fullscreen mode Exit fullscreen mode

Install prebuilt binaries

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
Enter fullscreen mode Exit fullscreen mode
  • Windows
$ iwr -useb https://appwrite.io/cli/install.ps1 | iex
Enter fullscreen mode Exit fullscreen mode

Appwrite Install Shield

Once the installation is complete, you can verify the install using

$ appwrite -v
Enter fullscreen mode Exit fullscreen mode

🏁 Getting Started

Before you can use the CLI, you need to login to your Appwrite account.

$ appwrite login

? Enter your email test@test.com
? Enter your password ********
✓ Success 
Enter fullscreen mode Exit fullscreen mode

This will also prompt you to enter your appwrite endpoint ( default: http://localhost/v1 )

Initialising your project

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
Enter fullscreen mode Exit fullscreen mode

The following prompt will guide you through the setup process. The init command also creates an appwrite.json file representing your Appwrite project.

The 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
Enter fullscreen mode Exit fullscreen mode

The CLI also comes with a convenient --all flag to perform both these steps at once using

appwrite init --all
Enter fullscreen mode Exit fullscreen mode

Creating and deploying cloud functions

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 
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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 )
Enter fullscreen mode Exit fullscreen mode

Your function is now ready to be executed on your Appwrite server!

Deploying Collections

Similarly, you can deploy all your collections to your Appwrite server using

appwrite deploy collections
Enter fullscreen mode Exit fullscreen mode

The deploy command also comes with a convenient --all flag to deploy all your functions and collections at once.

appwrite deploy --all
Enter fullscreen mode Exit fullscreen mode

Note

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
Enter fullscreen mode Exit fullscreen mode

📈 Usage

The Appwrite CLI follows the below general syntax.

$ appwrite [COMMAND] --[OPTIONS]
Enter fullscreen mode Exit fullscreen mode

Let's consider some example usages of the CLI.

Create and List Users

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 hugh@jackman.com --password helloworld
Enter fullscreen mode Exit fullscreen mode

And you can view your created users using

$ appwrite users list 
Enter fullscreen mode Exit fullscreen mode

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 client command

$ appwrite client --endpoint http://192.168.1.6/v1
$ appwrite client --key 23f24gwrhSDgefaY
$ appwrite client -selfSigned true
Enter fullscreen mode Exit fullscreen mode

🤕 Help

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
Enter fullscreen mode Exit fullscreen mode

To get information about a particular service and the commands available in a service you can use

$ appwrite users help
$ appwrite accounts help
Enter fullscreen mode Exit fullscreen mode

Appwrite Users Help

To get information about a particular command and the parameters it accepts, you can use

$ appwrite users list --help
$ appwrite account get --help 
Enter fullscreen mode Exit fullscreen mode

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!

📚 References

Discussion (2)

Collapse
kohsheen1234 profile image
Kohsheen Tiku

Wow. This is so amazing!

Collapse
eldadfux profile image
Eldad A. Fux

Kohsheen, you should join the Appwrite Discord community: appwrite.io/discord