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.
- 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
Recent Topics
Ability to Set Text Direction for Individual Cells in Zoho Sheet
Dear Zoho Sheet Team, We hope you are doing well. We would like to request an enhancement in Zoho Sheet that allows users to set the text direction (right-to-left or left-to-right) for individual cells, similar to what is available in Google Sheets. Use
New in CRM: Dynamic filters for lookup fields
Last modified on Oct 28, 2024: This feature was initially available only through Early Access upon request. It is now available to all users across all data centers, except for the IN DC. Users in the IN DC can temporarily request access using this form
Warehouse fast processing
Hey guys, would anyone be interested in something like the attached image ? If there's any interest I'd be willing to develop it further for others to use, it's much faster than using Zohos native solutions, it can part pack, pack in full, part ship,
Automatic Invoice Number generation for createRecord
Hello, while testing some custom Buttons in my Zoho Books application, I noticed that I get an error that previously did not occur. After some further digging I found that the automatic transaction numbering of invoices no longer work in my organization.
Can I create a CODE 128 custom field for my items in Zoho Inventory and then use it for generating Sales Orders?
Can anyone helps me, I don't want to use the SKU code for scanning my products. Because all my products have a CODE-128 label attached.
Start/Stop Timmer in Chrome Extension
The chrome extension is great and allows you to do allot however one of the most common things employees working on projects need to do is track their time. Having an easy start/stop timer to track time would be great.
Invalid collection string
I haven't changed anything in one of my functions. I'm trying to run it manually and suddenly "Invalid collection string" appears. My code has 6 lines and the error says that the error is on 7th line. Why? What does this error mean? Nothing has been changed
Zoho Directory 2025: New Features | Security Enhancements | Enriched UI
Hello everyone, Greetings from the Zoho Directory team! 2025 has been a highly successful year for Zoho Directory. We are delighted to introduce a fresh set of features, an enriched UI, and major product enhancements. These updates aim to deliver a smoother
Bulk Schedule for Posting TikTok
Hallo, We have a client whose business is a social media agency specifically TikTok. Currently they are handling 30 TikTok accounts from. I think zoho Social can handle it with Agency License + with Add on 10 Brands. Their concern is related to posting
zoho people 5 report
How do I customize my report in Zoho People Report? I understand that I can get the results of multi-table queries through SQL join statements, but I don't know the relationship between each table. I tried to create a report using Attendance User Report
Leave Report Emailed Weekly
I am wondering if someone knows how to have a report generated either weekly or monthly or both for department heads and ownership of upcoming employee leave. For instance, it would be nice to get an emailed report on Friday for the upcoming week of who
Zoho Flow Decision Continuing Despite Not Meeting Conditions
I have a picklist field called Lead Status in the leads module, with the following lead Statuses: New Lead Attempted Contact - 1 Attempted Contact - 2 Attempted Contact - 3 Attempted Contact - 4 Attempted Contact - 5 Attempted Contact - 6 Attempted Contact
Tip #55- Accessibility Controls in Zoho Assist: Exploring Vision Settings- 'Insider Insights'
As we approach the end of the year, it’s a good moment to reflect on how we can make our tools more inclusive and easier to use for everyone. Remote support often involves long hours in front of screens, varied lighting conditions, and users with different
Zoho Recruit Slow and Freezing on all screens
We have had an issue with Zoho Recruit for weeks being extremely slow and at times freezing. We have 100 mega internet, and I went into each computer and updated the virtual memory so there is more available. Also restarted all computers daily. Still having the issues. Almost unable to work.
Credit Management: #2 Configuring Right Payment Terms for Credit Control
Think about the last time you ordered something online and saw that little note at the checkout, "Pay on Delivery" or "Pay later". It's simple, but it actually sets the tone. As a business owner, you know exactly when payment is expected. Now, imagine
Dependent (Conditional) Fields in Zoho Bookings Forms
Hello Zoho Bookings Team, Greetings, We would like to request the ability to create dependent (conditional) fields in Zoho Bookings registration forms. Current Limitation: There is currently no way to make one field’s available options depend on the value
Bug Report: Search fails to find existing notes after Evernote import
Hello, I recently migrated from Evernote (~2600 notes across 23 notebooks), but the search functionality is currently broken. The Issue: I can manually browse to a specific note and see it exists. However, when I type the exact or partial title of that
Marketing Tip #13: Win repeat customers with post-purchase emails
The relationship with your customer doesn’t end after the sale; that’s when it begins. A thoughtful post-purchase message shows customers you appreciate them, keeps your brand top of mind, and can even lead to another sale. You can thank them, ask for
Zoho Form
I have problem with Zoho Form. One of form i don't received the PDF version. Others okay except this one. W904533
Create & Update Zoho Vault Passwords via Zoho Flow
Hi Zoho Flow / Zoho Vault Team, We’d like to request an enhancement to the Zoho Vault integration in Zoho Flow. Current Limitation: At the moment, Zoho Flow supports only the following selected Zoho Vault actions, such as: Fetch passwords, Share passwords
Credit Note for Shipped and Fatoora pushed invoices
We have shipped a Sales Order and created an Invoice. The Invoice is also pushed to Fatoora Now we need to create a credit note for the invoice When we try it, it says we need to create a Sales Return in the Zoho Books, we have already created a Sales
Custom Related List Inside Zoho Books
Hello, We can create the Related list inside the zoho books by the deluge code, I am sharing the reference code Please have a look may be it will help you. //..........Get Org Details organizationID = organization.get("organization_id"); Recordid = cm_g_a_data.get("module_record_id");
Features, Feedback and Votes
We’re launching the Feedback Forum for our customers. This is 'THE' place where you can add everything you’d like to see in Zoho Books. If you don't find the specific feature you need, simply add it so others can also vote for it. While we cannot promise
Payment system for donations management
I manage an organization where we receive donations from payers. Hence, there is no need to first create invoices and then create payments received against the invoices. What are the recommended best practices to do this in ZohoBooks?
There Might Be A Glitch in Determining If A String Represents A URL
I suspect there might be a glitch in determining if a string represents a URL or not. For example, I cannot embed the following URL. Perhaps the exclamation mark or parentheses are the culprit? https://en.wikipedia.org/wiki/How_the_Grinch_Stole_Chri
Customer Management: #4 Enhance Customer Journey
When Neha started DefineOps, a growing IT support and consulting firm, most of her work was straightforward. A client would sign up for a free version, decide whether the service works for them, and then either continue or discontinue. Billing was simple,
Android app sync problem - multiple devices have same problem
Hello, I am having a problem with synchronization in the Android app. When I create a drawing, the data does not sync correctly—only a blank note is created without the drawing. I tested this on multiple devices, including phones and tablets, and the
Marketing Tip #1: Optimize item titles for SEO
Your item title is the first thing both Google and shoppers notice. Instead of a generic “Leather Bag,” go for something detailed like “Handcrafted Leather Laptop Bag – Durable & Stylish.” This helps your items rank better in search results and instantly
Territory Assignment Issues (Lead to Account + Contact)
1. Lead → Account & Contact Territory Assignment on Conversion A Lead is automatically assigned one or more territories using a workflow and Lead Assignment Rules. This works as expected, and we are able to assign multiple territories to a Lead automatically.
Marketer's Space: Proven tips to improve open rates – Part II
Hello Marketers! Welcome back to another post in Marketer's Space! We're continuing from where we left off a fortnight ago. We ended the previous post discussing the subject line, and we'll continue from there. Let's dive right in. Pre-header Pre-header
SQL Table slowed to a crawl
Hi all - I seem to have noticed an update. Now whenever I am typing in the script field for the SQL tables there is a huge delay and it is all very slow. This has never been the case for me in over 5 years of using Analytics - I really hope it's fixed
Deluge Events/search API works in user environment but not in sandbox – why?
I am creating an Extension for Zoho CRM using Zoho Sigma Platform I’m using the following Deluge code to search Events in Zoho CRM based on Start_DateTime: criteria = "(Start_DateTime:greater_than:2025-12-20T00:00:00+00:00)"; url = "crm/v8/Events/search?criteria="
Ensure Consistent Service Delivery with Comprehensive Job Sheets
We are elated to announce that one of the most requested features is now live: Job Sheets. They are customizable, reusable forms that serve as a checklist for the services that technicians need to carry out and as a tool for data collection. While on
What are Zoho Meeting capabilities included in Zoho Workplace Standard?
I am evaluating using Zoho Meeting for my organization, but it is not clear what Zoho Meeting capabilities are already included in Zoho Workplace Standard. - Are meeting recordings included in Workplace Standard? - Can we invite external meeting participants
How can I get the participant list of a reoccurring meeting afterwards?
I'm trying to use the Meeting Participant Report from the API docs but when I call it on a reoccurring meeting it returns that there are no participants because it thinks I'm talking about the meeting in the future. Is there a way to use webhooks or some
Function #50: Send Mass emails to your customers
Hello everyone, and welcome back to our series! We have reached a milestone of 50 Functions, which means that we have automated 50 different tasks in Zoho Books. Every Friday, we have shared a nifty function aimed at either automating a task or streamlining
Full Hebrew Language Support for Client-Side Zoho Assist Interface
Dear Zoho Assist Team, We would like to request an enhancement to Zoho Assist's client-side interface to support full Hebrew language customization, including all popups, notifications, and session-related messages. Current Limitation The Join page allows
Add Hebrew & RTL Support to Feedback Widget
Hello Zoho Desk Team, How are you? We are using Zoho Desk and would like to utilize the Feedback Widget. While Zoho Desk itself supports Hebrew and RTL, the Feedback Widget unfortunately does not. We kindly request that Hebrew and full RTL support be
Merge Tickets Directly from Contact Page in Zoho Desk
Dear Zoho Desk Support Team, We are writing to request a new feature that would allow users to easily merge tickets directly from the contact page in Zoho Desk. Currently, the only option to merge tickets is from the Tickets list view page, which can
Different languages for users
Hello, Do you plan to enable individual users to select their languages for interface? Currently language can be changed for everyone - it looks like a settings for a whole portal, which is not good when you are working internationally. Best regards,
Next Page