Skip to main content

JugaadLang 🇮🇳

Please🙏 star ⭐ the repo 🤝❤

Code karo Hindi mein, Duniya hila do! 🚀

JugaadLang Logo

JugaadLang is a modern, beginner-friendly, fun programming language inspired by Python, designed for Indian developers. It replaces Python's core keywords with English-spelled Hindi (Roman Hindi) terms and features custom funny error diagnostic outputs, a built-in package manager, and standard libraries.

JugaadLang transpiles directly to native Python AST, meaning it runs with zero runtime performance overhead and provides full compatibility with the entire Python ecosystem.

JugaadLang — Code karo Hindi mein  - Code karo Hindi mein, Duniya hila do 🇮🇳 | Product Hunt


JugaadLang CI JugaadLang Release CodeQL

VS Code Extension PR Create Automate Message Pull Request Labeler Issue Create Automate Message Dependency Graph Dependabot Updates

Windows Linux macOS Python Open Source

Table of Contents

  1. Core Philosophy
  2. Installation
  3. Language Keywords Reference
  4. Example Usage
  5. Built-in Fun Functions
  6. Ecosystem & Tooling
  7. Standard Library (Stdlib)
  8. Funny Error System
  9. Automated Testing

Core Philosophy

  1. Python simplicity: Clear, indentation-based block syntax.
  2. Hindi-English keywords: Express logic in the language you think in.
  3. Humorous diagnostics: Error messages that make you laugh, not crash.
  4. Zero-overhead transpilation: Compiles to Python bytecode and executes in the native Python VM.

Installation

Get started with JugaadLang in just a few minutes.

Requirements

Before installing JugaadLang, make sure you have:

  • Python 3.10 or later
  • pip package manager

Check your Python version:

python --version

or

python3 --version

🪟 Windows

Install

pip install jugaadlang

Verify Installation

jug --version

Expected output:

JugaadLang v1.0.2 🇮🇳

Run Your First Program

Create a file named hello.jug

bolo("Namaste Duniya 🚀")

Run it:

jug run hello.jug

Output:

Namaste Duniya 🚀

🐧 Linux

Install

Option A: Using Homebrew (Recommended)

brew tap jugaadlang/tap
brew install jugaadlang

Option B: Using pip

pip3 install jugaadlang

Verify Installation

jug --version

Run

jug run hello.jug

🍎 macOS

Install

Option A: Using Homebrew (Recommended)

brew tap jugaadlang/tap
brew install jugaadlang

Option B: Using pip

pip3 install jugaadlang

Verify Installation

jug --version

Run

jug run hello.jug

🚀 Install Latest Development Version

Install directly from GitHub:

pip install git+https://github.com/JugaadLang/jugaadlang.git

Verify:

jug --version

📦 Package Manager

JugaadLang includes a built-in package manager.

Install Package

jug install chai

Search Package

jug search chai

Update Packages

jug update

Remove Package

jug remove chai

⚡ Interactive REPL

Start the JugaadLang shell:

jug repl

Example:

>>> bolo("Namaste")
Namaste

🔧 Common Commands

Command Description
jug run file.jug Run a program
jug compile file.jug Transpile to Python
jug repl Open REPL
jug install pkg Install package
jug update pkg Update a package
jug search pkg Search package
jug remove pkg Remove package
jug doctor Diagnose installation
jug --version Show version
jug --help Show help

🎉 Success


Language Keywords Reference

Python Keyword JugaadLang Hindi Literal Meaning
print bolo Say / Speak
input poochho Ask
if agar If
elif shayad Maybe / Perhaps
else warna Otherwise
for ghumo Iterate / Roam
while jabtak Until / As long as
def banao Create / Make
return wapas Return / Back
class ustad Master / Teacher
self khud Self
import lao Import / Bring
from se From
break rukja Stop!
continue chalte_raho Keep going
try koshish Try / Attempt
except gadbad Problem / Exception
finally aakhir_me In the end
raise udao Throw / Raise
True sahi Correct / True
False galat Wrong / False
None kuch_nahi Nothing / None
and aur And
or ya Or
not nahi Not
async tez Fast / Async
await intezaar Wait / Await
yield baanto Distribute / Yield
pass theek_hai Fine / Pass
global sabka Everyone's / Global
lambda chota_funkshan Little function
in mein In
is hai Is
match agar_match Pattern match subject block
case kaand Case block in pattern match

Standard Built-in Function Mappings

JugaadLang supports Roman Hindi wrappers for standard Python built-in functions. They map directly to Python's built-ins:

