Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nooga/bonk
Bonk is your chaotic-good JS project companion.
https://github.com/nooga/bonk
deno developer-tools devtools javascript nodejs project-management tools typescript
Last synced: 9 days ago
JSON representation
Bonk is your chaotic-good JS project companion.
- Host: GitHub
- URL: https://github.com/nooga/bonk
- Owner: nooga
- License: mit
- Created: 2025-01-22T23:09:32.000Z (12 days ago)
- Default Branch: main
- Last Pushed: 2025-01-23T02:03:36.000Z (11 days ago)
- Last Synced: 2025-01-23T03:17:58.260Z (11 days ago)
- Topics: deno, developer-tools, devtools, javascript, nodejs, project-management, tools, typescript
- Language: TypeScript
- Homepage: https://jsr.io/@nooga/bonk
- Size: 11.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# bonk (っ•﹏•)っ ✂
**HELLO FELLOW TYPESCRIPT ENJOYERS!** (and yes, by TypeScript I mean JavaScript too, we're all in this together)
_TIRED_ of losing projects in your filesystem like socks in a laundromat? _SICK_ of `cd`-ing through directories like a drunk in a maze? Got more terminal tabs than browser tabs? Do you play package manager roulette every time you clone a repo (`yarn`, `pnpm`, `ancient rituals`)?
🎪 **STEP RIGHT UP TO THE GREATEST SHOW IN YOUR TERMINAL!** 🎪
**BEHOLD!** The absolutely **CHAOTIC-GOOD** project manager that treats your JavaScript projects like a cat treats gravity - **WITH COMPLETE DISREGARD! (╯°□°)╯︵ ┻━┻**
- 🌟 **WITNESS** as it _SNIFFS OUT_ projects like a crazed puppy detecting forbidden ham!
- 🎭 **GASP** as it _TELEPORTS_ between directories like a quantum-tunneling mole!
- ✨ **MARVEL** as it _LAUNCHES_ editors with the panache of your roomba escaping gravity on your stairs!
- 🎪 **APPLAUD** as it _JUGGLES_ background tasks all smooth and squid-like!## ⚡️ OBTAINING THIS MIRACLE OF MODERN ENGINEERING ⚡️
```bash
deno install -gArf jsr:@nooga/bonk
```Oh! There are shell completions too! See how to install them:
```bash
bonk completions --help
```Upgrading? Bah! Easy peasy! Just run:
```bash
bonk upgrade
```## ⚡️ CONFIGURING THIS BAD BOY! ⚡️
Before first use, you'll need to tell `bonk` where your projects live. Create or edit `~/.bonk/config.json`:
```json
{
"projectDirs": ["projects", "work", "personal", "playground"]
}
```The `projectDirs` are directories that _contain_ your projects, relative to your home directory (`~`). For example, if your projects are in:
- `~/projects/awesome-app`
- `~/projects/another-project`
- `~/work/secret-startup`
- `~/personal/weekend-hack`You would configure `projectDirs` as `["projects", "work", "personal"]`, and bonk will automatically scan these directories for Node.js and Deno projects.
Optional configuration:
- `editor`: Your preferred editor command (defaults to `code`)
## ✨ THE ART OF BONKING (A BEGINNER'S GUIDE)
### 📋 `bonk ls [filter]`
Lists your projects like a hyperactive inventory system! Shows:
- Projects (as a fancy tree!)
- Git status (le brunch? dirty? ahead? BEHIND? EVERYTHING!)
- Runtime & package manager (`npm`/`yarn`/`pnpm`/`deno` circus)
- Available tasks and their status (with cute little dots!)### 🚀 `bonk run [project] [task] [...args]`
Launch tasks like a mission control operator on a sextuple espresso!
- Automagically detects the right package manager!
- Runs in foreground by default (because we like to watch things happen)
- Add `--bg` flag to banish it to the background realm!
- Pass extra args after the task name, they'll find their way!### 🛑 `bonk stop [project] [task]`
Stops tasks with the grace of a ballet-dancing **kill -9**!
- Hunts down background processes like a determined task predator!
- Shows no mercy to zombie processes!
- Cleans up after itself like a responsible citizen!### 📂 `bonk cd [project]`
Teleports you into project directories faster than quantum tunneling!
- Opens a new shell in your project!
- Exit to pop back out (like a stack, but for humans!)
- No more `cd ../../../whatever/something/else`!### ✏️ `bonk edit [project]`
Summons your editor of choice like a well-trained digital familiar!
- Configurable via `editor` in `~/.bonk/config.json`!
- Defaults to `code` because we're savages!### 🤯 BEST PART?
If you're already _IN_ a project directory, you can skip the project name! BOOM! 🎆
Example: `bonk run test` will just work! (assuming you have a test script, all good if you don't)Too busy to type? Just use the first letter of the task: `bonk run t`!
## ⚡️ BONK! ⚡️
(ノ ◕ ヮ ◕)ノ*:・゚ ✧ *maniacal laughter intensifies* ✧ ゚・: *ヽ(◕ ヮ ◕ ヽ)