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

nepdai

v2.0.3

Published

Nepdai CLI - A command line interface for the Nepdai programming language

Readme

नेपदाइ

A Programming Language with Nepali Keywords

License: MIT TypeScript Node.js pnpm


About NepDai

NepDai is a fun Nepali programming language inspired by Bhailang and adds a unique Nepali twist to the playful coding experience. The language combines familiar programming concepts with Nepali terminology, creating a unique and culturally relevant coding experience.

"Namaste Dai" - Every NepDai program begins with this traditional Nepali greeting!

npm i -g nepdai

📖 Language Keywords

| NepDai | English | Description | |--------|---------|-------------| | solti | let/var | Variable declaration | | yadi (condition) bhane | if | Conditional statement | | natra | else | Else clause | | jaba samma | while | While loop | | vai vayo rokki | break | Break statement | | aghi badh vai | continue | Continue statement | | lekh | print | Print to console | | thik | true | Boolean true | | galat | false | Boolean false | | khali | null | Null value |

Namaste Dai
  lekh "Namaste Dai";
nepdai test.nepdai
 Namaste Dai
 tokens <file>         Show tokens for a Nepdai program
 ast <file>            Show AST for a Nepdai program
 repl                  Start Nepdai REPL
// Error: If anything is present here, greeting above all
Namaste Dai
  // code here, and no semicolon after greeting
Namaste Dai

  lekh "Hello, World!";

  solti name = "Nepal";
  lekh "Country:", name;

  solti a = 5;
  solti b = 10;
  lekh "Sum:", a + b;
Namaste Dai
  solti a = 1;
  solti b = "sahil";
  a = a++;
  b = "sahilverse";
  c = a + 10;
Namaste Dai
  solti string = "string";
  solti number = 10;
  solti float = 10.2; // Also a number
  solti true = thik; 
  solti false = galat;
  solti null = khali; 
Namaste Dai

  // Array examples in Nepdai
  solti numbers = [1, 2, 3, 4, 5];
  solti names = ["Ram", "Shyam", "Gita"];
  solti mixed = [1, "hello", thik, khali];

  lekh "Numbers:", numbers;
  lekh "Names:", names;
  lekh "Mixed array:", mixed;

  // Empty array
  solti empty = [];
  lekh "Empty array:", empty;

  // Other Operations on Arrays are not supported right now
 

| Operator | Description | Example | Result | |----------|-------------|---------|--------| | + | Addition | 5 + 3 | 8 | | - | Subtraction | 5 - 3 | 2 | | * | Multiplication | 5 * 3 | 15 | | / | Division | 6 / 3 | 2 | | % | Modulo (Remainder) | 7 % 3 | 1 | | ** | Exponentiation | 2 ** 3 | 8 |

Namaste Dai
  solti a = 10;
  solti b = 3;
  
  lekh "Addition:", a + b;        // 13
  lekh "Subtraction:", a - b;     // 7
  lekh "Multiplication:", a * b;  // 30
  lekh "Division:", a / b;        // 3.333...
  lekh "Modulo:", a % b;          // 1
  lekh "Power:", a ** b;          // 1000

| Operator | Description | Example | Result | |----------|-------------|---------|--------| | == | Equal to | 5 == 5 | thik | | != | Not equal to | 5 != 3 | thik | | > | Greater than | 5 > 3 | thik | | < | Less than | 3 < 5 | thik | | >= | Greater than or equal | 5 >= 5 | thik | | <= | Less than or equal | 3 <= 5 | thik |

Namaste Dai
  solti age = 25;
  
  lekh "Is adult:", age >= 18;     // thik
  lekh "Is teenager:", age < 20;   // galat
  lekh "Exact age:", age == 25;    // thik

| Operator | Description | Example | Result | |----------|-------------|---------|--------| | && | Logical AND | thik && galat | galat | | \|\| | Logical OR | thik \|\| galat | thik | | ! | Logical NOT | !thik | galat |

Namaste Dai
  solti age = 25;
  solti hasLicense = thik;
  
  yadi (age >= 18 && hasLicense) bhane {
      lekh "Can drive!";
  }
  
  yadi (age < 16 || !hasLicense) bhane {
      lekh "Cannot drive!";
  }

| Operator | Description | Example | Equivalent | |----------|-------------|---------|------------| | = | Simple assignment | a = 5 | a = 5 | | += | Add and assign | a += 3 | a = a + 3 | | -= | Subtract and assign | a -= 2 | a = a - 2 | | *= | Multiply and assign | a *= 2 | a = a * 2 | | /= | Divide and assign | a /= 2 | a = a / 2 |

Namaste Dai
  solti score = 100;
  
  score += 50;    // score is now 150
  score -= 25;    // score is now 125
  score *= 2;     // score is now 250
  score /= 5;     // score is now 50
  
  lekh "Final score:", score;

| Operator | Description | Example | Effect | |----------|-------------|---------|--------| | ++ | Increment (postfix) | a++ | Increase a by 1 | | -- | Decrement (postfix) | a-- | Decrease a by 1 |

Namaste Dai
  solti counter = 0;
  
  lekh "Initial:", counter;  // 0
  counter++;
  lekh "After increment:", counter;  // 1
  counter--;
  lekh "After decrement:", counter;  // 0
Namaste Dai
  solti firstName = "Ram";
  solti lastName = "Sharma";
  solti fullName = firstName + " " + lastName;
  
  lekh "Full name:", fullName;  // Ram Sharma
  
  // Mixing strings and numbers
  solti age = 25;
  solti message = "I am " + age + " years old";
  lekh message;  // I am 25 years old
  1. ! (Logical NOT), - (Unary minus)
  2. ** (Exponentiation)
  3. *, /, % (Multiplication, Division, Modulo)
  4. +, - (Addition, Subtraction)
  5. <, <=, >, >= (Comparison)
  6. ==, != (Equality)
  7. && (Logical AND)
  8. || (Logical OR)
  9. =, +=, -=, *=, /= (Assignment)
Namaste Dai
  solti result = 2 + 3 * 4;     // 14 (not 20)
  solti result2 = (2 + 3) * 4;  // 20 (parentheses change order)
  
  lekh "Result 1:", result;   // 14
  lekh "Result 2:", result2;  // 20
Namaste Dai

// Conditional statements in Nepdai
solti age = 25;
solti name = "Ram";

lekh "Name:", name;
lekh "Age:", age;

yadi (age >= 18) bhane {
    lekh name, "is an adult";
} natra {
    lekh name, "is a minor";
}

// Nested conditionals
solti score = 85;

yadi (score >= 90) bhane {
    lekh "Grade: A";
} natra yadi (score >= 80) bhane {
    lekh "Grade: B";
} natra yadi (score >= 70) bhane {
    lekh "Grade: C";
} natra {
    lekh "Grade: F";
}
Namaste Dai

// While loop with break and continue
solti i = 1;

lekh "Counting with break and continue:";

jaba samma (i <= 10) {
    yadi (i == 5) bhane {
        lekh "Skipping", i;
        i++;
        aghi badh vai;
    }
    
    yadi (i == 8) bhane {
        lekh "Breaking at", i;
        vai vayo rokki;
    }
    
    lekh "Number:", i;
    i++;
}

lekh "Loop finished!";

Crafted in Sahilverse for the Nepali programming community

धन्यवाद (Thank you) for using NepDai! 🙏