Guide to get started with Rocket.Chat Apps Development Workshop.
- Node.js v20.18.1
- Unix-based OS (Linux, macOS, WSL2)
- Join the Workshop server workspace shared in the workshop room.
- Join the room
#challengechat
in the workshop server.
Hint: Find the room under the Directory tab in the left sidebar.
- Note down the server URL and your credentials (username and password) for the workshop server.
In this part, you'll learn how to deploy a summarization app and implement a slash command.
Install rc-apps
globally:
npm install -g @rocket.chat/apps-cli
Verify the installation:
rc-apps -v
You should see the CLI version information:
@rocket.chat/apps-cli/1.12.0 darwin-arm64 node-v20.18.1
Note: The platform information (e.g., "darwin-arm64") will differ depending on your operating system.
git clone https://github.com/RocketChat/Workshop.Apps.Development.git
cd Workshop.Apps.Development/app
Modify the following files:
-
In the
app.json
file:- Change
nameSlug
to a unique value (e.g.,ai-chat-summarizer-<yourname>
) - Generate a new UUID at uuidgenerator.net for the
id
field- Important: Do NOT use
0034268f-e49a-4113-be51-4a5ca77aeeb1
- Important: Do NOT use
- Update the
author
field with your name
- Change
-
Replace the
icon.png
file:- Delete the existing icon
- Create a new icon (recommend using AI image generation)
- You can use Pollinations.AI with your initial
- Save as
icon.png
(keep file size small)
Open /commands/SummarizeCommand.ts
and change the command
field to a unique name (e.g., <yourname>-chat-summary
).
npm install
rc-apps package
Open the file /settings/settings.ts
and modify the L12 key value and package value to [llama3-8b.local:1234](http://llama3-8b.local:1234)
.
Note: The API call is made to
http://llama3-8b.local:1234/v1/chat/completions
sollama3-8b.local
is the hostname and1234
the port.
Edit the .rcappsconfig
file with your credentials:
{
"url": "https://workspace_server_url",
"username": "your_username",
"password": "your_password"
}
Important: Use the server URL shared in the workshop room along with your personal credentials.
Deploy your app:
rc-apps deploy
Type /<yourname>-chat-summary
in the thread on the #challengechat
channel and press Enter.
The app works in a simple way. It only does three steps:
- Read the messages
- Summarize the messages (main feature)
- Execute the add-ons
In the Marketplace
, you will be able to see these settings. For every add-ons you check, the app will create corresponding prompt and execute an LLM call. In this case, instead of just summarizing the message (step 2), the app will also output what are the summaries for each participant.
- Navigate to Administration (kebab menu) → Marketplace
- Select the Private Apps tab
- Find and click on your deployed app
- Go to the Settings tab
- In the Summary add-ons section, select any one add-on
- Click Save
- Test your command again with
/<yourname>-chat-summary
in the#challengechat
channels' thread
For curious minds ✨, the prompt for the add-on can be found in the
/constants/prompt.ts
file. You can modify the prompt to suit your needs.
- Verify that you see the chat summary plus the selected add-on functionality
- Take a screenshot of your successful result
- Share your screenshot in the workshop channel along with your email address to receive an invitation to the Workshop Meetup
Basically, this code only do
if ("assigned-tasks" is checked) {
// 1. Create assigned task prompt
// 2. Execute LLM call
// 3. Show message to user
}
So, if the question is "can I add my own add-ons"? Obviously yes, you can just
- Add another block of if statement,
- Create corresponding prompt, and
- Execute the LLM call (same code everywhere)
HOWEVER !! Don't forget to add your add-ons in the settings here to make it appear in the settings.
To deepen your understanding, explore the Rocket.Chat Apps documentation and most importantly, have fun! understading the App code you just deployed and how to improve it.