Python Built-in JugaadLang Hindi Translation Description
abs maan Value / Magnitude Absolute value of a number
all sab All True if all items in iterable are true
any koi_bhi Any / Anyone True if any item in iterable is true
bin binary Binary Binary representation of an integer
bool satyata Truth value Evaluates boolean value
callable bulaane_yogya Callable Checks if object is callable
chr akshar Character Returns character from Unicode point
delattr gun_hatao Remove attribute Deletes attribute from object
dict kosh Dictionary / Lexicon Returns a dictionary (map)
divmod bhag_shesh Quotient-Remainder Returns (quotient, remainder)
enumerate ginti Counting / Enumerate Returns indexed list generator
exec chalao Run / Execute Executes dynamic Python code
filter chhano Filter Filters elements through a function
getattr gun_lao Get attribute Returns attribute value of object
hasattr gun_hai Has attribute Checks if attribute exists on object
help madad Help Starts built-in help text utility
id pehchan Identity / ID Returns unique identity of object
int purnank Integer Converts value to standard integer
isinstance prakar_hai Is type of Checks if object is instance of class
issubclass subclass_hai Is subclass of Checks if class is subclass of another
len lambaee Length Returns length of a sequence
list suchi List / Sequence Creates/converts to list
max adhiktam Maximum Returns largest item
min nyuntam Minimum Returns smallest item
next agla Next Retrieves next item from iterator
object vastu Object Base class object creator
open kholo Open Opens a file handle
pow ghat Power / Exponent Raises number to power (x ** y)
reversed ulta Reversed Returns reversed order iterator
setattr gun_badlo Change attribute Modifies attribute value of object
slice tukda Slice Returns slice object for indexes
sorted kramwar Sorted / Sequential Returns sorted copy of iterable
str shabd String / Word Converts object to string
sum yog Sum / Addition Returns sum of items in iterable
type prakar Type / Kind Returns the type of an object

Example Usage

1. Simple Control Flow (hello.jug)

# Ask for user name
poochho naam

agar naam == "Sumangal":
    bolo("Legend mil gaya! 😎")
warna:
    bolo("Namaste " + naam)

Run it:

jug run hello.jug

2. Classes & Functions (oop.jug)

ustad Developer:
    banao shuru(khud, naam, language):
        khud.naam = naam
        khud.language = language

    banao batao(khud):
        bolo(khud.naam + " code likh raha hai " + khud.language + " mein!")

dev = Developer("Sumangal", "JugaadLang")
dev.batao()

### 3. Pattern Matching (`match.jug`)
```jugaadlang
banao test_match(x):
    agar_match x:
        kaand sahi:
            wapas "boolean true"
        kaand 1:
            wapas "one"
        kaand [a, b]:
            wapas "sequence of " + str(a) + " and " + str(b)
        kaand _:
            wapas "something else"

bolo(test_match(1))
bolo(test_match(sahi))
bolo(test_match([10, 20]))

---

## Built-in Fun Functions
Enjoy several custom interactive built-ins directly at runtime:
* `chai()`: Prints a warm cup of ASCII tea (`☕ Chai pi lo.`)
* `himmat()`: Prints a motivational programming boost (`🔥 Hidden feature detected.`)
* `ghaas_chhoo()`: Gently reminds you to go touch some grass (`🌱 Bahar ghoom aao.`)
* `bachao()`: Starts a mock search for help (`🚨 StackOverflow search shuru.`)
* `fortune()`: Tells a programmer's fortune (`🔮 Bug line 347 mein ho sakta hai.`)
* `jugaad()`: Gives a random hacking/debugging tip.
* `nazar()`: Blocks bad vibes and bugs (`🧿 Nazar suraksha kavach active! Bad vibes/bugs blocked. 🧿`).
* `ashirwad()`: Boosts runtime success rate with elder blessings (`👵 Sadbhavna aur aashirwad active! Success rate boosted to 100%! 👵`).
* `dhanya_waad()`: Expresses polite gratitude (`🙏 Dhanyawaad! Code chalaane ke liye aapka aabhari hoon. Keep coding! 🙏`).
* `bhagwan_bhala_kare()`: Prays for errors to disappear (`📿 Hey bhagwan, iss error ko apne aap thik kar do! Please! 📿`).
* `paisa_wasool()`: Reminds you that JugaadLang is free (`💸 Paisa Wasool! JugaadLang is 100% free and open-source, your money is safe! 💸`).
* `bas_kar_bhai()`: Advises to stop coding and sleep (`🛑 Bas kar bhai! Kitna code likhega? So ja thodi der. 🛑`).
* `chilla_mat()`: Calms you down during debugging (`🤫 Chilla mat, deep breath le aur debug kar. 🤫`).
* `kundli()`: Performs astrological diagnostics on your code to see if Shani or Rahu are transit-blocking your variables/loops.

---

## Ecosystem & Tooling

### CLI Runner
* **Run a file:** `jug run main.jug` (supports script argument passing like `jug run main.jug arg1 arg2`)
* **Check syntax:** `jug check main.jug`
* **Static type-checking:** `jug typecheck main.jug` (performs static analysis using `mypy` behind the scenes)
* **Transpile to Python source:** `jug compile main.jug -o main.py`
* **Create a boilerplate project:** `jug new my_project`

### Interactive REPL
Launch a beautiful interactive terminal shell:
```bash
jug repl

