Building extensions #2: Creating extensions for Zoho Projects using a CLI

Building extensions #2: Creating extensions for Zoho Projects using a CLI

In our previous post, we noted the two ways to create extensions for Zoho Projects— using the cloud editor and using the command line interface (CLI). We also shared how to create an extension using the Sigma cloud editor. In this post, we'll take a closer look at creating an extension using the CLI.

You'll learn how to create an extension project template with the CLI, test it, upload the zipped project while creating an extension, and then edit or change it. Let's go over each of these steps in detail.

Building an extension project using the CLI
  • To create an extension project, we must first set up the development environment, which involves:
➤ Downloading Node.js: Node.js acts as the base platform as well as the JavaScript environment in which the JavaScript code is executed.
➤ Installing ZET CLI: Zoho offers a command line interface called Zoho Extension Toolkit (ZET) which enables you to build, test, and pack your extension project.
Please follow the steps in this link to download Node.js and install ZET CLI.
  • Once the development environment is ready, use the basic ZET commands to create, validate, pack, and test your extension project.
zet init: Create a new project and add the necessary folder structure and resources
zet validate: Validate the entire project
zet pack: Pack the project to get a zipped file that will later be associated as the connected app
zet run: Run the internal Zoho server to test the project locally
Now, let's use these commands to create and manage an extension project.
  • First, use the zet init command. Select Zoho Projects as the Zoho service from the dropdown list.

  • Enter a name for the extension. An extension with the directory structure required for a sample Zoho Projects extension is created automatically.

  • This directory structure contains an app folder and a plugin-manifest.json file, both of which are similar to those created by the Sigma cloud editor detailed in the last post.

  • The app folder can be used to manage all the important resources required for your extension. By default, itincludes an index.html file, which serves as the UI for a sample widget.
  • The plugin-manifest.json file helps with extension configuration. It includes a widgets key configured with a default sample widget named, "Projects Extension" in the default location as the task details tab, along with the URL as the location of the index.html file.
Now that the extension project has been created, lets go ahead and test it in the Zoho Projects portal.
Testing an extension project using the CLI
  • To test a sample Zoho Projects extension created with the ZET CLI, use the Change Directory command to navigate to the project folder. Then, run the zet run command.

  • This command starts a local server and enables you to test your extension locally.
  • Now, navigate to your Zoho Projects portal. Click the Setup icon.
  • Select Developer Space from the left panel. Click Enable Developer Mode.

  • Developer Mode will be enabled and the page will automatically refresh.
  • You may now test your extension functionalities in the Zoho Projects portal.
  • Since the sample extension had a default widget called, "Projects Extension" configured on the Task Details page, choose and enter a project task in your portal.

  • Click on the Projects Extension tab on the Task Details page, and you will see that the widget has loaded.

  • Once you have finished testing your extension's functionality, use the zet pack command. This command adds a dist folder to the directory structure, zips the extension project, and places the zipped file inside the newly created dist folder.
Uploading the zipped file to your Sigma extension

Now that we have created the extension project and tested its functionalities locally, lets go ahead and create an extension in Sigma.
  • Once you enter your Sigma workspace, click the New Extension button to build a new extension.
  • Enter a name and description for the extension. Choose Zoho Projects for the service.
  • Toggle Upload Existing File to Yes.

  • Click Browse to locate and upload the extension project's zipped file, accept the terms and conditions, and click Create.

  • You will be redirected to the cloud editor. The directory structure of your CLI extension project will be automatically populated with the project's contents.
Editing an extension created with the CLI
  • You can make edits or changes to your extension code directly from the cloud editor.
  • If you wish to make changes to a file or its contents in the directory structure of your CLI extension project, please be sure to pack the extension project again using the zet pack CLI command.
  • Go to Sigma. Click the Extension Details icon of the extension you wish to edit.

  • Click the Edit icon under the extension name.

  • Browse for and upload the new zipped file, accept the terms and conditions, and click Update.

  • The extension will be updated to reflect the changes you have made.
In this post, we have covered the process of creating an extension for Zoho Projects through ZET CLI. We hope you found this information useful. Keep following this space for more information!

Sign up for a Zoho Developer account and start developing extensions for Zoho products using Sigma.

