--- title: "Initialize the Project from CLI" url: https://docs.catalyst.zoho.com/en/tutorials/invoice-notifier/python/initialize-project/ description: "Create an Event Driven Architecture to automate invoice updates from Zoho Books to Zoho Cliq using Event Functions and Catalyst Signals." last_updated: 2026-08-17T12:16:04Z service: All Services type: tutorial related_links: - name: "Initialize CLI Resources" url: /en/cli/v1/initialize-resources/introduction/ - name: "Project Directory Structure" url: /en/cli/v1/project-directory-structure/introduction/ --- # Initialize the Project from the CLI You can now begin working on your Catalyst project from the CLI. The first step is to initialize the project in an empty directory. This will be the home directory of your project and all of the project files will be saved in it. You can learn more about this from the [Project Directory Structure help page](https://docs.catalyst.zoho.com/en/cli/v1/project-directory-structure/introduction/). You can learn about initializing a project in detail from the [CLI help documentation](https://docs.catalyst.zoho.com/en/cli/v1/initialize-resources/introduction/). For this InvoiceNotifier, we will initialize an [Event Function](https://docs.catalyst.zoho.com/en/serverless/help/functions/event-functions/), which will contain the logic of the action that is required to occur once the event happens and a [Basic web app](https://docs.catalyst.zoho.com/en/cli/v1/initialize-resources/initialize-client/#basic-client-applications) as the client component. The event function will be initialized in the [Python](https://docs.catalyst.zoho.com/en/sdk/python/v1/overview/) platform. However, you can also initialize it in the [Java](https://docs.catalyst.zoho.com/en/sdk/java/v1/overview/) or [Node JS](https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/overview/) platforms. > **Note:** Ensure that you enter the function's package name or class name exactly as instructed, because the application's code contains the same name. 1. Create a folder for the project on your local machine and navigate to it from the terminal. 2. Initialize a project by executing the following command from that directory: ```sh catalyst init ``` 3. Navigate using the arrow keys and select your preferred portal and press the Enter key. If you have no other organizations associated with the account, then the default one will be selected automatically. ![catalyst_authorization_portal_multiorg_choice](https://catalyst-docs-development.zohostratus.in/images/tutorials/invoice-notifier/cli-portal.webp) You can find out more about Catalyst's multi-org portal feature from this [help document](https://docs.catalyst.zoho.com/en/getting-started/catalyst-organizations/#access-the-multi-org-portal). 4. The CLI will now ask you to associate a Catalyst project with the directory. Associate it with the project that we created earlier from the console. Select *InvoiceNotifier* from the list and press Enter. ![Select your project](https://catalyst-docs-development.zohostratus.in/images/tutorials/invoice-notifier/project-cli.webp) 5. Select **Functions** using the space-bar, then press the **Enter** key to initialize. ![Select Function component](https://catalyst-docs-development.zohostratus.in/images/tutorials/invoice-notifier/func-cli.webp) 6. The CLI will initiate the function setup. Select **Event** as the function type. ![Select function type](https://catalyst-docs-development.zohostratus.in/images/tutorials/invoice-notifier/eventfunc-cli.webp) 7. Select the latest runtime **Python** as the programming environment and Press **Enter**. ![Select language environment for function](https://catalyst-docs-development.zohostratus.in/images/tutorials/invoice-notifier/python-cli.webp) 8. Enter **Cliq_Notifier** as the package name, "`main.py`" as the entry point, and press **Enter**. Alternatively, you can press **Enter** without entering inputs to fill in the default values. ![Provide package name and other details](https://catalyst-docs-development.zohostratus.in/images/tutorials/invoice-notifier/python-package-cli.webp) The Catalyst initialization is now complete. The project directory is now set up with the functions directory along with configuration files and dependencies. The project directory also contains the [`catalyst.json`](https://docs.catalyst.zoho.com/en/cli/v1/project-directory-structure/catalyst-json/) configuration file and a hidden `.catalystrc` file. The structure of your project directory should now appear as shown below: ![Project Directory for NodeJS](https://catalyst-docs-development.zohostratus.in/images/tutorials/invoice-notifier/python-proj-dir.webp)