Features auto-completion for all keywords, live syntax highlighting, input history, and double-Enter multiline block detection.

Package Manager

Integrate pip packages or custom bundles:

  • Install: jug install web (installs Flask, requests, httpx, and aiohttp)
  • Remove: jug remove web
  • Update: jug update web
  • Search: jug search query

VS Code Extension

Launch the extension from vscode_extension/. Features full syntax highlighting for .jug files, 25+ snippets, hovered keyword documentation in Hindi, and a status bar icon.


Standard Library (Stdlib)

Import standard libraries using lao (e.g. lao ganit):

  1. ganit: Hindi wrappers for arithmetic/geometry (e.g. ganit.sin, ganit.pi, ganit.sqrt).
  2. web: HTTP request wrappers (web.get, web.post) and JugaadWeb framework with @web.agar_route("/") and web.chalao().
  3. faili: Clean file system API (faili.padho, faili.likho, faili.jodo).
  4. json: Native parser (json.banao_string, json.banao_object).
  5. samay: DateTime operations (samay.abhibhi(), samay.aaj(), samay.soja()).
  6. tantra: Access system variables (tantra.argv, tantra.exit(), tantra.platform).
  7. crypto: Hash encryption (crypto.sha256, crypto.base64_encode).
  8. database: SQLite ORM (JugaadORM) backing tables with bachao() and filter().
  9. Fun Libraries: chai, jokes, motivation, fortune, memes, catfacts.

Funny Error System

Tired of dry Tracebacks? JugaadLang features humorous Hindi exceptions:

SyntaxError

🤦 Bhai kya likh diya?
Faili: hello.jug Line 3, Col 12

  agar x ==
            ^

Error Details: Expected value.
Keyboard strike par hai kya?

NameError

🕵️ Variable 'x' dhundte dhundte thak gaya.
Faili: hello.jug Line 12

  > bolo(x)

Kya gadbad hai?
  'x' mila hi nahi.

Possible reasons:
  • Typo kiya hai
  • Variable declare karna bhool gaye
  • Universe collapse ho gaya

DivisionByZero

💀 Zero se divide?
Faili: hello.jug Line 5

Kya gadbad hai?
  Newton bhi confuse ho gaya. Maths seekh lo thoda.

Developer Tooling & Testing

For local development and testing, we provide a unified helper script run.sh to automate tasks:

# Clean previous builds, run tests, and perform editable installation
./run.sh all

# Run test suite dynamically under the active Python environment
./run.sh test

# Clean build artifacts and package wheels/tarballs
./run.sh build

# Install JugaadLang locally in editable mode with all development dependencies
./run.sh install

All test cases are written using pytest inside the tests/ directory.

Release files for jugaadlang 1.1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jugaadlang 1.1.6
File Size Uploaded
jugaadlang-1.1.6.tar.gz 83.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jugaadlang 1.1.6
File Interpreter ABI Platform
jugaadlang-1.1.6-py3-none-any.whl Python 3 none any Details

Total release size: 154.9 kB

Release files / jugaadlang-1.1.6.tar.gz

Download URL jugaadlang-1.1.6.tar.gz
Size 83.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a720d7293af88be72660f35a5230976fed6d48b44f0fb52ee4bed750185f7960
BLAKE2b-256 checksum
How to use checksums
5f758d2762491bdc33f5cc11d357c4b5bcc64e24ea54b1cd42ea31a09375f406
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / jugaadlang-1.1.6-py3-none-any.whl

Download URL jugaadlang-1.1.6-py3-none-any.whl
Size 71.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
aa854b5e6f1f8dfdffba2fd3c54f83f15f952b9aeb5a7e7a378bfae765c2ed59
BLAKE2b-256 checksum
How to use checksums
84d9346a7413b67b4bf2f6df47b6babee35c8cf1d9c557ff5625297a9a7edf68
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

1.1.6 This release

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page