SEE ALSO






    Access your files securely from anywhere








                            Zoho Developer Community




                                                  • Desk Community Learning Series


                                                  • Digest


                                                  • Functions


                                                  • Meetups


                                                  • Kbase


                                                  • Resources


                                                  • Glossary


                                                  • Desk Marketplace


                                                  • MVP Corner


                                                  • Word of the Day


                                                  • Ask the Experts





                                                            Manage your brands on social media



                                                                  Zoho TeamInbox Resources



                                                                      Zoho CRM Plus Resources

                                                                        Zoho Books Resources


                                                                          Zoho Subscriptions Resources

                                                                            Zoho Projects Resources


                                                                              Zoho Sprints Resources


                                                                                Qntrl Resources


                                                                                  Zoho Creator Resources



                                                                                      Zoho CRM Resources

                                                                                      • CRM Community Learning Series

                                                                                        CRM Community Learning Series


                                                                                      • Kaizen

                                                                                        Kaizen

                                                                                      • Functions

                                                                                        Functions

                                                                                      • Meetups

                                                                                        Meetups

                                                                                      • Kbase

                                                                                        Kbase

                                                                                      • Resources

                                                                                        Resources

                                                                                      • Digest

                                                                                        Digest

                                                                                      • CRM Marketplace

                                                                                        CRM Marketplace

                                                                                      • MVP Corner

                                                                                        MVP Corner







                                                                                          Design. Discuss. Deliver.

                                                                                          Create visually engaging stories with Zoho Show.

                                                                                          Get Started Now


                                                                                            Zoho Show Resources

                                                                                              Zoho Writer

                                                                                              Get Started. Write Away!

                                                                                              Writer is a powerful online word processor, designed for collaborative work.

                                                                                                Zoho CRM コンテンツ




                                                                                                  Nederlandse Hulpbronnen


                                                                                                      ご検討中の方







                                                                                                              • Recent Topics

                                                                                                              • Forwarder

                                                                                                                Hi, I tried to add a forwarder from which emails are sent to my main zoho account email . However, it asks me for a code that should be received at the forwarder email, which is still not activated to send to my zoho emial account. So how can I get the
                                                                                                              • No chat option

                                                                                                                Chat option is not supported.
                                                                                                              • Direct “Add to Google Calendar” Option in Zoho Meeting

                                                                                                                Hello Zoho Meeting Team, Hope you are doing well. We would like to request an enhancement related to the “Add to Calendar” functionality in Zoho Meeting. Currently, when we open Zoho Meeting and view our meetings under My Calendar, there is an Add to
                                                                                                              • Default Tagging on API-generated Transactions

                                                                                                                If one assigns tags to an Item or Customer, those tags get auto-populated in each line item of an Invoice or Sales Order when one creates those documents. However, if one creates the Sales Order or Invoice via the API (either directly coding or using
                                                                                                              • DKIM cannot be enabled for the domain as no verified default selector present

                                                                                                                Hi Support Team, For Domain DKIM record trying to enable status. but showing error "DKIM cannot be enabled for the domain as no verified default selector present" So, please resolve the issue. Thank you.
                                                                                                              • unable to send message reason 554 5.1.8 Email outgoing blocked

                                                                                                                unable to send message reason 554 5.1.8 Email outgoing blocked
                                                                                                              • I can't log in to my account on Thunderbird

                                                                                                                I've just had to rebuild my PC (calamitous mess from Microsoft with Win10/Win 11 'upgrade' - they confirmed I had to start with a new build). I have used Zoho mail for years via Mozilla Thunderbird, but now I've had to download the latest version of TBird,
                                                                                                              • Should I Use DMARC?

                                                                                                                When I configure Zoho Mail's DMARC settings, it's mandatory to fill in the RUA and RUF (Aggregate notification email address*, Forensic notification email address*) addresses. When we enter an email address in these fields, we receive reports from the
                                                                                                              • Introducing Profile Summary: Faster Candidate Insights with Zia

                                                                                                                We’re excited to launch Profile Summary, a powerful new feature in Zoho Recruit that transforms how you review candidate profiles. What used to take minutes of resume scanning can now be assessed in seconds—thanks to Zia. A Quick Example Say you’re hiring
                                                                                                              • Books API Receiving an Error that Doesn't Make Sense when Creating Credit Note - trying to use 'ignore_auto_number_generation' argument

                                                                                                                Hello, I'm working on a newly created routine and I'm getting an error that doesn't make sense when trying to create a new Credit Note. Here is my POST request. Endpoint: https://www.zohoapis.com/books/v3/creditnotes?organization_id=########## Body:     {
                                                                                                              • How to move emails to Shared Mailbox?

                                                                                                                Hello, I created a Shred Mailbox instead of using a distribution group. But I cannot move previous emails to certain shared mailbox. Is it possible move some emails from inbox to shared mailbox?
                                                                                                              • Collaboration with free plan user.

                                                                                                                Hello. Do both users need to be on Pro plan to collaborate? Or can a Pro user share a note with a free plan user with the ability to edit?
                                                                                                              • Zoho Inventory Now Supports VeriFactu for Businesses in Spain

                                                                                                                Starting from January 1, 2026, Spain requires real-time invoice reporting for all B2B transactions. From July 2026, this requirement will extend to B2C transactions as well. All reporting must be carried out through the VeriFactu to AEAT (Agencia Estatal
                                                                                                              • Connection to other user

                                                                                                                Zoho Cliq handles sharing of Custom OAuth Connections that require individual user logins.
                                                                                                              • In arattai received message can't be deleted

                                                                                                                The issue has been noticed in following: arattai app (Android) arattai app (Window) arattai web While the message posted by me may be deleted, the ones received from others can't be. The item <Delete> change to <Report> when the message is a received
                                                                                                              • Analytics Portal

                                                                                                                I have the "standard plan" and want to explore the portal option; I activated the 15-day trial but do not see the pricing for the add-on. How can I get the price under "Upgrade add-ons." Thanks Rudy
                                                                                                              • Can I filter a Lookup field to only show related records from another Lookup in Zoho CRM?

                                                                                                                In our Leads module, we have two Lookup fields: Recruitment Agency – the agency that the lead came from Recruiter – the individual contact from that agency who sent us the lead Both fields link correctly to their respective records in CRM. However, our
                                                                                                              • Zoho Books API invoice email bouncing with 'relaying-issues' error

                                                                                                                I have waited over 30 days for zoho books uk to assist with the following and i have had no replies or tickets erronously closed. The service has been terrible - very unlike zoho! So i am raising this here hoping that a community member can assist: Hello,
                                                                                                              • How do I filter contacts by account parameters?

                                                                                                                Need to filter a contact view according to account parameter, eg account type. Without this filter users are overwhelmed with irrelevant contacts. Workaround is to create a custom 'Contact Type' field but this unbearable duplicity as the information already
                                                                                                              • Zoho Writer to Zoho Sign Template Misalignment – Request for Community

                                                                                                                We are currently facing a critical issue impacting our live business operations due to a misalignment problem between Zoho Writer templates and Zoho Sign output. Issue Summary: We have an automated workflow in Zoho CRM using Deluge scripts that generates
                                                                                                              • Account blocked

                                                                                                                Yesterday I got my Zeptomail account blocked due to too many hard bounces. My account is used exclusively for sending transactional emails (eg. your order has been shipped, a form has been filled, etc) and the sudden blocking impacted hundreds of websites
                                                                                                              • Migration Tool Download

                                                                                                                Since apparently you have to ask for the migration tool to download (why?), I need the download for the migration tool for exchange servers. Please forward link, thanks.
                                                                                                              • IF Formula

                                                                                                                Hi, I'm having trouble setting up a custom formula in a field. Can you help me with it? The formula should do the following: If the created date is less or equal to 30 days the field should display a string New in pieline or Exisitng pipeline if above
                                                                                                              • Autorespond to one specific sender

                                                                                                                Is there any way to create a rule or filter that sends an automatic reply to messages from one specific email address?  I really need to set up something like a "vacation response" but only for one "received from" address.
                                                                                                              • View comprehensive logs of all actions in Custom Module History

                                                                                                                Hello everyone, We are happy to announce our new feature, Detail View in Custom Module History, which enhances visibility, control and accountability over your records. Users can now access a detailed timeline of every action that has been performed on
                                                                                                              • Track ZohoForm Conversion using Postmessage event

                                                                                                                Hi, I’ve been using a third-party lead tracking tool to capture leads from my website along with their source. Earlier, with the HubSpot form, the third-party script was able to detect the postMessage event that iframe forms typically send back to the
                                                                                                              • Email task creator when task is updated/marked complete

                                                                                                                I am looking for a way to notify the creator of a task in zoho todo when - Task is updated Task is closed Comments entered 1 and 2 are critical, and I cannot find a zoho flow to do this. There is no way that as a manager I will know when someone has completed
                                                                                                              • Email Recall Feature In Zoho Mail Which Should Also Work For Outside Organisation Members

                                                                                                                Add a feature to recall or undo sending an email within a configurable short time window (e.g., 30 seconds to 2 minutes) after hitting send, similar to Gmail’s undo send. Currently the sent email can not be recall If the recipient is not from within your
                                                                                                              • How to implement calculating average value of averaged values?

                                                                                                                Hi, I'm trying to implement a formula in my layout for a module that calculates the average of 2 averaged values, but I can't do so using the formula custom field. To calculate the 2 averaged values, I could use the formula custom field, but in the custom
                                                                                                              • Zoho Recruit update published job boards

                                                                                                                If we have a job thats already posted on several different job boards and we edit this job in zoho recruit (e.g. the description of the job), does this then automatically update this new information to all the published job boards?  If not, how does the
                                                                                                              • Narrative 14: The magic bazaar of Desk

                                                                                                                Behind the scenes of a successful ticketing system: BTS Series Narrative 14: The magic bazaar of Desk Marketplace is a centralized platform where users can discover Zoho and third-party applications that can be integrated with their Desk account to facilitate
                                                                                                              • Collections Management: #2 Late Payment Automation

                                                                                                                "Sir, I'll process the payment by evening, please don't apply any late payment charges", the customer said while arranging papers on his desk. Sanjay stood there with a tired smile. He had already visited twice that week. Payment collection was one thing.
                                                                                                              • Create a table in the layout section of modules

                                                                                                                Dear Sirs, I would like to know whether is possible to create a table under new fields in layouts section of modules. In fact in this section there are single line, multi line, pick list, multi-select, date, formula etc. but I am unable to add a table
                                                                                                              • Nimble enhancements to WhatsApp for Business integration in Zoho CRM: Enjoy context and clarity in business messaging

                                                                                                                Dear Customers, We hope you're well! WhatsApp for business is a renowned business messaging platform that takes your business closer to your customers; it gives your business the power of personalized outreach. Using the WhatsApp for Business integration
                                                                                                              • Power of Automation :: Automatic Task Status Handling for Users

                                                                                                                Hello Everyone, A custom function is a software code that can be used to automate a process and this allows you to automate a notification, call a webhook, or perform logic immediately after a workflow rule is triggered. This feature helps to automate
                                                                                                              • Question - why no way to input a 'tool description' and 'tree of 'tools'

                                                                                                                Every business is different, with different business processes. To be truly useful Zoho MCP needs to have user editable tool descriptions (or ruleset) and a 'tool tree' so that the LLM is context aware when being used. For example, the tool description
                                                                                                              • Develop Zoho Meeting as a Full Native Application (Not a Browser Wrapper)

                                                                                                                Hello Zoho Meeting Team, Hope you are doing well. We would like to suggest an important improvement regarding the Zoho Meeting desktop application. At the moment, the Zoho Meeting app feels more like a mini browser window or an iframe that loads the web
                                                                                                              • Can I create a custom function for chart of accounts?

                                                                                                                I'm trying to add a custom function that should run whenever a record in the Chart of Accounts module is edited, but on the form for creating a new function, the module dropdown does not include the chart of accounts as an option.
                                                                                                              • billing

                                                                                                                hi, I am being billed $12/year, and I can't remember why. My User ID is 691273115 Thanks for your help, --Kitty Pearl
                                                                                                              • Automatic Matching from Bank Statements / Feeds

                                                                                                                Is it possible to have transactions from a feed or bank statement automatically match when certain criteria are met? My use case, which is pretty broadly applicable, is e-commerce transactions for merchant services accounts (clearing accounts). In these
                                                                                                              • Next Page