# .meow β The Feline-Friendly Esoteric Programming Language
[](https://python.org)
[](LICENSE)
> Because programming should be fun, cats are chaotic, and you deserve to write code that goes meow!
## What is MeowLang?
MeowLang (.meow) is a whimsical esoteric programming language where every line of code sounds like a cat. Inspired by the chaos of esolangs and the elegance of felines, .meow lets you vibe code using cat noises.
## Quick Start
### Installation
```bash
# Clone the repository
git clone https://github.com/jaytirthjoshi/meow.git
cd meow
# Run a .meow program
python meow_interpreter.py examples/hello_world.meow
```
### Your First .meow Program
Create a file called `hello.meow`:
```meow
πΎ Hello World in .meow πΎ
meow
meow
meow
purr
hiss
purr
scratch
purr
```
Run it:
```bash
python meow_interpreter.py hello.meow
```
Output:
```
3
2
0
```
## Commands Reference
| Command | Action | Example |
|---------|--------|---------|
| `meow` | Increment memory value by 1 | `meow` β memory += 1 |
| `hiss` | Decrement memory value by 1 | `hiss` β memory -= 1 |
| `purr` | Print the current memory value | `purr` β prints memory |
| `meowt "text"` | Print custom text output | `meowt "Hello!"` β prints Hello! |
| `nap` | Do nothing (no-op) | `nap` β does nothing |
| `scratch` | Reset memory value to 0 | `scratch` β memory = 0 |
| `lick` | Double the current memory value | `lick` β memory *= 2 |
| `zoomies` | Square the memory value | `zoomies` β memory = memoryΒ² |
| `yowl` | Begin a loop (while memory != 0) | `yowl` β loop start |
| `paw` | End a loop | `paw` β loop end |
| `sleep` | Sleep for memory value milliseconds | `sleep` β pause execution |
| `πΎ` | Comment/decoration (ignored) | `πΎ comment πΎ` |
| `mew` | Take user input and set memory to that value | `mew` β memory = user input |
| `pounce <line_number>` | Jump to the specified line number (1-based) | `pounce 5` |
| `knead` | Add current and next cell, store in current | `knead` β memory[pointer] += memory[pointer+1] |
| `scratchout` | Subtract next cell from current, store in current | `scratchout` β memory[pointer] -= memory[pointer+1] |
| `pounceon` | Multiply current and next cell, store in current | `pounceon` β memory[pointer] *= memory[pointer+1] |
| `hairball` | Integer divide current by next cell, store in current | `hairball` β memory[pointer] //= memory[pointer+1] |
| `pawprint` | Modulo current by next cell, store in current | `pawprint` β memory[pointer] %= memory[pointer+1] |
| `catnip` | Raise current to power of next cell, store in current | `catnip` β memory[pointer] **= memory[pointer+1] |
| `snuggle` | Copy value from next cell to current cell | `snuggle` β memory[pointer] = memory[pointer+1] |
| `mewmew` | Take user input and store in next cell | `mewmew` β memory[pointer+1] = user input |
## File Extension
All MeowLang programs are saved as `.meow` files:
- `hello_world.meow`
- `fibonacci.meow`
- `countdown.meow`
## Examples
### Countdown Program
```meow
πΎ Countdown from 5 to 1 πΎ
meow
meow
meow
meow
meow
yowl
purr
hiss
paw
```
**Output:**
```
5
4
3
2
1
```
### Mathematical Operations
```meow
πΎ Powers and multiplication demo πΎ
meow
meow
purr
lick
purr
lick
purr
lick
purr
zoomies
purr
```
**Output:**
```
2
4
8
16
256
```
### Fibonacci Sequence
```meow
πΎ First 8 Fibonacci numbers πΎ
meow
purr
purr
meow
meow
purr
meow
meow
meow
purr
πΎ ... (see examples/fibonacci.meow for full program) πΎ
```
**Output:**
```
1
1
2
3
5
8
13
21
```
### Stretch Command
```meow
πΎ Demonstrate the 'stretch' command πΎ
meow
meow
meow
hiss
hiss
hiss
hiss
purr
stretch
purr
πΎ The first purr should print -1, the second should print 1 πΎ
```
**Output:**
```
-1
1
```
### Groom Command (Sort Memory)
```meow
πΎ Demonstrate the 'groom' command (sort memory) πΎ
meow
meow
right
meow
meow
meow
right
meow
hiss
hiss
purr πΎ Should print -1 (third cell)
groom
left
left
purr πΎ Should print 2 (first cell, after sort)
right
purr πΎ Should print 3 (second cell, after sort)
right
purr πΎ Should print -1 (third cell, after sort)
```
**Output:**
```
-1
2
3
-1
```
### Puffup and Shrinktail (Tape Expansion/Contraction)
```meow
πΎ Demonstrate 'puffup' and 'shrinktail' commands πΎ
meow
meow
purr πΎ Should print 2 (cell 0)
puffup 2
right
meow
purr πΎ Should print 1 (cell 1)
right
meow
meow
purr πΎ Should print 2 (cell 2)
shrinktail 1
right
purr πΎ Should print 0 (cell 2 was removed, pointer now at last cell)
```
**Output:**
```
2
1
2
0
```
### Custom Text Output
```meow
meowt "Hello, world!"
purr
meowt "Done!"
```
**Output:**
```
Hello, world!
0
Done!
```
### Calculator Example
```meow
πΎ Simple calculator: (3 + 4) * 2 πΎ
meow
meow
meow πΎ cell 0 = 3
right
meow
meow
meow
meow πΎ cell 1 = 4
left
knead πΎ cell 0 = 3 + 4 = 7
right
meow
meow πΎ cell 1 = 2
left
pounceon πΎ cell 0 = 7 * 2 = 14
purr πΎ prints 14
```
### More Examples
See `examples/calculator.meow` for a full calculator program using the cat-themed calculator commands (`knead`, `scratchout`, `pounceon`, `hairball`, `pawprint`, `catnip`).
## Usage
### Command Line Interface
```
```
Raw data
{
"_id": null,
"home_page": "https://github.com/jaytirthjoshi/meow",
"name": "meowlang",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "esolang programming language cat meow inline-comments puffup shrinktail catnap scaredycat hairball pawprint hissfit",
"author": "Jaytirth Joshi",
"author_email": "jay@joshi1.com",
"download_url": "https://files.pythonhosted.org/packages/12/aa/ab0b736e6ced5df688b508c3e5687aff6d5c257ab8877d79cd4e06e80dca/meowlang-0.1.0.tar.gz",
"platform": null,
"description": "# .meow \u2014 The Feline-Friendly Esoteric Programming Language\n\n[](https://python.org)\n[](LICENSE)\n\n> Because programming should be fun, cats are chaotic, and you deserve to write code that goes meow!\n\n## What is MeowLang?\n\nMeowLang (.meow) is a whimsical esoteric programming language where every line of code sounds like a cat. Inspired by the chaos of esolangs and the elegance of felines, .meow lets you vibe code using cat noises.\n\n## Quick Start\n\n### Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/jaytirthjoshi/meow.git\ncd meow\n\n# Run a .meow program\npython meow_interpreter.py examples/hello_world.meow\n```\n\n### Your First .meow Program\n\nCreate a file called `hello.meow`:\n\n```meow\n\ud83d\udc3e Hello World in .meow \ud83d\udc3e\nmeow\nmeow\nmeow\npurr\nhiss\npurr\nscratch\npurr\n```\n\nRun it:\n```bash\npython meow_interpreter.py hello.meow\n```\n\nOutput:\n```\n3\n2\n0\n```\n\n## Commands Reference\n\n| Command | Action | Example |\n|---------|--------|---------|\n| `meow` | Increment memory value by 1 | `meow` \u2192 memory += 1 |\n| `hiss` | Decrement memory value by 1 | `hiss` \u2192 memory -= 1 |\n| `purr` | Print the current memory value | `purr` \u2192 prints memory |\n| `meowt \"text\"` | Print custom text output | `meowt \"Hello!\"` \u2192 prints Hello! |\n| `nap` | Do nothing (no-op) | `nap` \u2192 does nothing |\n| `scratch` | Reset memory value to 0 | `scratch` \u2192 memory = 0 |\n| `lick` | Double the current memory value | `lick` \u2192 memory *= 2 |\n| `zoomies` | Square the memory value | `zoomies` \u2192 memory = memory\u00b2 |\n| `yowl` | Begin a loop (while memory != 0) | `yowl` \u2192 loop start |\n| `paw` | End a loop | `paw` \u2192 loop end |\n| `sleep` | Sleep for memory value milliseconds | `sleep` \u2192 pause execution |\n| `\ud83d\udc3e` | Comment/decoration (ignored) | `\ud83d\udc3e comment \ud83d\udc3e` |\n| `mew` | Take user input and set memory to that value | `mew` \u2192 memory = user input |\n| `pounce <line_number>` | Jump to the specified line number (1-based) | `pounce 5` |\n| `knead` | Add current and next cell, store in current | `knead` \u2192 memory[pointer] += memory[pointer+1] |\n| `scratchout` | Subtract next cell from current, store in current | `scratchout` \u2192 memory[pointer] -= memory[pointer+1] |\n| `pounceon` | Multiply current and next cell, store in current | `pounceon` \u2192 memory[pointer] *= memory[pointer+1] |\n| `hairball` | Integer divide current by next cell, store in current | `hairball` \u2192 memory[pointer] //= memory[pointer+1] |\n| `pawprint` | Modulo current by next cell, store in current | `pawprint` \u2192 memory[pointer] %= memory[pointer+1] |\n| `catnip` | Raise current to power of next cell, store in current | `catnip` \u2192 memory[pointer] **= memory[pointer+1] |\n| `snuggle` | Copy value from next cell to current cell | `snuggle` \u2192 memory[pointer] = memory[pointer+1] |\n| `mewmew` | Take user input and store in next cell | `mewmew` \u2192 memory[pointer+1] = user input |\n\n## File Extension\n\nAll MeowLang programs are saved as `.meow` files:\n- `hello_world.meow`\n- `fibonacci.meow`\n- `countdown.meow`\n\n## Examples\n\n### Countdown Program\n\n```meow\n\ud83d\udc3e Countdown from 5 to 1 \ud83d\udc3e\nmeow\nmeow\nmeow\nmeow\nmeow\nyowl\npurr\nhiss\npaw\n```\n\n**Output:**\n```\n5\n4\n3\n2\n1\n```\n\n### Mathematical Operations\n\n```meow\n\ud83d\udc3e Powers and multiplication demo \ud83d\udc3e\nmeow\nmeow\npurr\nlick\npurr\nlick\npurr\nlick\npurr\nzoomies\npurr\n```\n\n**Output:**\n```\n2\n4\n8\n16\n256\n```\n\n### Fibonacci Sequence\n\n```meow\n\ud83d\udc3e First 8 Fibonacci numbers \ud83d\udc3e\nmeow\npurr\npurr\nmeow\nmeow\npurr\nmeow\nmeow\nmeow\npurr\n\ud83d\udc3e ... (see examples/fibonacci.meow for full program) \ud83d\udc3e\n```\n\n**Output:**\n```\n1\n1\n2\n3\n5\n8\n13\n21\n```\n\n### Stretch Command\n\n```meow\n\ud83d\udc3e Demonstrate the 'stretch' command \ud83d\udc3e\nmeow\nmeow\nmeow\nhiss\nhiss\nhiss\nhiss\npurr\nstretch\npurr\n\ud83d\udc3e The first purr should print -1, the second should print 1 \ud83d\udc3e\n```\n\n**Output:**\n```\n-1\n1\n```\n\n### Groom Command (Sort Memory)\n\n```meow\n\ud83d\udc3e Demonstrate the 'groom' command (sort memory) \ud83d\udc3e\nmeow\nmeow\nright\nmeow\nmeow\nmeow\nright\nmeow\nhiss\nhiss\npurr \ud83d\udc3e Should print -1 (third cell)\ngroom\nleft\nleft\npurr \ud83d\udc3e Should print 2 (first cell, after sort)\nright\npurr \ud83d\udc3e Should print 3 (second cell, after sort)\nright\npurr \ud83d\udc3e Should print -1 (third cell, after sort)\n```\n\n**Output:**\n```\n-1\n2\n3\n-1\n```\n\n### Puffup and Shrinktail (Tape Expansion/Contraction)\n\n```meow\n\ud83d\udc3e Demonstrate 'puffup' and 'shrinktail' commands \ud83d\udc3e\nmeow\nmeow\npurr \ud83d\udc3e Should print 2 (cell 0)\npuffup 2\nright\nmeow\npurr \ud83d\udc3e Should print 1 (cell 1)\nright\nmeow\nmeow\npurr \ud83d\udc3e Should print 2 (cell 2)\nshrinktail 1\nright\npurr \ud83d\udc3e Should print 0 (cell 2 was removed, pointer now at last cell)\n```\n\n**Output:**\n```\n2\n1\n2\n0\n```\n\n### Custom Text Output\n\n```meow\nmeowt \"Hello, world!\"\npurr\nmeowt \"Done!\"\n```\n\n**Output:**\n```\nHello, world!\n0\nDone!\n```\n\n### Calculator Example\n\n```meow\n\ud83d\udc3e Simple calculator: (3 + 4) * 2 \ud83d\udc3e\nmeow\nmeow\nmeow \ud83d\udc3e cell 0 = 3\nright\nmeow\nmeow\nmeow\nmeow \ud83d\udc3e cell 1 = 4\nleft\nknead \ud83d\udc3e cell 0 = 3 + 4 = 7\nright\nmeow\nmeow \ud83d\udc3e cell 1 = 2\nleft\npounceon \ud83d\udc3e cell 0 = 7 * 2 = 14\npurr \ud83d\udc3e prints 14\n```\n\n### More Examples\n\nSee `examples/calculator.meow` for a full calculator program using the cat-themed calculator commands (`knead`, `scratchout`, `pounceon`, `hairball`, `pawprint`, `catnip`).\n\n## Usage\n\n### Command Line Interface\n\n```\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "A feline-friendly esoteric programming language",
"version": "0.1.0",
"project_urls": {
"Bug Reports": "https://github.com/jaytirthjoshi/meow/issues",
"Documentation": "https://github.com/jaytirthjoshi/meow#readme",
"Homepage": "https://github.com/jaytirthjoshi/meow",
"Source": "https://github.com/jaytirthjoshi/meow"
},
"split_keywords": [
"esolang",
"programming",
"language",
"cat",
"meow",
"inline-comments",
"puffup",
"shrinktail",
"catnap",
"scaredycat",
"hairball",
"pawprint",
"hissfit"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "8627c51842fbcd8c93cade2281af694a6cecc9277cbb97caa6ad00facf42287a",
"md5": "2914191d90ff54bb6bfaaeb4cfde0827",
"sha256": "e6f57782fea8c396431e7815e76f3f6c32ca643e260d5155ced3fe3c794c38c2"
},
"downloads": -1,
"filename": "meowlang-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2914191d90ff54bb6bfaaeb4cfde0827",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 4440,
"upload_time": "2025-07-08T20:32:41",
"upload_time_iso_8601": "2025-07-08T20:32:41.266518Z",
"url": "https://files.pythonhosted.org/packages/86/27/c51842fbcd8c93cade2281af694a6cecc9277cbb97caa6ad00facf42287a/meowlang-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "12aaab0b736e6ced5df688b508c3e5687aff6d5c257ab8877d79cd4e06e80dca",
"md5": "69fc15dff39fb6d32a0bdcf18bb8c94f",
"sha256": "c568d13d5838752f692db169541ba6c3ed79da5d2dea062e1a52289c9c8ac045"
},
"downloads": -1,
"filename": "meowlang-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "69fc15dff39fb6d32a0bdcf18bb8c94f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 4458,
"upload_time": "2025-07-08T20:32:42",
"upload_time_iso_8601": "2025-07-08T20:32:42.586899Z",
"url": "https://files.pythonhosted.org/packages/12/aa/ab0b736e6ced5df688b508c3e5687aff6d5c257ab8877d79cd4e06e80dca/meowlang-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-08 20:32:42",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jaytirthjoshi",
"github_project": "meow",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "pytest",
"specs": [
[
">=",
"6.0.0"
]
]
},
{
"name": "black",
"specs": [
[
">=",
"21.0.0"
]
]
},
{
"name": "flake8",
"specs": [
[
">=",
"3.8.0"
]
]
}
],
"lcname": "meowlang"
}