npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

n8n-nodes-jeenee-ui

v0.1.1

Published

Build Telegram UI components using DSL for Telegram bots

Readme

n8n-nodes-jeenee-ui

This n8n node helps you build Telegram bot UI using Jeenee DSL (Domain Specific Language). It provides a visual interface to create interactive UI components for Telegram bots.

Features

  • Visual UI Builder - Create complex Telegram bot UI through n8n's GUI using Jeenee DSL
  • Full DSL Support - All Jeenee DSL components available: buttons, selects, file uploads, rich choices, etc.
  • Type-Safe - Built with TypeScript for reliability
  • Easy Integration - Works seamlessly with Telegram bots powered by Jeenee

Installation

Community Node Installation

  1. Open n8n
  2. Go to SettingsCommunity Nodes
  3. Click Install and enter: n8n-nodes-jeenee-ui
  4. Restart n8n

Manual Installation

npm install n8n-nodes-jeenee-ui

Supported Components

Interactive Components

  • Buttons - Create callback and URL buttons
  • Select Menu - Single or multi-select dropdowns
  • Checkboxes - Multiple checkboxes with confirm button
  • Text Input - Prompt users to enter text
  • File Upload - Allow single or multiple file uploads
  • Rich Choices - Cards with rich content and buttons
  • Image Choices - Choose from images with buttons

Display Components

  • Note - Display informational text
  • Progress - Show processing indicators
  • Image - Display images with captions

Usage Example

Simple Button Example

{
  "session_id": "unique-session-123",
  "message": "Choose an action:",
  "update": "new",
  "components": [
    {
      "kind": "buttons",
      "items": [
        {
          "label": "Start",
          "custom_id": "btn:start"
        },
        {
          "label": "Help",
          "custom_id": "btn:help"
        }
      ]
    }
  ]
}

File Upload Example

{
  "session_id": "session-456",
  "message": "Upload your homework",
  "components": [
    {
      "kind": "file_upload",
      "custom_id": "upload_homework",
      "button_label": "📎 Upload Files",
      "multiple": true,
      "min_files": 1,
      "max_files": 5,
      "max_size_mb": 50
    }
  ]
}

Select Menu Example

{
  "session_id": "session-789",
  "message": "Select your course:",
  "components": [
    {
      "kind": "select",
      "custom_id": "course_select",
      "options": [
        {"label": "Math", "value": "math"},
        {"label": "Physics", "value": "physics"},
        {"label": "Chemistry", "value": "chemistry"}
      ]
    }
  ]
}

Integration with Telegram Bot

This node is designed to work with a Telegram bot that understands the Jeenee DSL format. The bot should:

  1. Receive the JSON output from this node via webhook
  2. Parse the Jeenee DSL components
  3. Render them as Telegram messages with inline keyboards
  4. Handle user interactions (button clicks, file uploads, etc.)
  5. Send results back to your n8n workflow

Component Reference

Buttons

  • kind: "buttons"
  • items[] - Array of button objects
    • label - Button text
    • custom_id - Callback data
    • url - Link URL (for URL buttons)
    • emoji - Optional emoji

Select Menu

  • kind: "select"
  • custom_id - Unique identifier
  • options[] - Array of options
    • label - Display text
    • value - Value to send
    • description - Optional description
  • max_values - For multi-select (default: 1)
  • placeholder - Placeholder text

Text Input

  • kind: "text_edit"
  • custom_id - Unique identifier
  • title - Input title
  • save_label - Button text
  • placeholder - Placeholder text
  • max_length - Maximum characters

File Upload

  • kind: "file_upload"
  • custom_id - Unique identifier
  • button_label - Button text
  • multiple - Allow multiple files (boolean)
  • min_files - Minimum files required
  • max_files - Maximum files allowed
  • max_size_mb - File size limit in MB

Rich Choices

  • kind: "rich_choices2"
  • items[] - Array of rich choice items
    • custom_id - Callback identifier
    • label - Button label
    • emoji - Optional emoji
    • blocks[] - Content blocks
      • role - Optional role/title
      • content - Text content

Image Choices

  • kind: "image_choices"
  • custom_id - Unique identifier
  • items[] - Array of image options
    • image_url - Image URL
    • label - Caption
    • value - Value to send

Checkboxes

  • kind: "checkboxes"
  • custom_id - Unique identifier
  • options[] - Array of checkbox options
    • label - Checkbox text
    • value - Value to send

Note

  • kind: "note"
  • text - Text to display

Progress

  • kind: "progress"
  • text - Progress message (default: "Processing...")

Image

  • kind: "image"
  • image_url - Image URL
  • label - Optional caption

Resources

License

MIT

Support

For issues and questions, please open an issue on GitHub.